ale*_*2k8 33 performance android compilation
当我更改任何.java文件并构建时,编译需要16秒.我不明白为什么它应该这么慢!?
我为Andoroid启用了详细输出.
Window > Preferences > Android > Build output > Verbose.
Run Code Online (Sandbox Code Playgroud)
结果输出(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!
Run Code Online (Sandbox Code Playgroud)
.class文件的"处理"耗时14秒.它"处理"了所有文件,甚至是链接的所有.jar文件.我觉得有些不对劲,因为只有一个.java文件被更改了.
我该怎么做才能提高编译速度?
len*_*aus 55
我觉得这里有一个误解.如你所说,只重新编译修改后的类(Eclipse在几毫秒内); 然而,在那之后,ADT插件会获取每个编译的类,并通过dx工具将其转换为Dalvik的字节码格式.此进程的输出是单个文件classes.dex,其中包含应用程序中的所有类,包括来自引用库的类.最后一个"翻译"步骤需要更长的时间,因为它的优化效果非常差:ADT插件不会缓存任何内容,它只是在每次构建时重新翻译每个类(而且速度很慢).对于中型到大型项目,这真的令人沮丧...我希望Google将在未来的ADT/SDK版本中改进它.
另一个解决方法是:
看到Android的解决方法换建设缓慢工作空间问题,在月食的细节
| 归档时间: |
|
| 查看次数: |
21584 次 |
| 最近记录: |