在AndroidManifest.xml中uses-sdk内属性意思
作者:whsnow 发布时间:2021-10-08 17:16:09
在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功能与权限描述大全:
http://tools.jb51.net/table/AndroidManifest
猜你喜欢
- Flutter页面在软键盘弹出的时候,可以设置 Scaffold 的 resizeToAvoidBottomInset 属性来设置
- C#史上最简单读写xml文件方式,创建控制台应用程序赋值代码,就可以运行,需要改动,请自行调整using System;using Syst
- 要说,这也是一个很简单的功能,没必要开一篇博客这么大动干戈。 对于一张知道全路径的照片,如果其路径包含后缀名的话,要取得后缀名,只需要一行代
- 前置知识在微服务项目中,如果我们想实现服务间调用,一般会选择Feign。之前介绍过一款HTTP客户端工具Retrofit,配合SpringB
- 主题 ActiveMQ Spring Boot 小程序开发1.引入依赖<parent><groupId>org.sp
- ForkJoinTask就是ForkJoinPool里面的每一个任务。他主要有两个子类:RecursiveAction和RecursiveT
- 一、介绍Mesh类:通过脚本创建或是获取网格的类,网格包含多个顶点和三角形数组。顶点信息包含坐标和所在面的法线。unity中3D的世界的所有
- package com.anno;import java.lang.annotation.Retention; import j
- 引入对于基本类型的常量或变量进行运算时,我们可以使用 +、-、*、/ 等运算符,但是我们不可以使用运算符来进行对象之间的运算。eg:对象之间
- 线程状态图线程共包括以下5种状态。1. 新建状态(New)  
- 前言最近面试时,面试官问了一个列表倒计时效果如何实现,然后脑袋突然懵的了O(∩_∩)O,现在记录一下。运行效果图实现思路实现方法主要有两个:
- int n;int &m = n;在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名
- 1.新建控制台应用程序2.新建类 EncryptHelper.cspublic static class EncryptHelper{ &n
- 一、组件型注解:1、@Component 在类定义之前添加@Component注解,他会被spring容器识别,并转为bean。2、@Rep
- 一、实现效果图关于贝塞尔曲线 二、实现代码1.自定义viewpackage com.czhappy.showintroduce.view;i
- Java 执行CMD命令或执行BAT批处理背景日常开发中总能遇到一些奇怪的需求,例如使用java执行cmd命令或者bat批处理文件,今天就简
- 首先是“饿了么”导航Tab栏悬浮的效果图。大家可以看到上图中的“分类”、“排序”、“筛选”会悬浮在app的顶部,状态随着ScrollView
- Android 中倒计时验证两种常用方式实例详解短信验证码功能,这里总结了两种常用的方式,可以直接拿来使用。看图:说明:这里的及时从10开始
- Android RecyclerView小白今天第一次接触RecyclerView,前辈大神告诉我这是一个很神奇的控件,一看就是
- 了解JVM内存结构的目的在Java的开发过程中,因为有JVM自动内存管理机制,不再需要像在C、C++开发那样手动释放对象的内存空间,不容易出