compileSdkVersion
采用哪個版本的Android SDK編譯自己的應(yīng)用液肌,應(yīng)用的使用API級別不得高于編譯用的SDK的版本雀扶。如果新增高級別的API調(diào)用灶似,那么編譯用的SDK版本也要隨之升高睬魂。
Google建議使用最高新版SDK編譯自己的應(yīng)用幻林,避免新棄用的API贞盯,為后續(xù)更新API調(diào)用做準(zhǔn)備音念。
- 修改compileSdkVersion并不會改變運行時的行為;
- 可能出現(xiàn)新的編譯警告躏敢、編譯錯誤
編譯用的SDK版本闷愤,只在編譯階段起作用,不會被包含到APK中件余,不會改變運行時讥脐。
minSdkVersion
應(yīng)用可以運行的最低要求版本;低于minSdkVersion的Android系統(tǒng)無法安裝此應(yīng)用
Google取決于支持額外3%的設(shè)備啼器;
targetSdkVersion
如果設(shè)置為22旬渠,那么23以及23以后的所有新特性、新功能和API新行為統(tǒng)統(tǒng)無視端壳;只認(rèn)識22以及22之前提供的功能和API行為告丢;
比如:Android6.0(targetSdkVersion=23)以后,提供了權(quán)限管理功能更哄,危險權(quán)限不僅要在清單文件中聲明芋齿,也要代碼動態(tài)向用戶申請腥寇。
如果設(shè)置為targetSdkVersion=22成翩,無論是一般權(quán)限還是危險權(quán)限,依舊只需要在清單文件中聲明赦役,不需要動態(tài)申請麻敌。
給開發(fā)者適應(yīng)新行為變化的時間,避免開發(fā)者做代碼修改以及充分測試前掂摔,處理兼容問題术羔;
targetSdkVersion是Android提供向前兼容的主要依據(jù)。
Google建議開發(fā)者優(yōu)先將targetSdkVersion更新到最新版SDK乙漓。
修改了targetSdkVersion级历,一定要充分測試!
總結(jié)
三者關(guān)系
minSdkVersion <= targetSdkVersion <=compileSdkVersion
用較低的minSdkVersion覆蓋大人群叭披。用最新的targetSdkVersion和compileSdkVersion獲得最好的外觀和行為寥殖。不要盲目修改targetSdkVersion。即使修改targetSdkVersion也要充分測試涩蜘!