雖然Android?Studio 此時已經更新到了Android Studio 2.1版本,build 版本android-studio-bundle-143.2739321。但是在安裝該版本都是根據自己的標準進行安裝,所以需要在安裝之后進行一系列的調整。下面文章根據3個方面進行講解。分別為Android Studio本身、Gradle、不調整出現的編譯上的問題。
Android Studio優化
編譯優化需要有兩個步驟,以下一一介紹。
步驟一:Gradle編譯優化
在項目的根目錄中進行修改。修改gradle.properties,
gradle.properties 該文件的位置(H/gradle.properties)
Project-wide Gradle settings.?
IDE (e.g. Android Studio) users:?
Gradle settings configured through the IDE?will override?
any settings specified in this file.For more details on how to configure your build environment visit?
http://www.gradle.org/docs/current/userguide/build_environment.htmlSpecifies the JVM arguments used for the daemon process.?
The setting is particularly useful for tweaking memory settings.?
Default value: -Xmx10248m -XX:MaxPermSize=256m?
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8When configured, Gradle will run in incubating parallel mode.?
This option should only be used with decoupled projects. More details, visit?
http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects?
org.gradle.parallel=true
根據該文件的描述,我的設置為:
org.gradle.jvmargs=-Xmx3062m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8?
org.gradle.parallel=true?
org.gradle.daemon=true
名詞解釋?
這里可以參考:?
http://www.cnblogs.com/mingforyou/archive/2012/03/03/2378143.html?
- org.gradle.jvmargs :JVM 內存管理,存在于堆上。在這里可以理解為Gradle的內存管理?
- -Xms : 初始分配的內存由-Xms指定,堆內存。?
- -Xmx : 最大分配的內存由-Xmx指定,堆內存。?
- -XX:PermSiz:JVM使用-XX:PermSize設置非堆內存初始值?
- -XX:MaxPermSize設置最大非堆內存的大小?
- org.gradle.daemon=true?
- org.gradle.parallel=true
步驟二:Android Studio 優化
找到Android Studio安裝目錄。?
我的安裝目錄在F:\Android\AndroidStudio\Soft\bin?
在這個文件 gradle.properties
-server?
-Xms512m?
-Xmx2048m?
-XX:MaxPermSize=350m?
-XX:ReservedCodeCacheSize=240m?
-XX:+UseConcMarkSweepGC?
-XX:SoftRefLRUPolicyMSPerMB=50?
-da?
-Djna.nosys=true?
-Djna.boot.library.path=
-Djna.debug_load=true?
-Djna.debug_load.jna=true?
-Dsun.io.useCanonCaches=false?
-Djava.net.preferIPv4Stack=true?
-XX:+HeapDumpOnOutOfMemoryError?
-Didea.paths.selector=AndroidStudio2.1?
-Didea.platform.prefix=AndroidStudio
從這個文件中,可以根據上面上面的名詞解釋中進行理解性修改。上面是我自己的設置。
優化前 - 存在的問題
transformClassesWithDexForDebug
- Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’.?
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘C:\Program Files\Java\jdk1.8.0_77\bin\java.exe” finished with non-zero exit value 3 - Error:UNEXPECTED TOP-LEVEL ERROR:
- Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
- For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.?
To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.?
For more information see?https://docs.gradle.org/current/userguide/build_environment.html
原因
在使用Gradle編譯的時候,編譯內存不足導致。
解決方法
在項目的根目錄中進行修改。修改gradle.properties,?
set org.gradle.jvmargs=-Xmx2048M。?
修改后該問題得已解決。