每年google都会发布发布一版新的android SDK,不过放心每一版都会向前兼容,那么就需要了解下compileSdkVersion、minSdkVersion、targetSdkVersion这三个设置的含义。
compileSdkVersion:编译时候用的android SDK版本号,只在编译的时候起作用,在编写程序的时候决定用哪个API,google建议用最新的,这样的话可以用新的API编写程序(避免用废弃的API),但是不会打包到apk内部,不会对程序运行起到任何作用。一般情况我也会选择最新的API 版本,然后等到程序变现完成后逐步降低该值,直到最低版本,通过编译看看有没有用到向下不兼容的API。
minSdkVersion:顾名思义,app支持的最小android 系统版本号,该值也会打包到APK中,低于该版本的安卓系统装不上该APP。选择该值可以看自己用户群体,和现有系统的占比,还需参考对应API,比如说我们公司产品需要用的低功耗设备,所以系统至少是4.3(API18)(的但是因为4.3对低功耗支持不是很好,而且市场占有率也很低,所以我们将最低版本升到了4.4(API19)。
targetSdkVersion:运行时支持的特性的API版本,比如你的程序的targetSdkVersion为22,在android 6.0(23)系统运行,不需要考虑运行时权限,还是按照22版本的方式,该值也会被打包到APK中。一般性选择最新的,但是如果不想处理最新的变化可以继续用之前的值。该值不写默认为minSdkVersion的值。
三者选值时需要注意以下几个方面:
1. minSdkVersion<=targetSdkVersion<=compileSdkVersion;
2. compileSdkVersion版本需要与 support 支持包版本一致;
3.如果用到了高版本的API,有两种方案:a 可以用support包 b 在运行时进行版本判断进行差异化处理
参考 官方文档:https://developer.android.com/training/basics/supporting-devices/platforms.html
https://developer.android.com/topic/libraries/support-library/rev-archive.html