我最近从Eclipse升级到Android Studio,但我并不喜欢这种体验。我比较的是Windows 7 64位终极版,16GB内存,英特尔i7 4770运行NVidia Geforce 780,如果重要的话,我运行的是最新的JDK和最新的Android Studio。

Android Studio在构建项目时非常缓慢,我可以接受,但它也非常消耗资源,有时会使PC速度变慢。

每当我在AS中构建或运行任何东西时,我的PC似乎变得极其缓慢。如果我点击“Gradle build running”旋转器,它也会导致屏幕闪烁,偶尔会让我的第二个显示器空白,我觉得这很奇怪。内存的使用也飙升到3GB,我发现什么都不做就过度了(这是在几次构建后空闲的时候)。

此外,AS底部的面板一直在跳来跳去,这是一种糟糕的用户体验(从Android移动到消息到版本控制或其他任何临时的基础上,这取决于正在发生的事情,这是非常非常恼人的)。

我想知道的基本上是:

1)如何让Android Studio运行得更好?我可能做错了什么,或者错过了一些我不知道的更新,我相信其他人也注意到了这些行为,并找到了一些解决方案。

2)我如何“钉”底部面板,使他们不跳,而是让我,用户,导航到他们当我希望而不是自动切换他们?

非常感谢,如果这不是这些问题的正确位置,我再次道歉。

编辑1 更多评论:

我使用的是今天最新的稳定版本。这个版本是Android Studio 1.2.2 build # AI-141.1980579,于2015年6月3日发布 这种行为发生在使用Java 7或Java 8时。它似乎与Java版本无关。 我没有使用演示模式。只是普通的观点。 对构建配置进行更改(感谢@Blackbelt和他的回答)似乎对构建有所帮助,但迟缓和一般用户体验等其他问题仍然存在。


当前回答

我遵循了这个帖子,它对我很有效。

编辑:

以下技巧已经在上面的帖子中提到。

在它。属性,这样写:

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true

在构建中。gradle,把这个(注意这将禁用lint检查):

tasks.whenTaskAdded { task ->
    if (task.name.equals("lint")) {
        task.enabled = false
    }
}

其他回答

1最常见的慢的原因是使用模拟器

, especially more than one. USB debugging with the external mobile device can be used.

2每个月让缓存失效一次

一个简单的事情,没有人提到的是文件>无效缓存。

这可能听起来很愚蠢,也离题了,但在我的情况下,我用的是外接4k显示器和我的MacBook Pro 13' (MacOS High Sierra, 2016),我把分辨率设置成错误的比例分辨率。切换到另一个没有“使用缩放分辨率可能会影响性能”警告的缩放分辨率解决了我的整体性能问题。在我的例子中,我必须将分辨率提高到最大。

所以对我来说,这是Android Studio最先出现的整体性能问题,而不是Android Studio特有的问题。

编辑25.11.2017

因此,我不得不在Android Studio中增大字体大小:

在我的Mac上。我遵循了下面的一些建议。

我想分享一下我的案例:

如果你需要play-store库,不要编译所有的库,只编译你需要的库。例如:如果你只需要地图库,而不是编译'com.google.android.gms:play-services:9.0.2',那么在你的gradle上编译'com.google.android.gms:play-services-maps:9.0.2' 不使用OpenJDK的java,我使用java 7甲骨文,它工作得很好。如果你需要更改默认的Java,在Linux终端上执行sudo update-alternatives——config Java并选择数字

我使用的是ubuntu 32位4GB内存。这就是我在阿斯伯格综合症中遇到的所有问题。

这个答案涉及到在你已经把Xmx和Xms内存设置弄清楚之后,Windows 10的Gradle构建速度变慢的问题。

视窗防护

就Windows Defender而言,仅仅通过“文件”或“文件夹”将文件夹/文件添加到Windows Defender排除列表是不够的。

你必须添加属于Android Studio / Gradle / Java(嵌入式JDK或Oracle JDK)的目录作为“进程”排除到Windows Defender:

看一下大卫·罗森的答案 在Gradle构建过程中…监视Windows任务管理器的进程 在Windows Defender中,为包含文件/可执行文件的目录添加“进程”排除,你看到在与Android Studio / Gradle相关的构建过程中使用CPU

这显然会带来安全隐患。

以下描述了有关在Windows Defender中使用“进程”排除(而不是添加简单的“文件”或“文件夹”排除)的更多细节:

A file name with full path causes the particular binary file to be excluded, i.e. any files it touches, regardless of where the file is located, will not be scanned by Windows Defender. A file name without any path causes any binary file with this file name to be excluded regardless of its location. A path followed by a "*" (e.g. c:\my\private\tools*) causes any binaries under this path to be excluded. Any files touched by these processes will be excluded. This is different from a path exclusion, where files touched by any process under the excluded path is excluded.

这里的关键字是....将这些排除作为“进程”类型的排除考虑到“二进制接触的文件”,而不是手动查找并排除由Android Studio / Gradle生成的每个文件/文件夹。

Windows文件索引

Windows文件索引似乎也会降低Gradle构建的速度。关闭Gradle / Android Studio使用的目录的Windows文件索引。

以下是我排除的“Windows文件索引”和“Windows防御程序”:

 C:\Program Files\Android\*
 C:\Users\<yourUserAcct>\.android\*
 C:\Users\<yourUserAcct>\.AndroidStudio3.0\*
 C:\Users\<yourUserAcct>\.gradle\*
 C:<pathToYourAndroidStudioProjectFolder>

这里让我感到痛苦的不是编译,而是输入。我可以禁用所有智能功能,回到notepad++,就像TomTsagk在评论中建议的那样。今天我需要更多的核心和内存。

作为魔鬼的拥护者,我认为打字不应该需要16Gb的八进制PC。喜欢Sajan Rana的建议,但这里的事情太缓慢了,感觉像是安慰剂。

为了公平起见,我使用的是1.4RC1,它离稳定分支还差得远。关闭互联网有一点帮助。同时使用XML布局的设计(预览)和文本视图的新特性非常有用。

不,这太荒谬了。永远不要离开稳定的航道。