在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。
[转]
相关推荐
在Gradle配置文件(build.gradle)中,我们经常会遇到三个关键的版本设置:`compileSdkVersion`、`minSdkVersion`和`targetSdkVersion`。它们对应用的兼容性和功能特性有着直接的影响。 首先,`compileSdkVersion`...
compileSdkVersion 22 buildToolsVersion "26.0.0" minSdkVersion 17 targetSdkVersion 22
安卓底部导航栏的实现方式探索: 1.安卓提供默认的导航方式 ... targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }
这种情况下,开发者需要理解minSdkVersion、targetSdkVersion以及deviceSdk等概念,并采取合适的解决策略来确保应用能够正常运行。 ### 一、问题背景 #### 1.1 Android SDK版本说明 - **minSdkVersion**: 表示应用...
app解析 java 解析apk ,获取应用的应用名,包名,版本号 minSdkVersion targetSdkVersion apkParser = new ApkParser(new File(apkPath)); String xml = apkParser.getManifestXml(); System.out.println...
1、minSdkVersion,targetSdkVersion,maxSdkVersion,compileSdkVersion四个数值之间有什么区别? • minSdkVersion,maxSdkVersion是项目支持的最低sdk版本和最高sdk版本。在安装apk前,系统会对这两个数值进行判断,...
`minSdkVersion`和`targetSdkVersion`在每个flavor中被重写,以适应不同的API需求。 接下来,我们可以在对应的flavor目录下放置特定API级别的源代码和资源。例如,对于API 21特有的代码,可以放在`src/api21/java/`...
PremiumWatches An Android inventory app for managing an inventory of premium ...targetSdkVersion 25 Installing Open Android Studio If the repository is cloned to your local machine, select Open an
targetSdkVersion 23 versionCode 1 versionName "1.0" } project的build.gradle: dependencies { classpath 'com.android.tools.build:gradle:1.5.0' // NOTE: Do not place your application dependencies...
调试环境如下: Android Studio 3.5.1 for Windows 64-bit minSdkVersion 22 targetSdkVersion 29 gradle-5.4.1
调试环境如下: Android Studio 3.5.1 for Windows 64-bit minSdkVersion 22 targetSdkVersion 29 gradle-5.4.1
调试环境如下: Android Studio 3.5.1 for Windows 64-bit minSdkVersion 22 targetSdkVersion 29 gradle-5.4.1
targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } ...
minSdkVersion 设置为 14 的简单示例应用程序,即使用带有工具栏和材料设计风格的导航抽屉。 请参阅附带的屏幕截图,来自 Nexus 5 和 Android 5.0 和 Nexus 4 和 Android 4.4.4。 ![截图]( nexus 5 5.0.png) !...
适配8 9的vitamio 修改vitamio中的build与app中的compileSdkVersion、 buildToolsVersion、minSdkVersion、targetSdkVersion一样,就可使用
Java获取apk安装包信息工具jar包,获取versionCode、versionName、package、minSdkVersion、targetSdkVersion、uses-permission,等。
SCU-Grad-Assistant-Android-App 移动应用程序通过提供有用的信息来帮助SCU的新研究生根据您的Android SDK版本,在AndroidManifest.xml中设置minSDKVersion和targetSDKVersion以使代码兼容以在设备上运行:uses-sdk...
程序版本sdk:defaultConfig { applicationId "com.instwall.launch" minSdkVersion 23 targetSdkVersion 26 versionCode 1013 versionName "1.0" testInstrumentationRunner "androidx.test.runner....
2017.04.01的版本 https://github.com/yixia/VitamioBundleStudio vitamio中的build与app中的compileSdkVersion、 buildToolsVersion、minSdkVersion、targetSdkVersion一样
targetSdkVersion 29 gradle-5.4.1 共24个demo项目 文件太大 分开上传 如下: 1.雷达扫描图 2.美女拼图游戏 3.仿饿了么点餐 4.仿京东App 5.在线音乐播放器 6.仿哔哩哔哩B站 7.地图拖拽区域检测效果 8.手写签名 9...