我正在使用以下命令从OSX的命令行中编译我的(相当简单,只有5个文件,几百个LOC)应用程序。
ant debug
有用。但是它运行缓慢:
BUILD SUCCESSFULTotal time:26 seconds
这是为什么?即使我只更改一个java文件中的一行,也要花费很多时间。这大部分时间都花在dex阶段(约20秒),这是AFAIK创建Dalvik字节码的时间。但是我的 friend 也使用Eclipse在Windows上的同一个项目上工作,他的 friend 说编译只需要一两秒钟就可以完成。有什么我可以做以加快此过程的速度吗?

最佳答案

我终于找到了解决方案!这有点骇人听闻,但确实有效。

首先,转到您的ANDROID-SDK/platform-tools目录,然后将dx应用重命名为其他名称,例如dextool,最后创建包含内容的新dx文件:

#!/bin/sh
shift
dextool --dex --incremental --no-optimize $@

将“dextool”替换为您之前选择的名称。这将在每个dex调用之前添加--uncremental属性(未记录),该属性将通过仅分解在两次构建之间已更改的类来大量减少构建时间。现在看起来像这样:
[dx] Merged dex A (1 defs/11,3KiB) with dex B (359 defs/1253,2KiB). Result is 359 defs/1519,3KiB. Took 0,5s
0.5s而不是20s是巨大的差异!

编辑-几句话:
  • ,您必须在使用此项目之前至少编译一次项目,因为它使用了以前的classes.dex文件
  • 使用ant 以外的其他Android工具链时,您可能会遇到


  • 更新:

    Google发布了SDK Tools 21.0,该工具可以进行预校正,因此可以进行以上调整。最后!

    关于android - 从命令行编译Android项目的速度很慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12088375/

  • 10-15 00:51