android gradle的理解 以及 解決編譯慢的問題

gradle的重要概念:

1.gradle 安裝的位置

1.用戶目錄下 .gradle

用戶目錄下wrapper/dist 下有已經下載的gradle版本; 如果gradle下載慢可以自己下載,然後把zip考進對應的隨機文件夾內(注意時隨機文件夾,這個系統生成不能改,例如我的是gradle-4.6-all\bcst21l2brirad8k2ben1letg)

2.每個項目目錄下有gradle

1.項目下的.gradle 和.idea是二進制中間文件,一般我們不必去看;

2.gradle文件夾下,有:

 

gradle-wrapper.properties 裏面記錄着本項目是用哪個版本的gradle構建的;該地址是gradle下載地址,本地如果沒有就會去該地址下載;

gradlew和gradlew.bat是執行腳本,分別對應 linux/mac 和 windows的

gradlew.bat中腳本,調用gradle-wrapper.properties裏的GradleWrapperMain.class 來檢測gradle是否安裝,如果未安裝,就去官網下......

 

2.Groovy 語言的特點:

1.所有頂級表達式的括號可以省略;

2.當閉包是一個頂級表達式的最後一個參數時,可以省略括號;(例如:compileSdkVersion 26原本是 compileSdkVersion (26))

3.但是函數嵌套調用已有函數沒有參數時不能省略;

 

3.build.gradle腳本講解:

1.項目總目錄下的build.gradle:

 

2.moudle 下面的buid.gradle:

4.settings.gradle講解:

用來配置項目包含哪些moudle

一般情況下是這樣的:

我們可以在裏面寫代碼:

吆西,gradle不只是一個改參數的配置工具,他是可以寫代碼的!!! 只要帶.gradle的文件,都可以寫groovy代碼 。

 

 

gradle編譯慢的問題:

 

1.gradle下載慢:

原因:是執行gradlew.bat時調用gradle-wrapper.jar中的gradleWrapperMain.class ,他會檢測 gradle-wrapper.properties 裏的distributionUrl對應的gradle版本在本地是否存在,如果不存在就會去這個url裏下載;

解決辦法:1.可以自己手動下載對應版本的gradle,然後放到本地c盤用戶目錄下的.gradle/dist/下對應gradle文件夾下的隨機文件夾中,手動下載比較快

2.修改gradle-wrapper.properties 裏的distributionUrl,把gradle-3.3-all.zip改成 gradle-3.3-bin.zip (bin比all小很多,幾十兆)

2.依賴包下載慢:

原因:gradle倉庫是國外的,有些連接很慢;

解決辦法:1.添加國內的倉庫到allprojects閉包下的repositories中(比如阿里雲倉庫),放到第一個倉庫的位置,這樣可以優先查找;

3.每次編譯都很慢:

儘量不要使用使用帶有+號的依賴,因爲這樣的依賴會隔一段時間去服務器檢測一下是否有新的版本

4.終極解決辦法:

將jar,aar都考到本地,或者可以自己建一個倉庫;

 

關於gradle的乾貨介紹到這裏。。。。。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章