minSdkVersion、targetSdkVersion、targetApiLe

2023-11-05 00:18

本文主要是介绍minSdkVersion、targetSdkVersion、targetApiLe,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在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。

这篇关于minSdkVersion、targetSdkVersion、targetApiLe的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346145

相关文章

有关minSdkVersion和targetSdkVersion

只要手机当前版本满足minSdk都可以进行安装,假设4.4手机安装5.0targetSdk的apk,依然可以进行安装只是没有一些5.0效果,如果不做兼容性判断处理会导致报错,v4包就有部分向下兼容的控件。比如4.4和以上的侵入式状态栏写法不一样,就需要判断版本。 1举一个例子:假如你想给你的app加入大量的手势操作(sdk 7才引入的),然而这些手势操作可以被Button啊或menu等代替,

minSdkVersion、compileSdkVersion、targetSdkVersion

文章目录 minSdkVersioncompileSdkVersiontargetSdkVersion 我们在创建App的时候经常会设置这几个参数 android {compileSdkVersion 29buildToolsVersion "29.0.2"defaultConfig {applicationId "com.szy.yishopcustomer"minSdkVer

Android:compileSdkVersion、buildToolsVersion、minSdkVersion与targetSdkVersion

亲测可用,若有疑问请私信 Android开发常用的几种 Version compileSdkVersionbuildToolsVersionminSdkVersiontargetSdkVersion 下面一一详细介绍这些 Version 所代表的意义 compileSdkVersion 顾名思义,就是用来编译源代码所使用的 API 版本。也就是说在写代码的时候,所引入的 android.

Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 7

所有关于这个问题的解决中,依然是android论坛是比较完美的  http://code.google.com/p/android/issues/detail?id=39752 文中提及几种方案 1.   修改 add-application.mk, 注释掉报错的脚本,很黄很暴力 2.   修改 add-application.mk,强制设置    APP_PLATFORM := andr

关于APP_PLATFORM android:minSdkVersion android:targetSdkVersion

https://stackoverflow.com/questions/21888052/what-is-the-relation-between-app-platform-androidminsdkversion-and-androidtar/41079462#41079462 简而言之,APP_PLATFORM 跟android:minSdkVersion 一致就好,google在ndk层不

Android TargetSdkVersion 30 安装失败 resources.arsc 需要对齐且不压缩。

公司项目,之前targetSDKVersion一直是29,近期小米平台上架强制要求升到30,但是这个版本在android12上安装失败,我用adb命令安装,报错如下图 adb: failed to install c: Program Files (x86)(0A_knight\MorkSpace \HomeStead_Codinglappapp_def\release\app-ap_def

targetSdkVersion=29权限问题

targetSdkVersion=28,29时产生的权限问题 现象处理方案 现象 升级as版本后,没注意build文件里面targetSdkVersion的变化(29),当时在测试机测试一切正常,但正式上线后发现在部分机型(华为荣耀20、华为mate30pro)上,会出现读写sd卡授权弹窗正常且授权后,读写sd卡时依旧会 Permission denied的问题。 处理方案

targetSdkVersion > 30 如何将下载的网络视频 保存到手机相册里更新

在 targetSdkVersion 31 中,将下载的网络视频保存到手机相册中涉及几个关键步骤。由于 Android 12(API 级别 31)引入了更多的隐私和安全限制,特别是作用域存储(Scoped Storage),因此你需要遵循这些限制来保存文件。 以下是将下载的网络视频保存到手机相册的步骤: 请求必要的权限: 对于网络下载,你可能需要 INTERNET 权限。对于保存到外部存储,你

Android Studio | 修改CompileSDKVersion | 修改targetSdkVersion

方法一 路径:File/Project Structure 修改为目标版本即可 方法二 在build.gradle中修改

关于 targetSdkVersion=23 底层动态库报错: has text relocations

从 API 23 开始,共享对象将不得包含文本重定位。也就是说,代码必须按原样加载,不得对其进行修改。 问题就是:当android studio的targetSdkVersion = 23时,之前能用的动态库在代用的时候会报错,错误信息包含has text relocations .... 官方给出的解决方案:wiki.gentoo.org/wiki/Hardened/Textrels_Gui