Android minSDK 和 targetSDK 版本
Android 1.0 发布于 2008 年,短短八年的时间里,就出现了13个主要的新版本。按照惯例,每个版本都以甜点命名,并且按字母顺序排序。
Android Developer 网站显示了运行给定 Android 版本的有效设备的相对百分比,并且用直观的饼图呈现给了我们,饼图信息一目了然。
但是对我们来说,最好将其看做柱状图。
如果眯眼看,几乎能看到一个接近钟形的曲线,最旧的版本位于左侧,随着设备升级或被替换掉,这些版本的热门程度下降了。设备最多的版本位于中间,代表的是大概 2 年发布年龄的设备。较新的版本随着新手机或更新的发布,不断变得热门起来,从而位于右侧。
设置 minSDK
minSDK 是你的应用可以在上面运行的最低级别的 SDK。你可以选择支持哪些级别的设备。设置 minSDK 就像添加过滤器——Google Play 不会在所搭载的 Android 版本低于你的最低 SDK 版本的设备上显示你的应用。
所以为何不将 minSDK 设置为 1,并支持所有的设备?通常,你希望面向尽可能多的用户,但是支持更低版本的设备存在一定的成本,例如为被弃用或更新的 API 创建不同的执行路径,或为具有不同功能的设备提供不同的用户体验。你需要在扩大用户群与支持这些设备带来的成本代价之间找到平衡点。
同时注意,每个版本都推出了新的 API 和硬件支持,所以没必要使应用面向不支持你的最低功能集的设备。以下是与不同版本相关联的硬件支持和功能示例。
- 主屏幕小部件 (Cupcake)
- 多手指跟踪 (Froyo)
- 平板电脑 (Honeycomb)
- Android Beam (Jellybean)
- Android TV、Auto、Wear (Lollipop)
- Pro Audio (Marshmallow)
设置 targetSDK
相比较而言,符合 targetSDK 条件的设备不多——它用于声明你是在哪个版本上测试应用。 面向特定 API 或 Android 版本的应用将继续与未来版本兼容,Android 使用 targetSDK 值的目的是,当未来版本对预期行为作出重大更改时,如果用户升级了手机,你的应用不会崩溃。
Android Studio 默认地面向的是最新版本。如果你开发的是新应用,则最好面向最新的 Android 版本,一旦推出应用,则记得在新的 Android 版本推出时更新 targetSDK 并尽快测试应用,这样应用便可以利用所有的 Android 优化和改进功能。