在AndroidManifest.xml中uses-sdk内属性意思
程序员文章站
2023-11-27 19:36:34
在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。
在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。
补充:本站还提供了一个关于android manifest功能与权限的在线查询表供大家参考查询:
android manifest功能与权限描述大全:
上一篇: 快速解决Canvas.toDataURL 图片跨域的问题
下一篇: iOS实现简单的抽屉效果