我在一个小型Android应用程序项目上工作,该项目包含大约5k行代码和少量资源。它在lib /文件夹中也有一些库依赖项。问题是我的编译时间非常慢。假设我执行以下操作:
ant clean debug
大约需要28秒。执行后续操作:
ant debug
即使我在编译之间没有对源进行更改,仍需要9秒。
似乎大多数缓慢发生在'-dex'目标期间。
如何提高Android版本的速度性能?
请查看此链接以查看我编辑的“ant clean debug”输出:http://pastebin.com/XY08mr5G
我正在使用: Apache Ant(TM)版本1.8.4,Android Debug Bridge版本1.0.31,Android SDK工具22.01, Android SDK平台工具17,Android SDK Build-tools 17
感谢。
答案 0 :(得分:0)
28秒对于Ant构建脚本而言并非如此。编译为dex格式确实需要一段时间。我不知道你何时运行ant构建脚本,但是在开发过程中,最好使用带有Eclipse等编译器的IDE,它将在后台编译。在创建用于测试或发布的构建时,请使用Ant构建脚本。
答案 1 :(得分:0)
事后看来,我的核心问题是我不相信Ant能够正确跟踪自上次构建以来修改过的源。我经常发现自己跑步' ant clean debug'每次我编译都只是因为我已经被拙劣的版本烧了太多次。
如果我只有一个目标来执行我的源代码的新编译,而不是每次都重新索引我的所有依赖库!
这是我的问题的建议解决方案。将此Ant目标添加到我的项目的build.xml:
<target name="cl">
<delete file="bin/classes.dex" />
<delete file="bin/classes.dex.d" />
<delete dir="bin/classes" />
</target>
现在正在运行&#39; ant cl debug&#39;花费相当少的时间,在5秒钟内完成。我重新编译了所有Java源文件,但每次都不会重新定义库。 (&#39; clean&#39;目标需要每时间)
我对此解决方案感到满意,并将等待Android的未来Gradle based build system。运气好的话,它将提供比这个基于Ant的系统更多的目标。