compileSdkVersion
compile 是編譯的意思正歼,也就是說 compileSdkVersion指的是編譯的SDK版本蛙紫,也就是API-level萍膛,eg: api-19,api-21等血崭。不管是run雨让,還是build都要經(jīng)過一次編譯雇盖。需要注意的是:當(dāng)你改變compileSdkVersion并重新sync之后,如果出現(xiàn)一些警告或者錯(cuò)誤栖忠,錯(cuò)誤肯定是要修改的崔挖,警告也最好修改下贸街。
出現(xiàn)這些警告或錯(cuò)誤的原因大概是API或者寫法過時(shí)了。還有compileSdkVersion的改變不會(huì)影響運(yùn)行時(shí)的行為狸相。
buildToolsVersion
這個(gè)是構(gòu)建工具的版本薛匪,其中包括了打包工具aapt、dx.bat脓鹃、aidl.exe等等逸尖。構(gòu)建工具就是會(huì)幫助你新建項(xiàng)目和打包apk等,這個(gè)工具的目錄位于..your_sdk_path/build-tools/XX.XX.XX瘸右,這個(gè)版本號(hào)一般是API-level.0.0娇跟。buildToolsVersion要>=compileSdkVersion; 高版本的build-tools 可以構(gòu)建低版本編譯的android程序。
miniSdkVersion
這個(gè)是標(biāo)識(shí)應(yīng)用程序可運(yùn)行的最低版本太颤,例如:miniSdkVersion為19( Android4.4)苞俘,那么API-level在19以下的,也就是低于Android4.4版本的都安裝不了龄章。這個(gè)通常也是應(yīng)用市場(chǎng)來判斷用戶手機(jī)能不能安裝這個(gè)客戶端的標(biāo)準(zhǔn)吃谣。
targetSdkVersion
targetSdkVersion也就是目標(biāo)SDK版本,也就是說做裙,當(dāng)targetSdkVersion是22時(shí)岗憋,這個(gè)客戶端在Android5.1上運(yùn)行是最好最合適的。targetSdkVersion的變化會(huì)改變運(yùn)行行為锚贱,比如當(dāng)前targetSdkVersion是22仔戈,那這個(gè)客戶端在Android6.0上運(yùn)行時(shí)不會(huì)出現(xiàn)動(dòng)態(tài)聲明權(quán)限問題。
這里也說明了一個(gè)問題:targetSdkVersion也指定了當(dāng)前客戶端可調(diào)用最高等級(jí)的API惋鸥。也就是當(dāng)targetSdkVersion是22時(shí)杂穷,客戶端只能調(diào)用 <=22的API悍缠,不能調(diào)用 >22的API卦绣,這也就是解釋了上面那個(gè) 動(dòng)態(tài)聲明權(quán)限問題。
Gradle飞蚓、Plugin gradle和Gradle Wrapper
Gradle 是一個(gè)依賴管理和任務(wù)執(zhí)行的工具滤港,簡單來說gradle是一個(gè)工程構(gòu)建工具,java代碼趴拧,和資源文件需要經(jīng)過sdk里的一些程序如aapt等處理溅漾,才能形成apk包,還有假如你的項(xiàng)目需要哪些第三方庫著榴,它幫你把它們都下載下來添履,并且編譯好放到指定的位置,你就直接可以import后用了脑又。gradle就是把那些步驟變得簡單化暮胧。其配置位置在 gradle/wrapper/gradle-wrapper.properties文件中
distributionUrl就是當(dāng)前gradle版本锐借。
gradle插件(Plugin gradle) 是就是給gradle和Android studio提供連接的橋梁。其版本配置是在 該項(xiàng)目對(duì)應(yīng)的build.gradle文件中 dependencies中的classpath往衷。
Gradle Wrapper 是為了簡化Gradle本身的安裝钞翔、部署。不同版本的項(xiàng)目可能需要不同版本的Gradle席舍,手工部署的話比較麻煩布轿,而且可能產(chǎn)生沖突,所以需要Gradle Wrapper幫你搞定這些事情来颤。Gradle Wrapper是Gradle項(xiàng)目的一部分汰扭。
注意: Gradle 和 Plugin gradle是有對(duì)應(yīng)關(guān)系的:
Plugin version Required Gradle version
1.0.0 - 1.1.3 2.2.1 - 2.3
1.2.0 - 1.3.1 2.2.1 - 2.9
1.5.0 2.2.1 - 2.13
2.0.0 - 2.1.2 2.10 - 2.13
2.1.3 - 2.2.3 2.14.1+
2.3.0+ 3.3+
3.0.0+ 4.1+
3.1.0+ 4.4+
有什么不合理或者不對(duì)的地方,歡迎下方留言福铅!
本文參考:
認(rèn)清Android Studio下的Gradle是什么
徹底搞懂Gradle东且、Gradle Wrapper與Android Plugin for Gradle的區(qū)別和聯(lián)系