Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> 安卓省電與加速 >> 加速Android Studio/Gradle構建詳解

加速Android Studio/Gradle構建詳解

編輯:安卓省電與加速

當你的項目越來越大,添加的依賴庫越來越多, gradle 的構建速度 會越來越慢, 慢到 懷疑你的電腦配置,

如果你的英文不錯 ,那麼你可以看gradle 的官方文檔 ,裡面有相關的介紹

http://www.gradle.org/docs/current/userguide/build_environment.html

首先 我們倆看一下 gradle的介紹

Gradle提供幾個選項,使它容易配置的Java進程將被用於執行構建。同時可以配置這些在你當地的環境通過GRADLE_OPTS或JAVA_OPTS,某些設置比如JVM內存設置,Java,守護進程開/關可以更有用,如果他們可以與風投的項目版本,這樣整個團隊就可以使用一致的環境。建立一個一致的環境構建簡單把這些設置成gradle.properties文件。

 

要想讓項目編譯的更加快速 最主要的問題就是 配置 gradle.properties

如果你之前沒有什麼配置,那麼將會是下面的界面 (注釋除外)

 

## Project-wide Gradle settings.
#
# For more details on how to configure your build environment visit //如果需要更多信息,可以參考gradle 的官方網頁
# http://www.gradle.org/docs/current/userguide/build_environment.html
#
# Specifies the JVM arguments used for the daemon process.//將jvm用於守護進程 (即自動啟動,後台運行,額,經過我測試, 配置 org.gradle.daemon 將吃掉一部分內存,但是會讓你的項目編譯更加迅速,具體原因後續講到)
# 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-8
#
# 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=true
#Thu Mar 31 08:35:57 CST 2016

在這個配置文件中 有好幾個方法 

1. 我們 可以在 文件的最後添加上 

org.gradle.daemon=true

Gradle Java虛擬機(JVM)上運行,並使用一些支持庫,需要一個簡單的初始化時間。因此,它有時似乎有點緩慢的開始。此問題的解決方案是Gradle守護進程:一個長壽的後台進程執行構建比其他情況下更迅速。我們做到這一點,避免昂貴的引導過程,以及利用緩存,通過保持你的項目的數據在內存中。與守護進程運行Gradle構建也不例外。簡單的配置是否你想使用它,其他的都是由Gradle透明地處理。

2.配置與守護進程相關的內存大小org.gradle.jvmargs 我們可以再添加一行 

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

指定jvmargs用於守護進程。調整內存設置的設置尤其有用。

3.如果你編譯的第三方庫,在module gradle 中 無 compile "文件" ,那麼 我們可以直接用 offline 模式(當用這種方式時候,假如你所引用的庫不在本地,那麼可能導致編譯失敗,就 需要去掉 勾選offline),

例如

	compile 'io.reactivex:rxandroid:1.1.0'

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved