当前位置: 首页 > 面试题库 >

有没有办法从.dex文件中获取所有类的列表?

阎单鹗
2023-03-14
问题内容

我有一个.dex文件,称之为classes.dex

有没有一种方法可以“读取”其中的内容,classes.dex并获取其中的所有类的列表作为完整的类名,包括其包,com.mypackage.mysubpackage.MyClass例如?

我在考虑com.android.dx.dex.file.DexFile,但是似乎找不到用于检索整个类集的方法。


问题答案:

您可以将dexlib2库用作独立库(在maven中可用),以读取dex文件并获取类列表。

DexFile dexFile = DexFileFactory.loadDexFile("classes.dex", 19 /*api level*/);
for (ClassDef classDef: dexFile.getClasses()) {
    System.out.println(classDef.getType());
}

请注意,类名将采用“ Ljava / lang /
String;”的形式,这就是它们如何存储在dex文件(和Java类文件)中的方式。要进行转换,只需删除第一个和最后一个字母,然后将/替换为即可。



 类似资料:
  • 问题内容: 我想从数据库中的表中获取列名列表。使用编译指示,我会得到一个元组列表,其中包含很多不需要的信息。有没有办法只获取列名?所以我最终可能会遇到这样的事情: [Column1,Column2,Column3,Column4] 之所以绝对需要此列表,是因为我想在列表中搜索列名并获取索引,因为很多代码中都使用了索引。 有没有办法得到这样的清单? 谢谢 问题答案: 您可以使用sqlite3和pep

  • 有没有办法列出AWS中的所有资源?对于所有区域,所有资源...例如列出所有EC2实例、所有VPC、API Gateway中的所有API等...我想列出我帐户的所有资源,因为我很难找到我现在可以放弃的资源。

  • 我想读取Dockerfile中的变量,该变量在文件中定义。有什么办法可以做到这一点吗? 这是我的DockerFile:

  • 问题内容: 我想一次从redis列表中弹出所有列表项。 我不想在列表为空时调用或方法,因为它似乎多次无效地将请求发送到。 我也知道我可以使用方法获得所有列表,但不能弹出项目。 你能建议我吗? 我只想和清单中的项目一个请求即可。 问题答案: 正如Itamar Haber所说,请使用lrange和del。在管道模式下,它将作为单个命令完成。

  • 我正在做一个项目,需要遍历文件系统,从pdf中提取文本,然后扫描文本。以前,文件系统是一个N驱动器(充当本地文件系统),因此使用java文件API,我可以访问每个pdf文件。使用此方法,我将提取文本: 从这里,我可以扫描文本。 我现在需要这样做,但使用dropbox文件系统。但是,我只能找到一种方法来获取每个文件的元数据,而不是实际的文件,因此我可以提取文本。 有没有办法获取文件,以便我可以在文件

  • 问题内容: 因此,我使用Python 3.2.1的cElementTree解析了一些XML文件,并且在解析过程中,我注意到某些标签缺少属性信息。我想知道是否有任何简单的方法来获取xml文件中这些元素的行号。 问题答案: 查看文档,我看不到使用cElementTree做到这一点。 但是,我对lxml的XML实现版本感到幸运。使用libxml2,它的替换量几乎下降了。元素具有属性。(以及获得许多其他X