`

MinSdkVersion, targetSdkVersion, target API level的区别(转)

 
阅读更多
转自:http://blog.csdn.net/champgauss/article/details/7291189

MinSdkVersion, targetSdkVersion, target API level的区别

在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 Studio运行真机调试出现min Sdk(API 26)device Sdk(API 23)解决方法

    这种情况下,开发者需要理解minSdkVersion、targetSdkVersion以及deviceSdk等概念,并采取合适的解决策略来确保应用能够正常运行。 ### 一、问题背景 #### 1.1 Android SDK版本说明 - **minSdkVersion**: 表示应用...

    (API 22) SDK Platform 下载

    开发者应确保应用向下兼容更低版本的Android,通常通过设置`minSdkVersion`、`targetSdkVersion`和`maxSdkVersion`属性。 - **编译与构建**:使用API 22时,需要在构建配置中指定`targetSdkVersion`为22,以利用新...

    在AndroidManifest.xml中uses-sdk内属性意思

    以下是`minSdkVersion`、`targetSdkVersion`、`maxSdkVersion`以及`target API level`四个数值的详细解释: 1. **minSdkVersion**:这是应用能够支持的最低Android API级别。当用户尝试在设备上安装应用时,系统会...

    sdk中platform的android-22,android-20等工具包

    为了确保跨版本兼容性,开发者通常需要在`build.gradle`文件中设置`minSdkVersion`、`targetSdkVersion`和`compileSdkVersion`。例如: ```groovy android { compileSdkVersion 22 defaultConfig { minSdkVersion...

    程序员面试刷题的书哪个好-NewXmPluginSDK-master:米家插件页

    米家扩展程序也是基于Android环境开发的,开发扩展程序的时候请确保Android配置信息(比如compileSdkVersion、minSdkVersion、targetSdkVersion)与米家最新版本保持一致。 米家APP最新版本:5.0.28 米家APP最新API ...

    Android代码-非常 Material Design 风格的 Dropdown 效果。

    targetSdkVersion 25 } } Add jitpack repository to your root build.gradle: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } Add dependency to app level build.gradle: ...

    android的sdk下载 android-14

    使用"android-14"意味着你的应用至少要支持API Level 15的设备,但可以通过设置minSdkVersion和targetSdkVersion属性,让你的应用向下兼容更低版本的Android。 9. **权限和特性**:Android 4.0.3引入了一些新的系统...

    android中文api

    开发者通常需要通过设置minSdkVersion、targetSdkVersion和maxSdkVersion来控制应用的兼容性范围。 五、最佳实践 1. 使用最新的稳定API版本进行开发,以充分利用新功能并遵循最新的设计规范。 2. 对于低版本设备的...

    android中导入低版本project可能会遇到的编译问题

    - 同时,检查并更新`AndroidManifest.xml`文件中的`&lt;uses-sdk android:minSdkVersion="5"/&gt;`,将其替换为`&lt;uses-sdk android:minSdkVersion="7"/&gt;`,以反映实际使用的最低支持SDK版本。 ### 2. Dalvik格式转换失败 ...

    安卓开发-Android 版本检测与管理.zip

    - `compileSdkVersion`(在Gradle 7.0+中变为`android.compileSdk`):构建时使用的Android版本,应与`targetSdkVersion`匹配或更高。 5. **更新策略**: - **强制更新**:用户必须更新到最新版本才能继续使用...

    安卓sdk24安卓sdk24

    在SDK 24中,开发者需要在build.gradle文件中指定targetSdkVersion和minSdkVersion,确保应用至少支持到API 24。 **5. Android虚拟设备(AVD)** AVD是Android SDK中的一个关键组件,用于创建和管理模拟器实例。...

    Android 高版本API方法在低版本系统上的兼容性处理

    在尝试编译包含高版本API方法的代码时,如果`minSdkVersion`设置为8,Android Studio会报错,提示需要API level 9。开发者可能会选择使用`@SuppressLint("NewApi")`或`@TargetApi(9)`注解来解决编译错误。然而,这...

    安卓studio的INSTALL_FAILED_OLDER_SDK的解决方法

    The application’s minSdkVersion is newer than the device API level. 意思是我使用的设备的sdk版本低于要求的sdk版本 解决方法: 找到项目所在位置 项目位置\app\build.gradle 注意是app文件夹下的,不是...

    Eclipse关联android-19.zip

    在新建项目的AndroidManifest.xml中指定minSdkVersion和targetSdkVersion属性,确保应用兼容Android 4.4及以上版本。 7. **API 19特性和变化**:了解API 19带来的新功能和变化是必要的,例如:运行时权限、多窗口...

    android-18

    - `minSdkVersion`定义了应用能运行的最低系统版本,`targetSdkVersion`指明了应用优化的目标版本。 5. **开发实践** - 利用Android 4.3的新特性,如BLE,可以开发节能的物联网应用。 - 使用OpenGL ES 3.0提升...

    org.apache.http.legacy.rar

    &lt;uses-sdk android:minSdkVersion="X" android:targetSdkVersion="Y" /&gt; ``` 这里的`X`和`Y`应替换为你项目对应的最小和目标SDK版本。 2. **修改Gradle配置**:如果你的项目使用了Gradle构建,你需要在`build....

    Android Fragment的使用方法(翻译)

    在`Manifest.xml`中,设置`minSdkVersion`为4,`targetSdkVersion`为你的目标API版本。同时,需要在你的Fragment相关的Activity中导入`android.support.v4.app.*`包,并让Activity继承`FragmentActivity`。 2. **...

    eclipse+gradle解决android 65k 方法问题

    targetSdkVersion 19 multiDexEnabled = true } signingConfigs { myrelease { keyAlias 'androiddebugkey' keyPassword 'android' storeFile file('C:\\Users\\Adminis') } } } ``` #### 四、总结 ...

    NDK例子(用gradle-experimental plugin)

    targetSdkVersion.apiLevel = 29 versionCode = 1 versionName = "1.0" } ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' } } android.ndk { moduleName "mylibrary" // 这是你原生库的名字 ...

Global site tag (gtag.js) - Google Analytics