我想获得标准Java库的Dalvik字节码,我的意思是,Android使用的java库(例如java.util。* collections)。
我需要获取这些类文件,因为我想分析它们,而不是全部,但是java.util.*
,java.lang.*
等等。
但是,在编译任何Android应用程序时,除了应用程序代码和依赖项库之外,不会生成那些标准库的类文件。
所以我想知道如何在Dalvik VM中编译时获取已编译的类文件(及其相应的dex文件)?
我试图在Android项目中提取标准Java库,比如获取所有Java源代码并将它们添加为应用程序代码,或者将classes.jar
(rt.jar
)放在libs文件夹中,但是,这两种方式都不起作用,因为项目中的源代码或jar文件将与默认编译环境冲突,因此给出了可怕的错误Conversion to Dalvik format failed with error 1
知道如何得到我想要的东西吗?
答案 0 :(得分:2)
系统库的源代码和二进制文件作为Android SDK的一部分提供。只需查看二进制文件的安装目录platforms/android-{version}/android.jar
和源代码的sources/android-{version}
(如果已安装)。