minSdkVersion targetSdkVersion 之間的關係
Android 工程師應該對compileSdkVersion,minSdkVersion比較瞭解,從字面意思上也可以看的出來,但是targetSdkVersion 直接翻譯過來就是 目標sdk版本,但是怎麼用,限制是什麼,不一定所有的Android工程師都能說的清楚。
minSdkVersion:可執行應用的最低版本的 Android 平臺,由該平臺的 API 級別識別符號指定;eg:設定minSdkVersion=19(4.4)那麼在4.4以下的版本是安裝不了的(下載安裝會出現“解析包時出現錯誤”);
targetSdkVersion:指定執行應用的目標API級別(非常重要);在某些情況下,這允許應用使用目標API級別中定義的清單元素和行為,而不是使用那些只針對最低API級別定義的元素和行為;eg:
targetSdkVersion=22, 執行在23(6.0)的手機上,動態許可權檢查是不起作用的;
targetSdkVersion>=22, 執行在23(6.0)的手機上,動態許可權檢查起作用。
targetSdkVersion=25, 執行在23(6.0)的手機上,執行6.0及以下的功能,7.0的功能是不執行的。
綜上所述:
設定的API級別的時候應該符合下邊等式:
minSdkVersion <= targetSdkVersion = compileSdkVersion。
用較低的 minSdkVersion 來覆蓋最大的人群。
參考文件:
官方文件:
https://developer.android.google.cn/studio/publish/versioning
部落格: