从 2025 年 3 月 27 日起,我们建议使用 android-latest-release
而不是 aosp-main
来构建 AOSP 并为其做贡献。有关详情,请参阅AOSP 变更。
针对 16 KB 页面大小进行优化
使用合集保持井井有条 根据您的偏好保存内容并对其进行分类。
对于大多数编程任务,页面大小并不重要。但是,如果您要分配大量内存、处理高度优化的组件、直接与内核交互或执行大量文件操作,那么 Android 过渡到 16 KB 页面大小可能会为您的性能分析增加一些考虑因素。本文档重点介绍页面大小的变化如何改变性能动态。
检测内存问题
当您使用 mmap
分配内存时,请确保您始终传递一个页面大小的倍数的参数。如果您在具有 16 KB 页面大小的系统上请求 4096
字节,则内核会分配 16 KB
,从而浪费 12 KB
的空间。查看 /proc/maps
、/proc/smaps
(或使用 Android 工具 showmap
,它可以很好地打印浪费的空间),或者检查您进程的 strace
可以帮助检测这些问题。
检测磁盘空间问题
在 Android 15 及更高版本上启动的设备默认具有 16 KB 对齐的 ELF,并且许多应用程序也是 16 KB 对齐的。无论系统如何,许多文件的填充都有所增加。要查看磁盘上的实际大小,您可以使用 du <my file>
来查看文件占用多少千字节。要查看文件的显示大小,您可以使用 du -b <my file>
,它会显示文件大小(以字节为单位)。当显示大小大于实际大小时,这通常意味着文件被压缩或具有稀疏区域。当显示大小小于实际大小时,该文件可能具有额外的元数据,或者可能在磁盘上被拆分。使用这些检查,您可以分析磁盘上文件的实际大小。
此页面上的内容和代码示例受内容许可中描述的许可协议约束。Java 和 OpenJDK 是 Oracle 和/或其关联公司的商标或注册商标。
上次更新时间:2025-02-05 UTC。
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-05 UTC."],[],[]]