android:targetSdkVersion/minSdkVersion/maxSdkVersion讲解

Android SDK版本详解:minSdkVersion, maxSdkVersion, targetSdkVersion
本文详细解析了Android应用程序中重要的三个版本属性:minSdkVersion指定应用支持的最低Android版本,maxSdkVersion设定应用能运行的最高Android版本,而targetSdkVersion则表示应用针对的Android版本,影响系统如何处理应用的行为。理解这三个属性对于确保应用兼容性和优化至关重要。

android:minSdkVersion,android:maxSdkVersion:

         设置最小、最大SDK level。在安装程序的时候,如果目标设备的API版本小于minSdkVersion, 或者大于maxSdkVersion,程序将无法安装。一般来说没有必要设置maxSdkVersion。
        升级minSdkVersion需要谨慎,需要调研市场上大部分机器系统版本,不然可能导致无法安装





android:targetSdkVersion:

       如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。targetSdkVersion指你的目标版本.
       如果系统SDK版本大于targetSdkVersion,应该会使用targetSdkVersion运行。
       如果系统SDK版本小于targetSdkVersion  系统会使用低版本SDK的api运行该程序。这时需要应用在升级targetSdkVersion时,要做好低版本兼容。如23 level增加了动态权限等新特性,要在程序中使用该功能,需要升级targetSdkVersion为23,同时在程序中做上下兼容性判断——即如果当前系统SDK大于等于23,使用动态权限;如果小于23则不使用动态权限。以确保兼容性。 如果单纯的升级targetSdkVersion,而针对新特性不做兼容性判断,会有问题。
    
       如果不设置了此属性,系统默认使用minSDKVersion运行程序(未验证,需要验证下)。



project.properties中的target,build.gradle中的compileSdkVersion是指在编译的时候使用哪个版本的API进行编译。


<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" compileSdkVersion="36" compileSdkVersionCodename="16" package="com.AAA.Fish" platformBuildVersionCode="36" platformBuildVersionName="16"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:xlargeScreens="true"/> <application android:banner="@drawable/app_banner" android:debuggable="true" android:icon="@drawable/app_icon" android:isGame="true" android:label="@string/app_name" android:theme="@style/UnityThemeSelector"> <activity android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.unity3d.player.UnityPlayerActivity" android:screenOrientation="fullSensor"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true"/> <meta-data android:name="URL_VALUE" android:value="http://192.168.2.169"/> <meta-data android:name="CHANNEL" android:value="AgentID-0"/> <meta-data android:name="FW_VALUE" android:value="FW-30855784"/> <meta-data android:name="AppID" android:value="wx401c37330dd3e92e"/> </activity> </application> <uses-feature android:glEsVersion="0x20000"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:maxSdkVersion="18" android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false"/> <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false"/> </manifest> 帮我修复
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值