code: def get_objects_apk(self, filename=None, digest=None):
          
          if not filename and not digest:
              raise ValueError("Must give at least filename or digest!")
  
          if digest is None:
              digests = self.analyzed_files.get(filename)
              # Negate to reduce tree
              if not digests:
                  return None, None, None
              digest = digests[0]
  
          a = self.analyzed_apk[digest][0]
          dx = self.analyzed_vms[digest]
          return a, dx.vms, dx
docs: Returns APK, DalvikVMFormat and Analysis of a specified APK.
  
          You must specify either `filename` or `digest`.
          It is possible to use both, but in this case only `digest` is used.
  
          example::
  
              s = Session()
              digest = s.add("some.apk")
              a, d, dx = s.get_objects_apk(digest=digest)
  
          example::
  
              s = Session()
              filename = "some.apk"
              digest = s.add(filename)
              a, d, dx = s.get_objects_apk(filename=filename)
  
          :param filename: the filename of the APK file, only used of digest is None
          :param digest: the sha256 hash, as returned by :meth:`add` for the APK
          :returns: a tuple of (APK, [DalvikVMFormat], Analysis)