我的 Windows 7 机器有一个四核 i7 处理器。当我重建我的项目时,平均需要 25 秒。当我启动应用程序时,平均需要 36 秒(在应用程序上传到设备之前)。
我的项目的/src 文件夹中有 588 个文件,其中包括我所有的 java 和 xml 代码。我的/libs 文件夹中有两个 .so 库,每个 5MB 和 7 个 jars。
请参阅我随附的屏幕截图。正如你所看到的,我的 CPU 一直处于 100% 的最大值。我的 iTunes 音乐暂停,并且在我的 Windows 任务栏的右下角弹出“性能不佳”。就是这么糟糕。
我使用的是 Android Studio 1.2.1.1
大部分时间都花在了 preDex 和 dex 操作上。
这是我到目前为止尝试过的(另外,我还没有一起尝试过):
- 添加 gradle.properties -> "org.gradle.daemon=true"
- 省电
- 模式无效缓存/
- 重启全局 Gradle 设置 -> 离线
- work Compiler -> 自动生成项目
还没有任何效果。我无法想象这是一个普遍的问题,对吗?我是不是太无能了,因为这真的比 Eclipse 慢得多?
我想我的问题是:
- 这可能是由于我的 jar 或 so 文件的大小造成的吗?
- 我接管了一个在 XML 文件中有许多嵌套 View 的项目。这会导致问题吗?
我真的很想找救命稻草,所以如果有人有任何信息,尤其是为什么 dex 操作会占用如此多的 CPU,那就太棒了。
我想如果我编辑一个 XML 文件,进行重建,然后启动应用程序,就会发生这种情况是不言而喻的。如果没有什么可以清理和重建... 当我只是做一个 Make Project 时...平均构建时间是 3 秒。
最佳答案
以下是我能够做出的三项改进:
我每次构建项目时都在对我的 JAR 进行预分解,所以我找到了这个解决方案:
dexOptions {
preDexLibraries = false
}
我使用的是整个 Google Play 服务库:
compile('com.google.android.gms:play-services:+') {
exclude module: 'support-v4'
}
当我只需要 Google Cloud Messenger 时:
compile('com.google.android.gms:play-services-gcm:+') {
exclude module: 'support-v4'
}
在 Eclipse 中,我总是会进行重建,然后使用播放按钮启动应用程序。在 Android Studio 中,现在我只是在做一个 Clean 然后使用播放按钮启动应用程序。此外,Android Studio 中的“运行”按钮并非每次都在清理后立即起作用。这导致了似乎是延迟,因为什么都没有发生。所以现在我让 Gradle 控制台保持打开状态,以确保运行按钮正常工作,如果不正常,我就再次点击它。
我曾经拥有的:
Rebuild: 26 seconds
Launch: 36 seconds
Install: 15 seconds
现在:
Clean: 8 seconds
Launch: 22 seconds
Install: 15 seconds
这是一项重大改进!希望这对其他人有帮助。
关于java - Android Studio 在 i7 处理器上使用 100% CPU 进行项目重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31350847/