androidapilevel
1. 如何更改android target api level
Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi")
例如:AndroidManifest.xml中,我们配置了sdk版本的最低为9,目标sdk为19
[html] view plain
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="19" />
当我们使用了大于sdk版本为9的API时候,编译器就会提示警告。例如:
[java] view plain
import android.os.AsyncTask;
import android.os.Build;
public class Test {
static public<T> void executeAsyncTask(AsyncTask<T, ?, ?> task,T...params){
if (Build.VERSION.SDK_INT >= Build.VERSI
2. 怎样判断所运行的ANDROID系统的SDK版本号
ANDROID系统的版本众多,更新频繁。有时候我们需要在运行时来判断所运行的ANDROID系统版本以确定使用什么API,比如从ANDROID 2.0开始才支持多点触摸。
那么,怎样在程序中来判断ANDROID系统的版本号也即API Level呢?
很简单,只需要使用下面的语句即可。
[java] view plainprint?
int sysVersion = Integer.parseInt(VERSION.SDK);
VERSION.SDK是一个字符串,我们使用Interger.parseInt把它转换成一个整数,这个数即是API Level号,然后就可以使用它来进行判断了。
下表是一个到目前为止的ANDROID API Level的对应表,以方便查询。
平台版本
API Level
Android 3.2 13
Android 3.1 12
Android 3.0 11
Android 2.3.3 10
Android 2.3 9
Android 2.2 8
Android 2.1 7
Android 2.0.1 6
Android 2.0 5
Android 1.6 4
Android 1.5 3
Android 1.1 2
Android 1.0 1
3. android sdk 怎么写注释
在AndroidManifest.xml中会看到<uses-sdk>的身影,完整的uses-sdk是这个样子:
<uses-sdk Android:minSdkVersion="integer"
android:targetSdkVersion="integer"
android:maxSdkVersion="integer"/>
其中integer是Android API level。
uses-sdk是为了程序兼容而存在的,它是如何做兼容的呢?也许从三个子项的名字上就可以猜测出来。
minSdkVersion:若手机或平板的API level低于apk的minSdkVersion,系统不能安装这个应用。
targetSdkVersion:API level在minSdkVersion和targetSdkVersion之间的版本可以直接执行程序(不需要打开任何兼容项)。若手机或平板的API level大于程序的targetSdkVersion,Android运行环境就需要模拟之前版本API的行为,这个称之为兼容。程序开发者如何确定这个值呢?自然是在对应平台上测试,具体的过程是:递增targetSdkVersion,每递增一次测试一次。
maxSdkVersion:若手机或平板的API level 大于maxSdkVersion,程序不能安装或使用。google文档说不推荐这个子项,因为Android 2.0.1后不检查这一项了,只有google play还会check这一项。
4. android 中 API level 指的是什么什么意思这个等级表示的
android 每个版本提供给开发者的 API都有版本的,你把这个level理解为版本差不多
5. 新特性与行为变更 -- Android 13(T OS,API Level:33)
无论应用采用何种目标 SDK 版本,Android 13(API 级别 33)都允许用户从抽屉式通知栏中停止前台服务。这项新功能称为 FGS 任务管理器,它会显示当前正在运行前台服务的应用列表。此列表的标签为使用中的应用。每个应用旁边都有一个停止按钮。
注意:当用户按您应用旁边的停止按钮时,系统会停止您的整个应用,而不仅仅是正在运行的前台服务。
利用 JobScheler,应用可使用 JobInfo.Builder.setPrefetch() 将特定作业标记为“预提取”作业,这意味着,理想情况下这些作业应该在应用下一次启动前提前一点运行,以提升用户体验。过去,JobScheler 仅使用该信号让预提取作业有机会使用免费或多余的数据。
在 Android 13 中,系统现在会尝试确定应用下次启动的时间,并根据该估算值运行预提取作业。应用应尝试使用预提取作业来完成他们想要在下次应用启动前完成的任何工作。
Android 13(API 级别 33)引入了电池资源利用率,它为系统提供了多种方法来更好地管理设备电池续航时间:
Android 13(API 级别 33)引入了新的运行时通知权限:POST_NOTIFICATIONS。此更改有助于用户专注于最重要的通知。
注意:与媒体会话以及自行管理通话的应用相关的通知不受此行为变更的影响。
如果您的应用允许用户将敏感内容(例如密码或信用卡信息)复制到剪贴板,则必须在调用 ClipboardManager#setPrimaryClip() 之前向 ClipData 的 ClipDescription 添加一个标志。添加此标志可阻止敏感内容出现在内容预览中。
如需标记敏感内容,请向 ClipDescription 添加一个布尔型 extra。无论应用的目标 API 级别如何,所有应用都应这么做。
如果您的应用使用已废弃的 android:sharedUserId 属性,并且不再依赖于该属性的功能,您可以将 android:sharedUserMaxSdkVersion 属性设置为 32,这个新属性会告知系统,您的应用不再依赖于共享用户 ID。如果您的应用声明 android:sharedUserMaxSdkVersion 并且首次安装在搭载 Android 13 或更高版本的设备上,则应用的行为就像您从未定义过 android:sharedUserId 一样。更新后的应用仍会使用现有的共享用户 ID。
共享用户 ID 会在软件包管理器中导致具有不确定性的行为。您的应用应使用适当的通信机制(例如服务和 content provider),在共享组件之间实现互操作性。
注意:如果您已在清单中定义了 android:sharedUserId 属性,请不要将其移除。这样做会导致应用更新失败。
如果用户拒绝通知权限,他们仍会在前台服务 (FGS) 任务管理器中看到与这些前台服务相关的通知,但不会在抽屉式通知栏中看到这些通知。
在以前的 Android 版本中,用户需要向您的应用授予 ACCESS_FINE_LOCATION 权限,应用才能完成与热点相关的多个常见 Wi-Fi 用例、Wi-Fi 直连、Wi-Fi RTT 等。
由于用户很难将位置信息权限与 Wi-Fi 功能相关联,因此 Android 13(API 级别 33)在 NEARBY_DEVICES 权限组中引入了新的运行时权限,适用于管理设备与附近 Wi-Fi 接入点连接情况的应用。此权限 (NEARBY_WIFI_DEVICES) 可满足这些 Wi-Fi 用例。
只要您的应用不会通过 Wi-Fi API 推导物理位置,那么当您以 Android 13 或更高版本为目标平台并使用 Wi-Fi API 时,就可以请求 NEARBY_WIFI_DEVICES 而不是 ACCESS_FINE_LOCATION。
注意:仅当您调用 Wi-Fi API 时,此更改才会影响您的应用。
如果您的应用以 Android 13 为目标平台,您必须请求一个或多个新权限,而不是 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限。如果用户之前向您的应用授予了 READ_EXTERNAL_STORAGE 权限,系统会自动向您的应用授予每个新权限。
注意:如果您的应用只需要访问图片、照片和视频,请考虑使用照片选择器,而不是声明 READ_MEDIA_IMAGES和 READ_MEDIA_VIDEO 权限。
注意:您无需再声明 WRITE_EXTERNAL_STORAGE 权限。
如果您的应用以 Android 13 为目标平台,并且在后台运行时需要访问身体传感器信息,那么除了现有的 BODY_SENSORS 权限外,您还必须声明新的 BODY_SENSORS_BACKGROUND 权限。
当您的应用向以 Android 13 或更高版本为目标平台的其他应用的导出组件发送 intent 时,仅当该 intent 与接收应用中的 < intent-filter > 元素匹配时,系统才会传送该 intent。不匹配的 intent 会被屏蔽。
为了帮助提高运行时接收器的安全性,Android 13 允许您指定您应用中的特定广播接收器是否应被导出以及是否对设备上的其他应用可见。如果导出广播接收器,其他应用将可以向您的应用发送不受保护的广播。此导出配置在以 Android 13 或更高版本为目标平台的应用中可用,有助于防止一个主要的应用漏洞来源。
在以前的 Android 版本中,设备上的任何应用都可以向动态注册的接收器发送不受保护的广播,除非该接收器受签名权限的保护。
Android 13(API 级别 33)提供了全新的照片选择器体验。应用启动照片选择器时,用户可选择与应用分享特定图片和视频(如个人资料照片),而不是授予应用查看整个媒体库的权限。
照片选择器可为用户提供更好的隐私保护,因为您的应用无需声明任何运行时权限。此外,照片选择器还为应用提供内置标准化界面,从而打造更一致的用户体验。
注意:现在,我们推荐使用照片选择器来访问用户的照片和视频。
Android 13(API 级别 33)在 NEARBY_DEVICES 权限组中引入了一项新的运行时权限,它适用于会管理设备与附近 Wi-Fi 接入点连接情况的应用。这些应用在调用多个不同的 Wi-Fi API 时必须声明新的权限 NEARBY_WIFI_DEVICES。此外,只要应用不会通过 Wi-Fi API 推导物理位置,那么在以 Android 13 或更高版本为目标平台时,就无需声明 ACCESS_FINE_LOCATION 权限。
如果您的应用以 Android 13 为目标平台,您可以使用自动授予应用的 USE_EXACT_ALARM 权限。不过,您的应用若要使用此权限,必须至少满足以下条件之一:
如果您的应用设置了精确闹钟,但不符合前面列表中显示的任一情况,请改为继续声明 SCHEDULE_EXACT_ALARM 权限,并为用户拒绝授予您应用相应访问权限的情况做好准备。
从 Android 13 开始,应用可以撤消先前由系统或用户授予的运行时权限。此 API 可让您的应用执行增强隐私权的任务,如下所示:
如需撤消特定运行时权限,请将该权限的名称传入 revokeSelfPermissionOnKill()。如需同时撤消一组运行时权限,请将这组权限的名称传入 revokeSelfPermissionsOnKill()。撤消是异步发生的,会终止与您应用的 UID 相关联的所有进程。
Android 13 可支持 APK 签名方案 v3.1,此方案在现有的 APK 签名方案 v3 的基础上进行了改进,解决了 APK 签名方案 v3 的一些已知问题。具体而言,v3.1 签名方案允许应用在单个 APK 中同时支持原始签名者和轮替签名者。此外,该方案还支持 SDK 版本定位功能,这会允许轮替定位到更高版本的平台。
v3.1 签名方案使用在 12L 或更低版本中无法识别的新分块 ID。因此,平台会应用以下签名者行为:
尚未轮替其签名密钥的应用无需执行任何其他操作。每当这些应用选择轮替时,系统都会默认应用新的 v3.1 签名方案。
6. Android 2.2 所对应的API level是多少
版本号
1.5 的为3
2.2 的为 8
Android 3.0
11
Android 2.3.3
10
Android 2.3
9
7. 如何理解android中的api level
就是安卓开发包的版本号,比如安卓4.0对应的level是14,5.0对应的level是19