如何从命令行合并两个dex文件

How to merge two dex files from command line

从最近几天开始,我开始深入研究android工作室实际上是如何工作的。

我探索了许多工具,如 aapt、dx、dalvikvm 和许多其他工具。

现在我有一个非常简单的问题。我有一个大约 2.7 MB 的 jar 文件(例如称为 abc.jar),我的应用程序中也有一个非常小的 java 代码。

首先我将我的源代码编译成 .class 个文件。然后我将 .class 文件和 abc.jar 文件 dexed 到 .dex 文件中。 大约用了 40 到 50 秒。但是我能够运行申请成功。

我用来 dex 我的源代码的命令和 abc.jar

dx --dex --output=classes.dex abc.jar *class_files*

现在的问题是,每当我修改我的代码时,我都必须 redex 所有的东西(包括 abc.jar),这需要数年时间。我现在想要的是 无论如何我必须 dex abc.jar 一次,然后每当我更改我的代码时我只需要 dexed 版本的 abc.jar 并将其添加到我的源代码中 .

就像 android studio 一样。如果你添加一些外部库,首先它需要一些时间来dex那些但是之后每当你修改你的代码它不必从头开始 redex 所有 libaries 而只是获取 pre-dexed libaries 并将它们添加到 apk.

提前致谢

经过几天的研究,我终于找到了一个方法...

我只是使用 d8 因为 dx 已经折旧了。

d8 dexfile1.dx dexfile2.dex

输出将是 classed S.dx