1. 程式人生 > >minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析

minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析

round and targe -s this ren sdk req 之前

1. minSdkVersion

minSdkVersion限制安裝application所需要的系統最低版本,低於該版本的系統都不可以安裝該application。同時不能使用該level版本SDK所不具備的API,例如在minSdkVersion為8的application中調用【this.getActionBar()】就會出現Call requires API level 11 (current min is 8): android.app.Activity#getActionBar的錯誤。這是因為ActionBar是在Android 11才出現的新功能(new API)。

2. targetSdkVersion

targetSdkVersion是Android提供向前兼容的主要依據,表明該application已經兼容從minSdkVersion至tartgetSdkVersion之間所有api的變化。在targetSdkVersion更新之前系統不會應用最新的行為變化。

3. compileSdkVersion

compileSdkVersion告訴gradle使用哪個版本Android SDK編譯你的應用,使用任何新添加的API就要使用對應level的Android SDK.

4. 他們三者的關系

minSdkVersion <= targetSdkVersion <= compileSdkVersion

5. 理想情況下應該是

minSdkVersion (lowest possible) <=targetSdkVersion == compileSdkVersion (latest SDK)

6. Android主Module與依賴Module之間targetSDKVersion的關系

Android項目以主Module的targetSDKVersion為準。也即是說,依賴Module targetSDKVersion的設置是無效的。

minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析