我的Windows 7机器有一个四核i7处理器。当我重建我的项目时,平均需要25秒。当我启动应用程序时,平均需要36秒(在应用程序上传到设备之前)。
我的项目&s / src文件夹中有588个文件,其中包含我的所有java和xml代码。我的/ libs文件夹中有两个.so库,每个5MB和7个罐子。
请参阅我附带的屏幕截图。正如您所看到的,我的CPU在整个时间内都达到了100%。我的iTunes音乐暂停,我得到了一个“糟糕的表现”#34;弹出窗口任务栏右下角的弹出窗口。这有多糟糕。
我使用的是Android Studio 1.2.1.1
大部分时间都花在preDex和dex操作期间。
这是我迄今为止尝试过的内容(另外,我还没有尝试过这些内容):
还没有任何效果。我无法想象这是一个常见问题,对吗?我是不是因为这真的比Eclipse慢得多?
我想我的问题是:
我真的很喜欢稻草,所以如果有人有任何信息,特别是为什么dex操作占用了这么多CPU,那就太棒了。
我想不用说,如果我编辑XML文件,进行重建,然后启动应用程序,就会发生这种情况。如果没有什么可以清理和重建...... 当我做一个Make Project时......平均构建时间是3秒。
答案 0 :(得分:7)
以下是我能够做出的三项改进:
每次我构建项目时,我都会预先解析我的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
这是一项重大改进!希望这有助于其他人。
答案 1 :(得分:5)
正如tracker page for this issue所述,该团队已将此确定为问题:
- parallel-threads仅适用于项目并行化。
对于并行运行的android任务,我们总是创建为 尽可能多的线程
在页面中,似乎他们的目标是发布1.3来解决这个问题(请参阅第13条评论)。
与此同时,帮助我应对Windows 7的是设置Android Studio流程(及其子流程)的CPU亲和力,以便至少保留一个核心(如第9条评论所示)页)。
有很多方法可以执行此操作,但您可能需要尝试top-voted answer on this superuser question(建议使用Process Lasso),这对我来说效果不错。
答案 2 :(得分:0)
除了特定于Gradle的优化(请参见下文)外,我建议您尝试针对Gradle缓存目录和Android Studio项目目录尝试禁用防病毒保护。对我来说,这大约由50%减少了我的生成时间。从Windows搜索索引中排除那些相同的目录也可以提供帮助。
摇篮优化我使用,在〜/ .gradle / gradle.properties。
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx6144m <-- Tweak this based on available RAM
org.gradle.caching=true
org.gradle.parallel=true
kotlin.incremental=true
请注意,启用缓存意味着在切换分支时有时必须显式清除缓存。当我遇到令人困惑的构建问题时,我会运行此脚本。
#!/bin/bash
# Clean Android cache
./gradlew cleanBuildCache
# Clean Gradle cache, prompting for each directory
find ~/.gradle/caches -maxdepth 1 -name build-cache* -print -exec rm -rfI {} \;
# Clean Project
./gradlew clean
# Stop Gradle Daemon
./gradlew --stop
答案 3 :(得分:-3)
说实话,由于UI设计师的缘故,Android Studio比Eclipse更好。缺点是它使用gradle而不是Ant。 Gradle也更好但速度更慢 - 特别是在Windows上。它在Linux上运行得更好。如果您以前没有使用过Linux,请不要担心。 Linux Mint是一个稳定的操作系统,其UI与Windows类似。你很快就会在家里。它消耗的资源更少,因此为gradle构建留下了更多的处理能力。进行切换。你永远不会回去。