提高Android Studio中Gradle執行效率

來源:互聯網
上載者:User

標籤:android studio   gradle   performance   

尊重勞動成果,轉載請註明出處:http://blog.csdn.net/growth58 

你是否感覺到Android Studio構建速度太慢?我也有這感覺。



幸運的是,這有很多可以提高構建速度的技巧。這些技巧目前還在實驗並且有可能是不安全的,如果你覺得構建時間太長而且很痛苦的話,嘗試一下這些技巧還是很有價值的。我已經按照下面所描述的試過在代碼改動很少的情況下構建時間下降了2.5秒。希望對你有協助。

Android Studio使用Gradle來構建工程。目前Gradle的版本為2.2。最近的版本為2.4,效能比之前的版本有很大的提升。

這有兩種方式,一種是手動編輯構建檔案,另一種是通過Android Studio改變更配置置。

對於手動編輯構建檔案,在工程的根目錄下的build.grade檔案末尾添加以下代碼:

task wrapper(type: Wrapper) {    gradleVersion = '2.4'}

開啟終端並運行命令:./gradlew wrapper,它將會下載並設定版本2.4的Gradle對於你本地的Gradle wrapper.這是Gradle官方文檔中所描述的方法(http://gradle.org/docs/current/userguide/gradle_wrapper.html)。


對於通過Android Studio配置,開啟工程結構對話方塊,選擇工程-〉將Gradle版本改為2.4.當你點擊確定,Android Studio將自動同步Gradle的配置,並設定wrapper的新版本。



筆記:這個僅僅是當你的工程用的是Gradle wrapper(預設是用Android Studio 產生的工程)。如果不是這種情況,請參考Gradle文檔http://gradle.org.


第二步就是開啟工程的構建檔案中的 daemon and parallel開關。使用daemon(守護進程)將會使構建啟動很快,並且它不會在應用程式每次啟動的時候進行完整的構建。使用Parallel將會同時構建多個模組,在工程很大或模組很多的工程使構建速度很快。

在.gradle檔案夾下添加一個檔案名稱為gradle.properties的檔案,添加如下代碼(如:~/.gradle/gradle.properties)。

org.gradle.daemon=trueorg.gradle.parallel=true


筆記:Android Studio 已經開啟daemon的開關,當從終端進行構建時這個配置將確保daemon的開啟。

你也可以在你的工程的根目錄下添加這個檔案,對於每個人構建應用它將會自動開啟,包括你的Integration Environment(就像Jenkins CI)。當你不使用daemon構建時,從這查看更多資訊http://gradle.org/docs/current/userguide/gradle_daemon.html#when_should_i_not_use_the_gradle_daemon.

關於parallel的重要的筆記:配置parallel有可能使一些工程不安全。這要求你的模組必須是解耦的(參考http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects)  否則有可能會構建失敗。仔細測試你構建的所有variants,你會知道它的所有工作。

你可以添加其它構建參數,比如當你的工程很大時增加堆棧大小,或者指定JVM:

org.gradle.jvmargs=-Xmx768morg.gradle.java.home=/path/to/jvm

對於gradle.properties檔案中其它可以配置的選項,參考http://gradle.org/docs/current/userguide/userguide_single.html#sec:gradle_configuration_properties. Android Studio中一些選項是可用的,也有是預設開啟的,但在gradle.properties檔案中開啟這些選項時,當你使用終端構建工程時,這將會確保你的同事也做了同樣的配置。

最後是改變incremental dexing的值,這是一個實驗的功能並且預設是關閉的。開啟這個開關有可能會導致構建失敗(尤其是在連續啟動並執行時候),但我還是推薦你嘗試一下,看看它是否對你有用。

在主APP模組的build.gradle檔案中,添加下面的代碼:
dexOptions {        incremental true}


希望能幫到你,如果你對提高構建執行效率有任何問題或其它技巧請在下面留言。

第一次翻譯文章,水平有限還望見諒,如有曲解原文作者的意思,還望不吝指出。

原文地址:https://medium.com/@erikhellman/boosting-the-performance-for-gradle-in-your-android-projects-6d5f9e4580b6



提高Android Studio中Gradle執行效率

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.