在AndroidMenifest.xml中,常常会有下面的语句: <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="10" android:maxSdkVersion="10" />
在default.properties中,会看到下面的语句: target=android-10 如果是使用Eclipse的话,还可能会看到这样的警告:
Attribute minSdkVersion (4) is lower than the project target API level (10)
那么,这里面的minSdkVersion、targetSdkVersion、maxSdkVersion、target API level四个数值到底有什么区别?
minSdkVersion与maxSdkVersion比较容易理解,就是在安装程序的时候,如果目标设备的API版本小于minSdkVersion,
或者大于maxSdkVersion,程序将无法安装。一般来说没有必要设置maxSdkVersion。
targetSdkVersion相对复杂一些,如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,
他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。
也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。
但是,这个设置仅仅是一个声明、一个通知,不会有太实质的作用,
比如说,使用了targetSdkVersion这个SDK版本中的一个特性,但是这个特性在低版本中是不支持的
,那么在低版本的API设备上运行程序时,可能会报错:java.lang.VerifyError。也就是说,此属性不会帮你解决兼容性的测试问题。
你至少需要在minSdkVersion这个版本上将程序完整的跑一遍来确定兼容性是没有问题的。(这个问题确实让人头疼)
在default.properties中的target是指在编译的时候使用哪个版本的API进行编译。 综上,上面的四个值其实是作用于不同的时期:
target API level是在编译的时候起作用,用于指定使用哪个API版本(SDK版本)进行编译。 minSdkVersion和maxSdkVersion是在程序安装的时候起作用,
用于指定哪些版本的设备可以安装此应用。 targetSdkVersion是在程序运行的时候起作用,用于提高指定版本的设备上程序运行体验。
这四个数值在程序编译时也没有严格的检查,比如说,你可以将minSdkVersion设置的比maxSdkVersion还大,他会自动忽略掉错误的maxSdkVersion。

更多相关文章

  1. Android 获取设备信息
  2. Android之从Browser中打开本地的应用程序&微信检测是否有对应app
  3. android 版本更新
  4. Android版本号对应API、版本名称、NDK版本等
  5. Android从1.0到11版本特性
  6. 换掉整个程序的bitton样式,以及button的父样式
  7. Android 获取设备唯一UUID
  8. 在 Android Emulator 中开发 LKM 程序
  9. ubuntu android交叉编译c程序 ndk

随机推荐

  1. 让Android的手机QQ崩溃未响应的指令---亲
  2. android限制edittext不能输入表情
  3. openGL在surfaceview中实例
  4. Android(安卓)Gitlab CI/CD脚本
  5. Android(安卓)AlertDialog和ProgressDial
  6. 20-b Local Service
  7. Android(安卓)圆角&圆形图片
  8. 【Android(安卓)Audio】Audio: summery o
  9. Android(安卓)菜单 使用XML
  10. 手机客户端版csdn搜索