例如,设置版本为 API 16 级( Jelly Bean ),便赋予了系统在运行 Jelly Bean 及以上版本的设备
上安装 GeoQuiz 应用的权限。而在运行 Froyo 版本的设备上,系统会拒绝安装 GeoQuiz 应用。
再看表 6-1 ,我们就会明白为什么将 Jelly Bean 作为 SDK 最低版本比较合适,因为有 88% 的在
用设备支持安装此应用。
SDK目标版本:目标版本的设定值告知Android:应用是设计给哪个API级别去运行的。大多数情况下,目标
版本即最新发布的Android版本。
什么时候需要降低SDK目标版本呢?新发布的SDK版本会改变应用在设备上的显示方式,甚至
连后台操作系统运行也会受到影响。如果应用已开发完成,需确认它在新版本上能否如预期那样正
常运行。查看网址http://developer.android.com/reference/android/os/Build.VERSION_CODES.html上的
文档,检查可能出现问题的地方。根据分析结果,要么修改应用去适应新版本系统,要么降低SDK
目标版本。降低SDK目标版本可以保证的是,即便在高于目标版本的设备上,应用仍然可以正常运
行,且运行行为仍和目标版本保持一致。这是因为新发布版本中的变化已被忽略。
SDK编译版本:代码清单6-1中,最后一项标为compileSdkVersion的是SDK编译版本设置。该设置不会出
现在manifest配置文件里。 SDK最低版本和目标版本会通知给操作系统,而SDK编译版本是我们
和编译器之间的私有信息。
Android的特色功能是通过SDK中的类和方法展现的。在编译代码时, SDK编译版本或编译
目标指定具体要使用的系统版本。 Android Studio在寻找类包导入语句中的类和方法时,编译目
标确定具体的基准系统版本。
编译目标的最佳选择为最新的API级别(当前级别为21,代号为Lollipop)。当然,需要的话,
也可以改变应用的编译目标。例如, Android新版本发布时,可能就需要更新编译目标,从而使
用新版本引入的方法和类。
可以修改build.gradle文件中的最低SDK版本、目标SDK版本以及编译SDK版本。修改完毕,
项目和Gradle更改重新同步后才能生效。选择Tools → Android → Sync Project with Gradle Files菜
单项,项目随即会重新完成编译。
来自 《Android编程权威指南》...