code: def addDEX(self, filename, data, dx=None):
          
          digest = hashlib.sha256(data).hexdigest()
          log.debug("add DEX:%s" % digest)
  
          log.debug("Parsing format ...")
          d = DalvikVMFormat(data)
          log.debug("added DEX:%s" % digest)
  
          self.analyzed_files[filename].append(digest)
          self.analyzed_digest[digest] = filename
  
          self.analyzed_dex[digest] = d
  
          if dx is None:
              dx = Analysis()
  
          dx.add(d)
          dx.create_xref()
  
          # TODO: If multidex: this will called many times per dex, even if already set
          for d in dx.vms:
              # TODO: allow different decompiler here!
              d.set_decompiler(DecompilerDAD(d, dx))
              d.set_vmanalysis(dx)
          self.analyzed_vms[digest] = dx
  
          if self.export_ipython:
              log.debug("Exporting in ipython")
              d.create_python_export()
  
          return digest, d, dx
docs: Add a DEX file to the Session and run analysis.
  
          :param filename: the (file)name of the DEX file
          :param data: binary data of the dex file
          :param dx: an existing Analysis Object (optional)
          :return: A tuple of SHA256 Hash, DalvikVMFormat Object and Analysis object