Android编译慢(使用Eclipse)

标签 android performance compilation

当我更改任何 .java 文件并构建时,编译需要 16 秒。我不明白为什么它应该这么慢!?

我为 Andoroid 启用了详细输出。

Window > Preferences > Android > Build output > Verbose.

结果输出(Console > Android)是:

[19:46:10] Refreshing resource folders.
[19:46:10] Starting incremental Pre Compiler: Checking resource changes.
[19:46:10] Nothing to pre compile!
[19:46:10] Starting incremental Package build: Checking resource changes.
[19:46:10] ignored resource ...\bin\.\classes.dex
[19:46:10] processing ...\A.class
[19:46:10] processing ...\B.class
    ...
[19:46:21] processing com/google/inject/util/Providers.class...
[19:46:21] processing com/google/inject/util/Types.class...
[19:46:24] Using default debug key to sign package
[19:46:24] Packaging ...\bin\resources.ap_
[19:46:24] Packaging classes.dex
    ...
[19:46:25] Packaging ...\annotations.jar
[19:46:25] Build Success!
[19:46:25] Refreshing resource folders.
[19:46:25] Starting incremental Pre Compiler: Checking resource changes.
[19:46:26] Nothing to pre compile!

.class 文件的“处理”耗时 14 秒。它“处理”了所有文件,甚至来自所有链接的 .jar 文件。我认为这里出了点问题,因为只更改了一个 .java 文件。

如何提高编译速度?

最佳答案

我认为这里有一个误解。正如您所说,只有修改后的类被重新编译(Eclipse 在几毫秒内);然而,在那之后,ADT 插件获取每个编译的类并通过 dx 工具将其转换为 Dalvik 的字节码格式。此过程的输出是单个文件 classes.dex,其中包含应用程序中的所有类,包括来自引用库的类。最后一个“翻译”步骤需要更长的时间,因为它的优化确实很差:ADT 插件不缓存任何内容,它只是在每次构建时重新翻译每个类(而且速度非常慢)。对于大中型项目,这真的很令人沮丧……我希望 Google 能在未来的 ADT/SDK 版本中改进这一点。

关于Android编译慢(使用Eclipse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883635/

相关文章:

Java找不到类文件

java - 正则表达式在 validator 中有效,在java代码中无效

android - 试图查询联系人列表

android如何从其他 Activity 完成 Activity

java - Android - 包含自定义组件会导致其隐藏在主视图后面

performance - 如何根据条件重复向量中的某些元素?

python - 大循环嵌套设计,无论如何提高速度?

sql-server - SQLServer 中子字符串与右左组合的相对性能

c - 我需要做什么才能使函数 isspace 在 C 中工作

c - 从 Leptonica 图像处理库执行代码示例