Android 通过log看是否内存低导致的应用闪退

好多应用闪退问题都是由于内存低,LMK策略强制杀应用导致。其实我们可以通过log去看看是否是因为内存低而导致的应用闪退。
首先打开kernel.log, 如果内存太低启用了LMK,会看到有killing的动作如下:

“lowmemorykiller: Killing 'app_name' (PID), adj **"

如果杀进程的adj比较低,比如adj<3, 那说明内存压力已经很大了,下面举例说明
问题是“用默认浏览器浏览网页,概率性闪退”
看kernel.log,发现browser被kill,log摘录如下:

02-01 17:23:57.685 <6>[ 2436.189758] c2 lowmemorykiller: Killing 'android.browser' (5610), adj 0, 
02-01 17:23:57.685 <6>[ 2436.189758] c2    to free 147456kB on behalf of 'android.browser' (5610) because 
02-01 17:23:57.685 <6>[ 2436.189758] c2    cache 17564kB is below limit 18432kB for oom_score_adj 0

从上面log可以看出,目前由于目前的cache是17564kB低于oom_score_adj 0的限制18432kB,所以lowmemorykiller杀掉了’android.browser’ 释放147456kB内存。
browser adj已经是0了还是被杀,内存压力相当大,从而会导致闪退问题。
由于目前此项目的内存是512配置,且查看系统的LMK配置也是没有优化空间了,基于整体效果考虑,不建议调整LMK策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值