轉(zhuǎn)載自https://blog.csdn.net/z302766296/article/details/89468726
1. Project Structure Dialog(PSD)
其實(shí)就是我們平時(shí)對(duì)項(xiàng)目主程,按下F4的時(shí)候蚯舱,顯示的那個(gè)dialog改化。發(fā)現(xiàn)里面確實(shí)是多了幾個(gè)功能。如圖
發(fā)現(xiàn)呢晓淀,UI的話還是有點(diǎn)變化的所袁。主要是看看功能變化盏档,上面的Project凶掰、SDK Location都可以跳過了,可以看到第三個(gè)蜈亩,新增的Variables懦窘。
2. Variables
可以理解成,模塊的gradle變量依賴稚配。在UI上面畅涂,可以看到整個(gè)App的模塊目錄,然后在目錄下面又有不同的dependencies道川。
先說下這個(gè)dependencies是什么呢午衰?為什么有的項(xiàng)目會(huì)有dependencies呢?
一般的話冒萄,在開發(fā)過程中臊岸,特別是涉及到模塊化開發(fā)的時(shí)候,為了保證全部模塊都使用同一個(gè)依賴庫(kù)的管理尊流,這里一般有兩種方法:
1.設(shè)置一個(gè)叫dependencies.gradle文件帅戒,里面主要是設(shè)置一些常用第三方庫(kù)的依賴。
2.直接在主程的build.gradle下創(chuàng)建一個(gè)dependencies的節(jié)點(diǎn)崖技。
先說方法一逻住,就拿我以前負(fù)責(zé)搭建的一個(gè)項(xiàng)目為例钟哥。
然后在項(xiàng)目主程的build.gradle添加依賴大概就這樣吧,一個(gè)依賴管理器瞎访,然后在主程項(xiàng)目添加引用腻贰,再到子模塊使用。
方法二:
直接在主程下面的allprojects節(jié)點(diǎn)下扒秸,添加ext和dependencies節(jié)點(diǎn)
兩者的方式都是一致的银受,為了做一個(gè)gradle的依賴管理。但是發(fā)現(xiàn)只有方案2的會(huì)顯示在variables上鸦采,后面查了下官方的文檔宾巍,他們的做法也是方案二的做法。
所以呢variables上面主要是一些定義在gradle中的變量渔伯。
再看到下面的Modules面板顶霞,和之前的功能大致一樣,但是多了些提示的功能锣吼,UI上面也更加友好选浑。但是和之前的相差不是很大。簡(jiǎn)單略過下
3. dependencies面板
在3.4版本玄叠,dependencies是單獨(dú)拿了出來古徒,還擴(kuò)展了不少功能,最關(guān)鍵的一個(gè)莫過于是依賴庫(kù)的查找
了 我們以前添加第三方庫(kù)的依賴读恃,一般是maven找隧膘,或者GitHub找對(duì)應(yīng)的庫(kù)。但是現(xiàn)在AS提供一個(gè)搜索依賴庫(kù)的功能
dependencies面板的說明大概如上了寺惫,列出了當(dāng)前模塊依賴的第三方模塊疹吃、右側(cè)的就是不同構(gòu)建版本下的依賴信息,可以詳細(xì)看到依賴包的類西雀。點(diǎn)擊的一個(gè)dependencies的時(shí)候還有具體的提示萨驶,如圖
依賴庫(kù)的查找
通過dependencies里面的+小箭頭,再選中l(wèi)ibrary dependency就可以調(diào)到搜索頁(yè)面了艇肴,可以搜Maven腔呜,JCenter等遠(yuǎn)程的倉(cāng)庫(kù),也可以搜索本地的再悼,大大減少了添加依賴時(shí)找包的問題- -核畴。
但是也有一個(gè)需要注意的地方,看到這段注釋
查找的第三方庫(kù)都是根據(jù)我們projects項(xiàng)目的build.gradle中的repositories中配置的倉(cāng)庫(kù)控制帮哈。例如jcenter膛檀,Maven那些。
所以為了加快搜索速度,一般在projects下的build.gradle中的repositories添加如下配置
buildscript {
repositories {
// 添加如下倉(cāng)庫(kù)咖刃。
jcenter()
google()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url "https://mvnrepository.com" }
// 阿里云鏡像
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
例如添加個(gè)OKHttp看看
注意泳炉,這里面搜索出來的可能比較多。這就需要取我們常用的嚎杨,squareup下面的OKHttp3了花鹅,然后右側(cè)有一個(gè)版本可以選擇。點(diǎn)擊OK之后枫浙,依賴只是添加到了清單文件刨肃,但是當(dāng)我們構(gòu)建gradle的時(shí)候就生效了。
再次點(diǎn)擊這里的ok箩帚,就開始構(gòu)建gradle了真友。
ps:有時(shí)候搜索的時(shí)候會(huì)提示noting to show...那就得看看project->build.gradle中是否配置了上述所說的那些倉(cāng)庫(kù)依賴了,有的情況下紧帕,添加了倉(cāng)庫(kù)依賴之后盔然,也未必能找到。那就多試幾次查找就好了是嗜。
4. buildVariants面板
buildVariants愈案,感覺這個(gè)功能沒啥用,因?yàn)閎uildVariants需要配置的遠(yuǎn)比面板提供的信息要多
5. Suggestions面板:
對(duì)當(dāng)前項(xiàng)目模塊構(gòu)建的信息做一個(gè)提示建議鹅搪,例如依賴的升級(jí)以上就是PSD的東西了站绪,但是3.4更新的ResourceManager也是厲害。直接上圖
6.ResourceManager
默認(rèn)會(huì)在左邊的側(cè)邊欄找到丽柿,或者通過View->Tools Window->Resource Manager找到
打開ResourceManager 面板是這樣的
感覺ResourceManager真的加快了開發(fā)的效率恢准,尤其是在做APK優(yōu)化,接手項(xiàng)目航厚,查詢layout的時(shí)候顷歌,簡(jiǎn)直是質(zhì)的提升锰蓬。
而且通過filter中勾選library查看第三方依賴的一些layout啊信息等幔睬,就可以針對(duì)性做優(yōu)化了。
7. Plugin面板
面板的更新芹扭,也改變得比較直觀麻顶,都是照顧程序員啊,眼睛不好使舱卡,所以文字描述啊辅肾,分類那些字體都放得大大的。
關(guān)鍵一個(gè)好的地方轮锥,搜索和結(jié)果是放在一起了矫钓。以前的版本,每次都要點(diǎn)下下面的browser...這邊直接搜一下就ok了。
然后更新的面板也單獨(dú)抽取出來新娜,比較直觀和容易地管理插件
8. R8
什么是R8赵辕?看到官網(wǎng)文檔,R8是在3.3 beta的時(shí)候發(fā)布的一個(gè)功能概龄,而3.4直接用R8的方式構(gòu)建項(xiàng)目还惠。
簡(jiǎn)單來說R8主要是針對(duì)proguard做的一系列的優(yōu)化,將編譯中的一部分任務(wù)集成在一起私杜,提高了編譯效率
未開啟R8之前的編譯任務(wù)如圖
R8構(gòu)建項(xiàng)目
R8效率對(duì)比蚕键,圖來自官網(wǎng)
默認(rèn)可以在gradle.properties中關(guān)閉R8
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
再說下,在3.4遇到的功能衰粹,可能是之前3.3就有的功能锣光,現(xiàn)在才發(fā)現(xiàn)