Android中gradle和環境變數
一. Gradle
為什麼很多時候我們開啟別人的專案,build的時候會卡住,build的很慢呢?
首先講一下,AS中的gradle有兩個部分:
1. gradle : gradle是一個專案構建工具。可以在setting/Build/gradle設定。Gradle官網
2. gradle_plugin: 是由google提供的外掛,方便構建Android應用。在你專案的主目錄下有一個檔案
)
classpath 'com.android.tools.build:gradle:2.3.3'
AndroidStudio構建專案使用了gradle。在AS中的setting/Build/gradle設定中,如圖,當你選中use default gradle wrapper之後,AS會使用project預設的gradle版本來構建專案。
專案預設的gradle在哪裡呢?
在project目錄下有一個 gradle目錄 gradle/wrapper下有一個gradle-wrapper.properties檔案,檔案中有一行
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
這就是這個project的預設gradle版本,當你選用use default gradle wrapper之後,AS發現本地沒有這個版本,就會使用這個地址去gradle官網下載。 而國內的網路環境,大家都懂。所以就…
所以我們要使用use local gradle distribution,手動去下載適合自己AS的gradle版本解壓,不用和gradle-wrapper.properties中的版本一致。 然後在gradle home中選擇下載的gradle目錄即可。
那麼下載什麼版本呢?
開啟project的build.gradle檔案,下面有
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
}
這裡所說的gradle實際上是Google提供的gradle外掛。將這裡的版本改成你的專案中使用的gradle plugin版本號。Google提供了gradle plugin和gradle版本的對應表
如果你是新安裝的Androidstudio,可能直接就會在第一次新建專案時候卡在
refreshing gradle project這裡
這也是因為專案下載gradle導致的卡住,開啟C:\Users\你的使用者名稱.gradle\wrapper\dists\gradle-3.3-all\d3xh0kipe7wr2bvnx5sk0hao8這個目錄,最後一段可能和你不一樣。然後下載對應的gradle版本解壓到這個目錄下面。然後再開啟,就好了
全部改完之後,基本上build的時候慢的話就和 下載gradle 沒有關係了
二. 各種環境變數
使用Androidstudio的Windows會發現,在C:\Users\使用者名稱/ 目錄下面會有各種以 . 開頭的資料夾,而且用久了會發現挺大的。 對於我這種強迫症來說,肯定要把他們移出去的。
其中 主要有這麼幾個
.gradle
.androidstudio2.3
.android
分別來把他們遷走
1 .gradle
.gradle是gradle生成的一些配置檔案和快取檔案。 可以直接複製出去,我將.gradle目錄複製到了E:\Android\目錄下面,配置環境變數如下
GRADLE_USER_HOME=E:\Android\.gradle
在setting/gradle 的service dirctory path 選擇.gradle目錄即可
2. android
.android 是AS中模擬器的配置和下載目錄。例如我將.android 目錄複製到了E:\Android\AVD目錄下面,配置環境變數如下
ANDROID_SDK_HOME=E:\Android\AVD
3. androidstudio2.3
這個目錄是AS自身的一些設定,快取目錄。我將.androidstudio目錄複製到了E:\Android目錄下。
接下來開啟andridstudio的安裝目錄,在bin目錄下面有一個idea.properties檔案。前面有兩行配置,改成如下即可
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE config folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
idea.config.path=E:/Android/.AndroidStudio2.3/config
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE system folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
idea.system.path=E:/Android/.AndroidStudio2.3/system
注意去掉改的兩行前面的#號
這種改法對於JetBrains家的其他軟體也有效果,例如Intellij Idea,Clion都可以
此外,再新增一句
idea.plugins.path=${idea.system.path}/plugins
這條語句的意思是使用idea.system.path下的plugins資料夾作為外掛目錄,不新增這一句會導致 下載的外掛重啟後消失,未能啟用。
因為Androidstudio的預設外掛資料夾目錄是{idea.config.path}/pagins
4. 其他的一些環境變數配置
Java的環境變數
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_121
Path中新增
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
SDK的環境變數
ANDROID_HOME=E:\Android\SDK
Path中新增
%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
gradle的環境變數
GRADLE_HOME=E:\Android\Gradle\gradle-3.4
Path中新增
%GRADLE_HOME%\bin;
Maven的環境變數
M2_HOME=D:\Program Files\Maven\apache-maven-3.5.3
Path中新增
%M2_HOME%\bin;