問題引入: 有一個下載功能,在Android 5.x設備上運行正常,Android 6.x上運行異常,現象是下載進度卡在0%。 問題排查發現,是sdk的target設置為23導致,修改為21則恢復正常。 這就引出了今天討論的問題:Android中build target,minSdkVersion, ...
問題引入:
有一個下載功能,在Android 5.x設備上運行正常,Android 6.x上運行異常,現象是下載進度卡在0%。 問題排查發現,是sdk的target設置為23導致,修改為21則恢復正常。 這就引出了今天討論的問題:Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion有什麼區別? project.properties中的target——即build target,APK編譯版本,會引入到APK項目的build path中。 targetSdkVersion——運行時起作用。系統提供應用向前相容的主要手段,保證同一個APK行為,高版本上仍和舊系統相容。例如:問題中的API23,SD卡寫許可權屬於危險許可權,需要運行時動態申請;targetSdkVersion設置為23以下,則仍不需要動態申請。 官方說明如下:targetSdkVersion is the main way Android provides forward compatibility。 minSdkVersion——安裝時起作用,APK最低支持版本 maxSdkVersion——安裝時起作用,APK最高支持版本