随着最后一个Android 16测试版的发布,开发者应确保他们的应用或库没有任何兼容性问题。谷歌警告称,变化包括JobScheduler配额、更强的意图安全性、16KB页面大小,这些可能会影响应用,即使它们没有专门针对Android 16进行优化。
在Android 16中,JobScheduler将根据多个因素强制执行运行时配额,包括应用的待机桶,例如活跃、工作、频繁、稀少和受限——无论后台任务是在应用活跃时启动,还是任务与前台服务同时执行。当任务用完配额时,它将被阻止。
一个重要且可能破坏的变化是对Android Runtime (ART)的更新,这会影响使用反射或JNI访问Android内部的应用。谷歌警告称,依赖于内部ART结构(如非SDK接口)是有风险的,因为ART更新通过Google Play提供,并与设备的平台版本分离。
如果应用使用意图,它必须考虑Android 16的新保护措施,以防止重定向攻击,这种攻击发生在攻击者劫持意图以触发不同组件时。这些攻击可以利用通过额外字段传递的序列化意图,或当意图被编组为字符串时。例如,恶意应用可能传递一个空值给getCallingActivity()
希望一个易受攻击的应用不会验证它。同样,忽略checkCallingPermission()
的返回代码是一个常见错误,可能导致潜在风险。
Android 16引入了一种默认的安全加固解决方案来防止意图重定向漏洞。在大多数情况下,正常使用意图的应用不会遇到任何兼容性问题。
谷歌表示,removeLaunchSecurityProtection
方法允许应用选择退出新保护。然而,开发者应彻底测试他们的意图处理,并仅在绝对必要时选择退出。
Android 15引入了16 KB页面大小作为性能优化,在内存压力下提高应用启动时间,减少应用启动时的功耗,并缩短系统启动时间。在Android 16中,虽然4 KB对齐的应用将在兼容模式下工作,但用户将看到一个可能令人烦恼的警告对话框。为了抑制此对话框,开发者可以在android:pageSizeCompat
属性中设置AndroidManifest.xml
。
其他可能影响现有应用的Android 16更改包括移除选择退出边到边模式的选项,一个新的预测性返回行为,以及对固定速率调度的优化。在大屏设备上,Android 16还全面执行方向、可调整大小和纵横比设置。
这只是开发者在即将发布的Android版本中需要考虑的一部分。