Android 14 系统为开发者带来了不少值得关注的新特性和改进,以下是一些特别需要关注的亮点:
新特性与改进
1、 性能与效率提升:Android 14 通过冻结缓存应用、广播优化以及增加缓存应用的最大数量等措施,减少了冷启动应用的次数,提升了应用启动速度和系统性能。
2、 定制化体验:系统增加了更大的字体缩放比例,最高可达200%,并且采用非线性缩放曲线,改善了可访问性。
3、 每个应用的语言偏好设置:开发者可以使用 LocaleManager.setOverrideLocaleConfig
动态更新应用的语言设置,同时输入法编辑器 (IME) 可以根据当前应用的界面语言更新键盘语言。
4、 区域偏好设置:Android 14 允许用户个性化设置温度单位、每周的第一天以及数字系统,并通过 API 和 Intent 供开发者读取这些偏好设置。
5、 新多媒体功能:包括对 10 位 HDR 图像支持的 Ultra HDR、无损 USB 音频以及相机扩展中的缩放、对焦、后视图等功能。
6、 新的图形能力:Android 14 引入了使用顶点和片段着色器的自定义网格,以及 Canvas 的硬件缓冲渲染器,增强了图形处理能力。
7、 跨形态开发:Android 14 继续支持多种设备形态,包括平板电脑和可折叠外形因素,并提供大屏幕优化的系统应用和通知界面。
8、 提高生产力:包括 OpenJDK 17 支持、凭据管理器和密码匙支持、Health Connect 以及更一致、更可靠的前台服务。
9、 用户体验改进:Android 14 引入了预测性返回系统动画,改善了用户在不同活动中的导航体验。
10、 隐私和安全:Android 14 强化了数据共享的透明度,提供了部分访问权限,例如仅授予应用对特定照片和视频的访问,以及强化了全屏通知的安全性。
开发者在适配 Android 14 时,需要特别关注上述新特性,并根据官方文档进行必要的更新和测试,以确保应用能够充分利用这些新特性,同时保障用户体验和应用安全。
适配
截止8月底,所有提交至 Google Play 商店的应用更新都必须面向 Android 14 进行适配,即 targetSdkVersion 必须设置为 34 或更高版本,才能保持上架状态;同时,新提交的应用也必须以 API 级别 34 为目标平台才能提交 。
这个时间每年都是差不多的,经常适配或者做国外市场的应该比较熟悉了。
适配注意事项
1、 targetSdkVersion 34:开发者需要将targetSdkVersion
升级到34,以适配Android 14的新特性和要求 。
2、 前台服务类型声明:应用中的每个前台服务必须指定至少一种服务类型,例如mediaPlayback
或location
。
3、 蓝牙连接权限变更:调用BluetoothAdapter
的getProfileConnectionState()
时必须申请BLUETOOTH_CONNECT
权限 。
4、 OpenJDK 17更新:Android 14更新了核心库,支持Java 17语言特性,开发者需要检查正则表达式、UUID处理等是否受到影响 。
5、 隐式Intent和PendingIntent的限制:对于设置了android:exported="false"
的组件,隐式Intent或PendingIntent将无法启动,需要改为显式Intent 。
6、 动态注册的广播接收器:必须指定是否导出到设备上的所有应用,使用RECEIVER_EXPORTED
或RECEIVER_NOT_EXPORTED
标记 。
安全性加强
1、 最低可安装的目标API级别:从Android 14开始,targetSdkVersion
低于23的应用无法安装,以提高安全性和隐私性 。
用户体验改进
1、 部分访问权限:用户可以授予应用对其库中特定图像和视频的访问权限,而不是所有媒体的访问权限 。 2、 全屏intent限制:为了防止垃圾广告和凭据钓鱼式攻击,只有提供通话和闹钟功能的应用才能获得发送全屏通知的权限 。
特别需要注意的点
前台服务类型声明
这个是新出的,如果有前台服务,必须要在应用的manifest文件中进行说明,并且一些特殊的前台服务,在提交Google Play审核时 ,也要进行对应的说明,否则可能会被拒审。
这个说明就是根据自己业务来了,说明你的服务是干嘛的,为啥需要前台服务。
代码语言:javascript复制//specialUse类型的需要清单文件里说明用途
<service android:name="fooService" android:foregroundServiceType="specialUse">
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
android:value="explanation_for_special_use"/>
</service>
App中没有对应的功能的话就不用管了。具体可以参考官网说明:前台服务类型是必需的
里面有介绍前台服务的各种情况,对于是specialUse
的情况是最严格的。比如像一般播放器的前台服务通知,应该是mediaPlayback
这种类型,虽然不需要清单中说明,但是Google play审核的时候还是需要提供说明的。
隐式Intent和PendingIntent的限制
这个就是各个页面之间的跳转看看有没有问题即可了。还有通知跳转进入的情况。
开发者在适配Android 14时,需要关注这些新特性和注意事项,确保应用能够充分利用新系统的优势,同时保障用户体验和应用安全。