整個(gè)項(xiàng)目中的build.gradle文件
AndroidStudio 3.0版本之前:
一般效果如圖:
1
在這個(gè)文件中你可以給此project中的所有的moudle配置公共基礎(chǔ)選項(xiàng)。
2 buildscript閉包
表示配置gradle腳本執(zhí)行所需要的信息
其中的repositories閉包表示指定代碼托管庫(或者說是倉庫的源),這里指定倉庫源是jcenter,
簡(jiǎn)單來講可以說是網(wǎng)址的頭怕享,翻譯過來就是 :https://jcenter.bintray.com(不標(biāo)準(zhǔn))
其中dependencies:表示依賴性帚称,這里指定的是'com.android.tools.build:gradle:2.3.1'
如果需要的話敷扫,gradle下載對(duì)應(yīng)版本的Gradle突诬。如果使用gradle wrapper的話呐舔,感覺這個(gè)配置會(huì)被忽略矫俺。Wrapper會(huì)自己去下載所使用的gradle版本吱殉。
其實(shí)jcenter 就是 Android library 文件服務(wù)器中的其中一個(gè),另外一個(gè)就是 Maven Central厘托,這兩個(gè)都是Maven 倉庫友雳。 jcenter 由 bintray.com 維護(hù) , Maven Central 則是由 sonatype.org 維護(hù)铅匹,它們分別存儲(chǔ)在不同的服務(wù)器押赊。
allprojects閉包
表示配置的是所有的工程;
并且通過dependencies指定項(xiàng)目的代碼托管庫包斑,設(shè)置之后可以輕松在項(xiàng)目中引用jcenter中開源項(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)找御,指定的庫閉包里面多了一個(gè)google(),表明AS可以直接從google()庫中下載自己需要的內(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',表示該模塊為庫模塊卿闹,只能作為代碼庫依附于別的應(yīng)用程序模塊來運(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ì)開啟新的版本特性,
也就是說诱渤;若指定targetSdkVersion值為22暂刘,則表示該程序最高只在Android5.1版本上做過充
分測(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()這種庫源中去下載所需要的內(nèi)容深滚。
compile project(':honjane-demo-library') 庫依賴
testCompile:聲明測(cè)試用例庫
androidTestCompile:測(cè)試用例庫奕谭。
在3.0 版本上的變化
在dependencies中:
implement 和api代替了compile
其中,api 完全等于compile,沒有區(qū)別
implement 指令有自己的好處:對(duì)于使用了該命令編譯的依賴痴荐,對(duì)該項(xiàng)目有依賴的項(xiàng)目將無法訪問到使用該命令編譯的依賴中的任何程序血柳,也就是將該依賴隱藏在內(nèi)部,而不對(duì)外部公開生兆。