Android中minSdkVersion、targetSdkVersion、maxSdkVersion以及project.properties中的target

本文探讨了Android开发中minSdkVersion、maxSdkVersion、targetSdkVersion的含义及作用,重点分析了如何通过调整这些参数来适应不同版本的Android系统,以确保应用在各种设备上的兼容性和高效运行。并通过实例展示了targetSdkVersion如何影响应用的特性和表现,为开发者提供了实用的指导。

首先来说minSdkVersion与maxSdkVersion。

安装程序的时候,如果目标设备的API版本小于minSdkVersion,或者大于maxSdkVersion,程序将无法安装。一般没有必要设置maxSdkVersion。

接下来说targetSdkVersion,这个还是比较纠结的,和程序的兼容性有关。网上的解释是设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。

我的理解是,先举个例子来说(以menu为例):

menu这个功能在api level10及以下版本是有的,但是在10以后的版本就使用了action bar代替。我在4.2的nexus上做实验,先把targetSdkVersion设置成为15,然后运行出来是这个样子:


然后我把targetSdkVersion设置成为10,运行出来是这个样子:


也就是说targetSdkVersion代表了程序在某一版本所具有的特性

总结一下,现在开发的时候一般支持2.3和4.0及以上系统就可以了,而4.0相比2.3多了很多新特性也改变了2.3原有的特性。

如果targetSdkVersion是10的话:

装在4.0及以上的机器上就会显示图2的效果。

如果targetSdkVersion是15、16等:

装在2.3的机器上会显示targetSdkVersion设置成10的时候一样的效果。

接下来说一下project.properties中的target,这个东西指定编译的时候使用的api版本,另外改了这个的话你的工程中的android.jar也会跟着改变。

总结:

minSdkVersion、maxSdkVersion 安装的时候起作用

targetSdkVersion 运行的时候起作用

project.properties中的target 编译的时候起作用

One or more issues found when checking AAR metadata values: The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.appcompat:appcompat:1.4.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\19075c4677e37e538c54d7f745fc8af4\transformed\appcompat-1.4.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-exoplayer-hls:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\f62196c9af225d41f9966c25c4603141\transformed\jetified-media3-exoplayer-hls-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-exoplayer:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\19dc5edf9a1240bf32f666eebe535336\transformed\jetified-media3-exoplayer-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-ui:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\d002b58815b6ef1b417c5e236d313841\transformed\jetified-media3-ui-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-extractor:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\57eb17e4bfb69f11ef78b52d43920df2\transformed\jetified-media3-extractor-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-container:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\e48c1ce66e8ffa8ac4be1b2b7d5d0d52\transformed\jetified-media3-container-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-datasource:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\bbb6db7f4433c3091619d11916cc3a2d\transformed\jetified-media3-datasource-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-decoder:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\d154352d1f07f2aa393fef344ea2aa36\transformed\jetified-media3-decoder-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-database:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\a7ba5f04965d35e77e08559d17f6e8b5\transformed\jetified-media3-database-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-common:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\a8e744013e585276c999f5bbc5efd0f9\transformed\jetified-media3-common-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media3:media3-datasource-okhttp:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\ced201f888a692e78ea762fe33a81ee3\transformed\jetified-media3-datasource-okhttp-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.appcompat:appcompat-resources:1.4.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\7f55b507be3e8b5a35b1621b2feee964\transformed\jetified-appcompat-resources-1.4.1\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.emoji2:emoji2-views-helper:1.0.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\6cbed90352b213553df3539e2e7f22af\transformed\jetified-emoji2-views-helper-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.emoji2:emoji2:1.0.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\09b79be83fba3907471fe1de63f439d3\transformed\jetified-emoji2-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (34) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.media:media:1.7.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\f650bf8da01c19e925388c01fbb21a70\transformed\media-1.7.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (33) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.recyclerview:recyclerview:1.3.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\85e794902d56734e4eebec75dc021b48\transformed\recyclerview-1.3.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (32) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.customview:customview-poolingcontainer:1.0.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\11b2276a4e468f09e8370f31e1d7d3ae\transformed\jetified-customview-poolingcontainer-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (33) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.core:core-ktx:1.9.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\24dbdd1120e9c289188c7e6e855e6468\transformed\jetified-core-ktx-1.9.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (33) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.core:core:1.9.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\acd99a442914ab71e729da423f1b38d1\transformed\core-1.9.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.lifecycle:lifecycle-process:2.4.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\0e4a425e61d135d109d64d5f17d999df\transformed\jetified-lifecycle-process-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.lifecycle:lifecycle-runtime:2.4.0. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\bca1bb61c15ab5807e64593ca04debef\transformed\lifecycle-runtime-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties. The minCompileSdk (33) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-28). Dependency: androidx.annotation:annotation-experimental:1.3.1. AAR metadata file: C:\Users\WTH\.gradle\caches\transforms-3\5841b81257887d24955e27236f2e725f\transformed\jetified-annotation-experimental-1.3.1\META-INF\com\android\build\gradle\aar-metadata.properties. 解决上述rebuild project后的报错
06-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值