随着设备制造商不断打造出 物理内存 (RAM),从 Android 15 开始,Android 系统支持将设备配置为使用 16 KB 页面大小。如果您在应用中使用原生代码,则应重新构建应用以支持 16 KB 设备,并且所有开发者都应使用 16 KB 环境测试其应用。
如果您的应用使用任何 NDK 库,直接使用 或者通过 SDK 间接使用,那么您需要重新构建自己的应用 支持这些 16KB 设备。如果不重新编译,在未来的 Android 版本中应用可能无法在 16KB 设备上运行 。
为帮助您为应用添加支持,这里介绍了有关如何检查您的应用是否受到影响,是否需要重新构建您的应用,以及如何使用模拟器(Android 15)的 16 KB 环境系统映像。
优势和性能提升
配置为 16 KB 页面的设备平均使用的内存会略多,但系统和应用性能也会有所提升:
- 在系统面临内存压力时缩短应用启动时间:平均降低了 3.16%,对于我们测试过的一些应用而言,改进幅度更显著(提升幅度高达 30%)
- 降低应用启动时的功耗:平均降低 4.56%
- 相机启动速度更快:平均热启动速度加快 4.48%,冷启动速度平均加快 6.60%
- 缩短了系统启动时间:平均缩短了 1.5%(约 0.8 秒)
这些改进基于我们的初始测试,实际设备上的结果可能会有所不同。在继续测试的过程中,我们会进一步分析应用的潜在益处。
检查您的应用是否受到影响
如果您的应用使用任何原生代码,则您应重新构建支持 16 KB 设备的应用。
-
您的应用是否使用了原生代码?
如果符合以下任一条件,则您的应用会使用原生代码:
- 您的应用使用了任何 C/C++ 原生代码。如果您的应用使用的是 Android NDK,那么应用使用了原生代码。
- 您的应用会与任何第三方原生库或依赖项相关联。
- 您的应用由第三方应用构建程序构建,该构建程序使用了原生代码。
-
如果不确定是否使用了原生代码,可以使用 APK 分析器来确定是应用中否存在任何原生代码。
-
打开 Android Studio
-
从菜单栏中,点击 Build > Analyze APK...
-
选择要分析的 APK 文件。
-
查看 lib
文件夹,此文件夹中保存了共享对象 (.so
) 文件 。如果该文件夹中存在任何 (.so
) 共享对象文件,您的应用则使用了原生代码。如果不存在 (.so
) 共享对象文件或者没有 lib
文件夹, 那么您的应用就没有使用原生代码。
如果您的应用仅使用以 Java 编程语言或 Kotlin 编写的代码(包括所有库或 SDK),那么该应用已经支持 16 KB 设备。不过,我们建议您在 16 KB 的环境中测试应用,以确认应用行为是否存在意外回归问题。
官方文档:
行为变更:支持 16 KB 页面大小
支持 16 KB 的页面大小
其他
Android 15 功能和变更列表
翻译:2024 年 9 月 3 日 Android 15 已发布至 AOSP
Android 15 新功能和 API 详解:Private Space/私密空间功能简介
Android 15 新功能和 API 详解:录屏检测,addScreenRecordingCallback
Android 15 新功能和 API 详解:应用程序启动信息,ApplicationStartInfo
Android 15 新功能和 API 详解:更精确的 Intent 解析,UriRelativeFilterGroup 和 UriRelativeFilter