compileSdkVersion、minSdkVersion、targetSdkVersion詳解

compileSdkVersion

1、compileSdkVersion僅僅是告訴Gradle使用哪個版本的SDK編譯應用,不會被包含到apk中,完全不影響應用的運行結果;
2、既然完全無影響,那爲什麼還要關注compileSdkVersion版本呢?
——①應用想兼容新版本、使用了新版本API,此時就必須使用新版本及以上版本編譯,否則就會編譯報錯;
——②如果使用了新版本的Support Library,此時也必須使用新版本及以上版本編譯;
——③推薦使用最新版本編譯,用新的編譯檢查,可以看到很多新版本相關的警告,提前預研新版本開發;


minSdkVersion

1、minSdkVersion表明此應用兼容的最低版本,在低於該版本的手機上安裝時會報錯,無法安裝;
2、如果最低版本設置爲19,在代碼中使用了API 23中的API,就會有警告。使用運行時檢查系統版本的方式可解決;
3、如果你使用的某個Support Library的最低版本爲7,那minSdkVersion就必須大於等於7了,否則該Support Library在低於7的手機中就要報錯了;


targetSdkVersion

1、如果targetSdkVersion爲19(對應爲Android4.4),應用運行時,最高只能使用API 19的新特性。即使代碼中使用了API 23的新特性,實際運行時,也不會使用該新特性;
2、同樣的API,比如AlarmManger的set()和get()方法,在API 19和之前的效果是不一樣的,如果targetSdkVersion爲18,無論運行手機是什麼版本,都是舊效果;如果targetSdkVersion爲19,那麼在4.4以上的手機上運行時,就是新效果了。


總結

綜上所訴,理想狀態下,minSdkVersion應該是最低兼容的版本,儘可能覆蓋更多手機。targetSdkVersion和compileSdkVersion應該是最新版本,讓新版本手機用戶獲得更好的體驗。

發佈了35 篇原創文章 · 獲贊 52 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章