整個(gè)項(xiàng)目中的build.gradle文件
AndroidStudio 3.0版本之前:
一般效果如圖:
1
在這個(gè)文件中你可以給此project中的所有的moudle配置公共基礎(chǔ)選項(xiàng)。
2 buildscript閉包
表示配置gradle腳本執(zhí)行所需要的信息
其中的repositories閉包表示指定代碼托管庫(kù)(或者說(shuō)是倉(cāng)庫(kù)的源),這里指定倉(cāng)庫(kù)源是jcenter,
簡(jiǎn)單來(lái)講可以說(shuō)是網(wǎng)址的頭,翻譯過(guò)來(lái)就是 :https://jcenter.bintray.com(不標(biāo)準(zhǔn))
其中dependencies:表示依賴性,這里指定的是'com.android.tools.build:gradle:2.3.1'
如果需要的話,gradle下載對(duì)應(yīng)版本的Gradle。如果使用gradle wrapper的話,感覺(jué)這個(gè)配置會(huì)被忽略。Wrapper會(huì)自己去下載所使用的gradle版本。
其實(shí)jcenter 就是 Android library 文件服務(wù)器中的其中一個(gè),另外一個(gè)就是 Maven Central,這兩個(gè)都是Maven 倉(cāng)庫(kù)。 jcenter 由 bintray.com 維護(hù) , Maven Central 則是由 sonatype.org 維護(hù),它們分別存儲(chǔ)在不同的服務(wù)器。
allprojects閉包
表示配置的是所有的工程;
并且通過(guò)dependencies指定項(xiàng)目的代碼托管庫(kù),設(shè)置之后可以輕松在項(xiàng)目中引用jcenter中開(kāi)源項(xiàng)目。
task clean
運(yùn)行g(shù)radle clean時(shí),執(zhí)行此處定義的task。
該任務(wù)繼承自Delete,刪除根目錄中的build目錄。
相當(dāng)于執(zhí)行Delete.delete(rootProject.buildDir)。
AndroidStudio 3.0版本之后:
1
你會(huì)發(fā)現(xiàn),指定的庫(kù)閉包里面多了一個(gè)google(),表明AS可以直接從google()庫(kù)中下載自己需要的內(nèi)容了。
具體某個(gè)mudle中的build.gradle文件
apply plugin
表示使用插件,
'com.android.application'表示指定當(dāng)前項(xiàng)目是一個(gè)應(yīng)用。
該插件一般有兩種值可選:一種為'com.android.application',表示該模塊為應(yīng)用程序模塊,可以直接運(yùn)行;另一種為'com.android.library',表示該模塊為庫(kù)模塊,只能作為代碼庫(kù)依附于別的應(yīng)用程序模塊來(lái)運(yùn)行。
android閉包
用于配置當(dāng)前項(xiàng)目的屬性。
compileSdkVersion:指定項(xiàng)目的編譯版本,表示API的版本號(hào)如圖表示是1~25
buildToolsVersion:指定項(xiàng)目的構(gòu)建版本,如打包工具之類的
你可以用高版本的ToolsVersion去編譯低版本的SdkVersion,反之不可以。
對(duì)這個(gè)項(xiàng)目進(jìn)行細(xì)節(jié)上配置
defaultConfig:{
applicationId:應(yīng)用的包名
minSdkVersion:項(xiàng)目最低兼容版本
targetSdkVersion:表示項(xiàng)目已經(jīng)在當(dāng)前版本上進(jìn)行了充分測(cè)試,系統(tǒng)才會(huì)開(kāi)啟新的版本特性,
也就是說(shuō);若指定targetSdkVersion值為22,則表示該程序最高只在Android5.1版本上做過(guò)充
分測(cè)試,在Android6.0系統(tǒng)上(對(duì)應(yīng)targetSdkVersion為23)擁有的新特性如系統(tǒng)運(yùn)行時(shí)權(quán)限等功能就不會(huì)被啟用
versionCode:版本號(hào)
versionName:版本名稱
testIntrumentationRunner:為了進(jìn)行單元化測(cè)試
}
生成安裝文件的主要配置
buildTypes{
表示的是發(fā)布正式版本
release{
minifyEnabled:表示是否混淆
proguardFiles:表示指定混淆文件
}
}
dependencies閉包
指定本項(xiàng)目的依賴關(guān)系,分為三種形式的依賴,
compile fileTree:一個(gè)本地依賴聲明,表示將libs目錄下所有.jar后綴的文件都添加到項(xiàng)目的構(gòu)建路徑當(dāng)中。
compile:遠(yuǎn)程依賴,AS會(huì)去jcenter()這種庫(kù)源中去下載所需要的內(nèi)容。
compile project(':honjane-demo-library') 庫(kù)依賴
testCompile:聲明測(cè)試用例庫(kù)
androidTestCompile:測(cè)試用例庫(kù)。
在3.0 版本上的變化
在dependencies中:
implement 和api代替了compile
其中,api 完全等于compile,沒(méi)有區(qū)別
implement 指令有自己的好處:對(duì)于使用了該命令編譯的依賴,對(duì)該項(xiàng)目有依賴的項(xiàng)目將無(wú)法訪問(wèn)到使用該命令編譯的依賴中的任何程序,也就是將該依賴隱藏在內(nèi)部,而不對(duì)外部公開(kāi)。