Android Sutido 編譯速度優化

雖然Android Studio 此時已經更新到了Android Studio 2.1版本,build 版本android-studio-bundle-143.2739321。可是在安裝該版本都是根據本身的標準進行安裝,因此須要在安裝以後進行一系列的調整。下面文章根據3個方面進行講解。分別爲Android Studio自己、Gradle、不調整出現的編譯上的問題。html

Android Studio優化

編譯優化須要有兩個步驟,如下一一介紹。java

步驟一:Gradle編譯優化

在項目的根目錄中進行修改。修改gradle.properties,android

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.api

For more details on how to configure your build environment visit 
http://www.gradle.org/docs/current/userguide/build_environment.htmlandroid-studio

Specifies 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-8app

When 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=truejvm

根據該文件的描述,個人設置爲:ide

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

名詞解釋 
這裏能夠參考: 
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

  1. 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
  2. Error:UNEXPECTED TOP-LEVEL ERROR:
  3. Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
  4. 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。 修改後該問題得已解決。

相關文章
相關標籤/搜索