`
usenrong
  • 浏览: 515468 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

AndroidMenifest.xml中minSdkVersion、targetSdkVersion、targetApiLevel的区别

阅读更多

       在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 楼 tianshanaoxue 2013-11-20  
谢谢,如果您说的这些是正确的话,对我非常有用

相关推荐

    android简易个人财务管理系统

    android简易个人财务管理系统 版本V0.1 功能暂时比较简单,后续版本敬请期待

    蓝牙 简单应用

    第一台,修改androidmenifest.xml文件启动ServerActivity作为程序入口。依次点击界面上的两个按钮。第二修改androidmenifest.xml文件启动clientActivity作为程序入口。点击前两个按钮后,输入文字再点击开启客户端...

    andriod开发入门第一课

    3,注册厨师(在AndroidMenifest.xml中注册Activity) 4,构思食材(在res/layout中,创建一个视图) 5, 找老王要菜,老王给了一个单子(在gen/R.java中生成的地址) 6,将食材拿到厨房中(在Activity中,创建...

    Android通过App启动另一个APP

    被启动指定的Activity 在AndroidMenifest.xml中要暴露入口,以便app 能够启动,不暴露入口,会报权限错误,不能正常启动 被启动的Activity暴露入口方式,android:exported="true" ,默认值是false ...

    Android动态获取权限

    首先在AndroidMenifest.xml中声明相机权限 这时候可以在手机的应用详情中看到所申请的权限,如下图所示 在Android6.0之前这个样子就够了,但是6.0之后还需要动态申请权限。 动态申请权限 if (ContextCompat....

    Flutter插件,用于管理NFC功能。 在Android和iOS上均受支持。-Flutter开发

    设置Android设置将android.permission.NFC添加到您的AndroidMenifest.xml中。 iOS安装程序将近场通信标签阅读器会话格式添加到您的权利中。 将NFCReaderUsageDescription添加到您的Info.plist。 根据需要将...

    flutter-nfc-manager:Flutter插件,用于访问Android和iOS上的NFC功能

    设置Android设置将添加到您的AndroidMenifest.xml 。 iOS设置向您的权利中添加“ 。 将添加到您的Info.plist 。 根据需要将和添加到您的Info.plist中。用法处理会议// Check availabilitybool isAvailable = await ...

    Place-Search-Android-App:[Web]使用Google搜索,Yelp API在Android Studio上针对Android应用旅行n娱乐搜索

    Place-Search-App(Android.ver) 使用Google Places API的Trevel-n-Entertainment Search Android...AndroidMenifest.xml build.gradle “ places_search”文件夹:Java代码 (1)Adapeters CustomRecyclerAdap

    Android基础程序设计第七章-内容提供者.pptx

    在Android 6.0之前,权限机制非常简单,只需要在清单文件AndroidMenifest.xml文件中将自己需要的权限进行声明就可以。Android 6.0 之后加入了运行时权限这一概念对于危险权限,应用必须在使用的时候进行申请,用户...

    Android开发入门WiFi代码.pdf

    在开始 WiFi 开发之前,需要在 AndroidMenifest.xml 文件中取得相应的权限,包括修改网络状态的权限、修改 WiFi 状态的权限、访问网络权限和访问 WiFi 权限等。 在 Android 中,可以通过 WifiManger 对象来操作 ...

    ezGCM:方便为Android设置GCM

    生态管理系统 方便为 android 设置 GCM。 设置 按照官方指南获取api密钥: 将此行添加到您的 build....AndroidMenifest.xml 您将需要这些许可 &lt; uses-permission android : name = " android.permission.GET_

    android中文教程

    - **androidmenifest.xml**:这是项目的核心配置文件,包含了应用程序的元数据,如应用名称、版本号、所需的权限、注册的所有组件(Activities、Services、Broadcast Receivers等)等信息。 - **build.xml**:这是一...

    Activity&Intent的使用-移动平台开发技术-gddrxy

    Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅指明当前组件想要执行的动作,还可以在不同组件之间传递数据。启动活动就可以用Intent。Intent可以分成两种:显示Intent和隐式Intent。当知道要跳转...

    两种Android打电话实现方法

    在android开发中,用户能够拨打电话是最基本的需求。俗话说“条条大路通罗马”,实现拨打电话的方式有多种,今天,就提供最常用两种。  首先,拨打电话,对于用户来说,是一个耗费的操作,因此,需要一定权限,就是...

Global site tag (gtag.js) - Google Analytics