Android 15 适配之16K Page Size

15来了 适配问题也就来了,之前讲过Android 15行为变更:所有应用_软件包停止状态变更-CSDN博客 里面有简单提到过16K内存适配,

本文就针对16KB页面设备适配详细介绍一下,

16KB页面(Page Size)带来的好处

配置为 16 KB 页面的设备平均使用的内存会略多,但系统和应用性能也会有所提升:

  • 在系统面临内存压力时缩短应用启动时间:平均降低了 3.16%,对于我们测试过的一些应用而言,改进幅度更显著(提升幅度高达 30%)
  • 降低应用启动时的功耗:平均降低 4.56%
  • 相机启动速度更快:平均热启动速度加快 4.48%,冷启动速度平均加快 6.60%
  • 缩短了系统启动时间:平均缩短了 1.5%(约 0.8 秒)

 Page Size 

        页面(Page)指的就是 Linux 虚拟内存管理中使用的最小数据单位,页面大小(Page Size)就是虚拟地址空间中的页面大小, Linux 中进程的虚拟地址空间是由固定大小的页面组成。

对于虚拟内存, CPU 的内存管理单元(MMU)会将虚拟地址转换为物理地址,所以虚拟内存最终也会映射到物理内存页面。

而为了实现虚拟内存到物理的映射,两个地址空间都会被划分为多个固定页面,而虚拟空间和物理空间中的页面需要大小相同,通常长度为 4K,为了区分虚拟页面和物理页面,后者一般会被称为页框(page frames )。

因为 Android 用的是 Linux 内核,所以在内存逻辑一直以来都是遵循 Linux 的实现,只是 Android 由于“历史因素”限制,一直只支持 4 KB 内存页面大小,而现在为了优化系统内存性能,提高内存密集型工作负载的性能,Android 15 开始将采用 16KB 页面大小的要求。

异常日志:
当含有 “XXX.so” 的 android 项目,很可能需要重新编译带有全新的动态库(.so) 才能正常运行对应功能,不然大概率会 crash 。

Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7a58c6e5fcd0 in tid 25818 (e.myapplication), pid 25818 (e.myapplication)
2024-07-29 17:10:24.790 25877-25877 DEBUG                   pid-25877                            A  Cmdline: com.example.myapplication
2024-07-29 17:10:24.790 25877-25877 DEBUG                   pid-25877                            A  pid: 2581
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值