赞
踩
一、发布计划介绍
Android14,也就是Android U版本,代号“Upside Down Cake”中文翻译是“翻转蛋糕”,正式版本谷歌官方计划在2023年8月后发布
二、功能和特性变更介绍
(一)针对所有运行在Android14系统上的特性变更
1. 最低可安装目标 API 级别
从 Android 14 开始,targetSdkVersion 低于 23 的应用无法安装。要求应用满足这些最低目标 API 级别要求有助于提高用户的安全性和隐私性。恶意软件通常会以较旧的 API 级别为目标平台,以绕过在较新版本 Android 中引入的安全和隐私保护机制。例如,有些恶意软件应用使用 targetSdkVersion 22,以避免受到 Android 6.0 Marshmallow(API 级别 23)在 2015 年引入的运行时权限模型的约束。
2. 系统可能会隐去媒体所有者软件包名称
媒体库支持查询 OWNER_PACKAGE_NAME 列,该列表示存储特定媒体文件的应用。从 Android 14 开始,除非满足以下条件之一,否则系统会隐去此值:(1)存储媒体文件的应用有一个软件包名称始终对其他应用可见;(2)查询媒体库的应用会请求 QUERY_ALL_PACKAGES 权限。
3. 应用只能终止自己的后台进程
从 Android 14 开始,当应用调用 killBackgroundProcesses() 时,该 API 只能终止自己应用的后台进程。如果传入另一个应用的软件包名称的话,此方法对该应用的后台进程将没有任何影响,只会在 Logcat 中会显示以下消息:应用不应使用 killBackgroundProcesses() API,也不得以其他方式尝试影响其他应用的进程生命周期,即使在旧版操作系统上也是如此。Android 旨在让缓存应用在后台运行,并在系统需要内存时自动终止它们。
4. 系统在默认情况下会拒绝安排精确闹钟
对于以 Android 13 及更高版本为目标平台的大多数新安装应用,系统不再预先向其授予 SCHEDULE_EXACT_ALARM 权限,该权限默认处于拒绝状态。
5. 上下文注册的广播会在应用缓存期间加入队列
当上下文注册的广播已加入队列以传送给处于缓存状态的应用时,系统可能会将这些广播放入队列中。
6. 使用非线性字体缩放测试应用
由于 Android 支持字体放大高达 200%,因此应执行界面测试,确保应用可以容纳更大的字体,而不会影响易用性。
7. 授予对照片和视频的部分访问权限
在 Android 14 中,当应用请求 Android 13(API 级别 33)中引入的任何视觉媒体权限时,用户可以授予对其照片和视频的部分访问权限:READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO。新对话框会显示以下权限选项: (1)选择照片和视频:Android 14 中的新功能。用户选择希望提供给应用的具体照片和视频。
(2)全部允许:用户授予对设备上的所有照片和视频的完整访问权限。
(3)不允许:用户拒绝授予所有访问权限。
如需在应用中更妥善地处理此更改,请考虑声明新的 READ_MEDIA_VISUAL_USER_SELECTED 权限。详细了解如何支持用户授予对其媒体库的部分访问权限。
8. 更新了全屏 intent 通知的权限要求
在 Android 14 中,只有提供通话和闹钟的应用才能使用 USE_FULL_SCREEN_INTENT 权限支持全屏 intent 通知。
9. 不可关闭的通知
如果应用向用户显示不可关闭的前台通知的话需要注意:Android 14 中允许用户关闭此类通知。这项变更适用于通过 Notification.Builder#setOngoing(true) 或 NotificationCompat.Builder#setOngoing(true) 设置 Notification.FLAG_ONGOING_EVENT 来阻止用户关闭前台通知的应用。FLAG_ONGOING_EVENT 的行为已发生变化,使用户实际上能够关闭此类通知。在以下情况下,此类通知仍不可关闭:
(1)当手机处于锁定状态时
(2)如果用户选择全部清除通知操作(有助于防止意外关闭)
此外,这一新行为不适用于以下用例中的不可关闭通知:
(1)使用 MediaStyle 创建的通知
(2)安全和隐私用例的政策限制使用
(3)企业设备政策控制器 (DPC) 和支持软件包
10. 数据安全信息
应用的数据安全信息(例如数据共享做法)会出现在某些权限理由系统对话框和系统通知中。
(二)以 Android 14 及更高版本为目标平台的应用的特性变更
1. 对隐式 intent 和待处理 intent 的限制
对于以 Android 14 为目标平台的应用,Android 会通过以下方式限制应用向内部应用组件发送隐式 intent:
(1)隐式 intent 只能传送到导出的组件。应用必须使用显式 intent 传送到未导出的组件,或将该组件标记为已导出。
(2)如果应用通过未指定组件或软件包的 intent 创建可变待处理 intent,系统现在会抛出异常。
这些变更可防止恶意应用拦截意在供应用内部组件使用的隐式 intent。
2. 运行时注册的广播接收器必须指定导出行为
以 Android 14 为目标平台并使用上下文注册的接收器的应用和服务必须指定以下标志,以指明接收器是否应导出到设备上的所有其他应用:RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED。此要求有助于利用 Android 13 中引入的这些接收器的功能,来保护应用免受安全漏洞的影响。
3. 更安全地动态加载代码
如果应用以 Android 14 为目标平台并使用动态代码加载 (DCL) 功能,则必须将所有动态加载的文件标记为只读。否则,系统会抛出异常。建议应用尽可能避免动态加载代码,因为这样做会大大增加应用因代码注入或代码篡改而遭到入侵的风险。
4. Zip 路径遍历
对于以 Android 14 为目标平台的应用,Android 通过限制 Zip 文件条目名称所含的内容来防止 Zip 路径遍历漏洞。
5. 针对从后台启动 activity 的额外限制
对于以 Android 14 为目标平台的应用,如果应用想要在发送其他应用的 PendingIntent 或绑定该应用的服务时为自己的后台 activity 授予启动其他应用的特权,则必须选择启用。
6. 必须提供前台服务类型
如果应用以 Android 14 为目标平台,则必须为应用中的每个前台服务指定至少一个前台服务类型。
7. OpenJDK 17 更新
在 OpenJDK 17 更新中,一些更改会影响应用兼容性,例如对正则表达式和 UUID 处理的更改。
(三)Android 14提供的新功能和 API
1. 各应用语言偏好设定
Android 14 扩展了 Android 13(API 级别 33)中引入的按应用设定语言功能,并包含以下额外功能:
(1)自动生成应用的 localeConfig
(2)动态更新应用的 localeConfig
(3)输入法 (IME) 的应用语言可见性
2. 语法变化 API
可以更轻松地向具有语法性别的语言的用户提供支持,从而针对这些语言提供更个性化、更自然的用户体验。语言的语法类别(例如名词、动词、形容词和介词)会根据您交谈所涉及的人或物的性别而变化
3. 地区偏好设置
新的Android设置菜单为用户提供了一个可发现和集中的位置来更改应用程序偏好。这些首选项在备份和恢复过程中也会持续存在。
4. 路径现在可查询和插值
从 Android 14 开始,可以查询路径以了解其内部内容。首先,需要使用 Path.getPathIterator API 获取 PathIterator 对象。接下来,可以调用 PathIterator 逐个遍历片段,并检索每个片段的所有必要数据。Android 14 针对 Path 还有一个新的 interpolate() 方法。假设两个路径具有相同的内部结构,interpolate() 方法会使用该插值结果创建一个新的 Path。
5. 将字体放大高达 200% 的非线性字体
Android 支持字体放大高达 200%,为弱视用户提供了符合《网络内容无障碍指南》(WCAG) 的其他无障碍选项。
6. Sharesheet 自定义操作和排名改进
Android 14 更新了系统 Sharesheet,以便为用户提供自定义应用操作和信息更丰富的预览结果。
7. 支持内置和自定义动画
使用新的系统返回 API 的应用可选择启用预测性返回,以自动接收应用内动画并支持自定义转换。
8. 屏幕截图检测
为了创建更标准化的截图检测体验,Android 14 中引入了一个保护隐私的截图检测API。这个API允许应用程序以每个活动为基础注册回调。当用户在活动可见时截取屏幕截图时,调用这些回调函数,并通知用户。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。