Android 低内存优化配置

前段时间遇到一个棘手的问题。就是系统崩溃,app卡死,一看 log。oh, my god!一堆的 lowmemorykiller 消息,dumpsys meminfo出来看一下,
在这里插入图片描述
好家伙,我直接好家伙。4G 内存差不多直接被吃了(Lost RAM)2G,芯片厂商是真的狠,只剩下(Free RAM)400多M,这怎么玩,这多开几个app那不是直接卡死崩溃。

一看就是低内存设备,大家伙想方设法的优化内存,比如删减不用的系统apk,以及普通的apk。然而没啥效果,最多也就节省十几M的Free RAM,根本不够用。我也去调了 heapsize 那些参数,也是没啥效果,多开几个app还是直接挂掉。

其实在谷歌的android文档里面就有对低内存设备的配置方法
在这里插入图片描述
网址是:https://source.android.google.cn/devices/tech/perf/low-ram

其实谷歌对低内存是有进行过优化的,从文档里面我们就可以看到谷歌做过哪些修改,以及如何配置。文档里面我觉得最可行的办法就是zram,什么是zram?

zram 交换可通过压缩内存页面并将其放入动态分配的内存交换区来增加系统中的可用内存量。这是以牺牲 CPU 时间为代价来增加少量内存。zram其实并不会真的增加内存,只是通过压缩,变相的增大内存使用空间。

最开始的dumpsys meminfo的图我们可以看到,ZRAM已经开了,但是 102,396K total swap 也就是开了100M的zram,只能压缩100M的内存,那怎么够用。

在这里插入图片描述
在谷歌的android文档里面,有zram的配置方法,/dev/block/zram0 none swap defaults zramsize=,swapprio= 于是我们可以修改zram的size,来看看效果如何。

ZRAM in Linux free memory

ZRAM_SIZE=100 # unit: MB , 0 = disable

在代码中搜索到以上代码,果然不出我所料,只开了100M的zram,于是我把zram开到最大,给他1000M,我这边最大只能开到1000M了。

把zram开大之后,多开几个app,不会卡死崩溃了,效果还是有的,但是开浏览器播放视频什么的,还是会卡,zram是有用,但是也只是把后台的应用压缩存储,当前台的应用占用内存过多的时候,还是顶不住啊。

总结:

zram的确可以优化内存不足的问题,但是心病还需心药医,内存不足最根本还是要从内存入手,增大内存才是治标治本之法。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值