问题描述
最近几天,我开始深入了解 android studio 在幕后的工作原理。
我探索了许多工具,例如aapt,dx,dalvikvm等。
现在我有一个非常简单的问题。我有一个大约abc.jar
的jar文件(例如称为2.7 MB
),并且我的应用程序中还有一个很小的Java代码。
首先,我将源代码编译为.class
文件。然后,将.class
文件和abc.jar
文件还原为.dex
文件。
花了大约40到50秒。但是我能够成功运行该应用程序。
我以前用于整理源代码和abc.jar的命令
dx --dex --output=classes.dex abc.jar *class_files*
现在的问题是,每当我修改代码时,都必须花费数年时间 redex 所有内容(包括abc.jar
)。现在,我想要的是是否存在,我只需要对一次abc.jar
进行一次dex,然后每当我对自己的代码进行更改时,我都会采用abc的 dexed 版本。 .jar并将其添加到我的源代码中。
就像 android studio 一样。如果您添加了一些外部库,首先需要花费一些时间dex
这些库,但是此后只要您修改代码,就不必{{ 1}}是所有 libaries 从头开始的,它只是使用redex
个库并将它们添加到pre-dexed
。
提前谢谢
解决方法
最后,经过几天的研究,我找到了一种方法...
我认为使用d8
是因为dx
已贬值。
d8 dexfile1.dx dexfile2.dex
输出为classed S.dx