AndroidStudio 效能優化指南(Windows 篇)
注意:文中提及所有針對 AndroidStudio 的效能優化建議均實踐於 Windows 平臺,Mac 使用者僅供參考(下面 AndroidStudio 簡稱 AS,手打英文很累的>︿<)!
首先,關於 AS 以及 AS 使用的基礎知識就此略過不表。下面略過前戲直接開始正文~
1.AS 記憶體優化(針對 AS 卡頓)
首先開啟 AS 的安裝目錄,如果忘了 AS 安裝在哪個目錄,直接在桌面上右鍵 AS 快捷方式,然後 開啟檔案所在位置 ,下面是作者的 AS 安裝目錄,供參考:

AS 記憶體優化1.png
上圖用紅框圈出的兩個就是需要我們手動修改的 AS 配置檔案,保持這兩個檔案裡的內容一致就行。這裡以 studio64.exe.vmoptions 為例,開啟後內容大致如下(注意後面的註釋是我手動加的):
-server -Xms256m//這裡分配的值太小了 -Xmx1280m//這裡分配的值太小了 -XX:MaxPermSize=350m//這裡分配的值太小了 -XX:ReservedCodeCacheSize=240m//這裡分配的值太小了 -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true -Djna.boot.library.path= -da
AS 卡頓的最主要原因就是這個配置檔案裡某些值分配的太小了,請參照下面修改(注意作者的電腦記憶體為16G,具體值依照自己電腦記憶體大小修改!):
-server -Xms4096m -Xmx4096m -XX:MaxPermSize=4096m -XX:ReservedCodeCacheSize=2048m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true -Djna.boot.library.path= -da
修改好儲存,重啟下 AS 試試( ̄▽ ̄)"
問題來了,上面修改的四個值,設的越大越好嗎?經實踐,並不是!如果你把上面四個值改的太大,啟動 AS 時會見到類似下面的錯誤:

AS 記憶體優化2.png
2.AS 匯入專案在 Building gradle project info 一直卡住
這個我就不貼圖了,AS 在這地方卡住的原因大家應該能猜到(牆的原因),gradle官網雖然可以訪問,但是速度emmm…
解決方法也很簡單,就是手動下載gradle離線包~
首先,從專案根目錄裡開啟這個檔案:

AS優化3.png
開啟后里面的內容類似這樣:
#Wed Feb 14 10:21:32 CST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
注意上面最後一行指定的 gradle 版本,就是本專案使用的 gradle 版本,當本地還沒下載好這裡指定版本的 gradle 時,AS 去 gradle 官網下載,因為你懂的的原因,就卡在這兒了…
開啟C:\Users\使用者名稱\.gradle\wrapper\dists\gradle-x.xx-all\xxxxxxxxxxxx,如果裡面的gradle-xx-all.zip不完整(如0KB),則說明下載不成功:

AS優化4.png
下載成功後的完整樣子是這樣的:

AS優化5.png
解決方法,去 ofollow,noindex">gradle官網 下載需要的指定版本的 gradle zip包,把下載好的 gradle zip包放到上面的檔案目錄(C:\Users\使用者名稱.gradle\wrapper\dists\gradle-x.xx-all\xxxxxxxxxxxx)中,就 OK 啦,執行 AS 之後會自動解壓( •̀ ω •́ )✧
這時再開啟 AS 匯入專案,就不會卡在奇怪的地方了~
你或許想到了,除了這種解決方法,我們還可以手動修改 gradle-wrapper.properties 檔案裡的 gradle 版本為我們本地已經下載好的 gradle 的版本~
3.優化 Gradle 編譯速度
開啟C:\Users\使用者名稱\.gradle,找到檔案 gradle.properties(沒有就新建) 確保檔案裡有下面幾行內容:
org.gradle.daemon=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 ./gradlew assembleChinaFastDebug --configure-on-demand
更多 gradle 相關優化請參考 這裡
4.JCenter下載優化
用 gradle 構建專案下載依賴網速有時會慢得跟那啥似的…
原因你懂的,還是因為牆的存在!
解決方法,修改 maven 倉庫地址為國內映象即可,新建檔案 init.gradle,將以下內容複製進檔案:
allprojects{ repositories { def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL." remove repo } } } maven { url REPOSITORY_URL } } }
注意上面第三行指定的 maven 倉庫映象URL
將此檔案放在 C:\Users\使用者名稱\.gradle
5.Android SDK 下載/更新 優化
還是因為牆的存在,有時候下載或更新 Android SDK 時,emmm…
解決方法,為 AS 設定 HTTP代理即可:

AS優化6.png
完!

略略略.png