内存优化方案

先来看下方案内容    

1 休眠的时候杀掉非白名单里面的进程--str方案
2 低内存时候杀掉非白名单里面的后台进程及限制后台进程数量
3 自定义三种等级的低内存杀进程策略以应对特殊场景,app端可以通过接口设置等级
      第一级是 杀死所有后台进程,
      第二级 杀死所有内存超过300mb的后台进程
      第三级是 杀死所有cpu占用超过20%的后台进程
 4 原有的低内存查杀等级上再细化查杀的力度,这个效果不是很明显,原生已经很成熟,目前          面临的问题主要还是特殊场景,条目三足以覆盖特殊场景


    
接下来看下大致实现思路


    1 systemconfig.java 里面添加白名单并提供接口isStrApp(String packgename) 和静态接口 isStrMode();
    2 ActivityManagerService.java监听screen_off和on广播 设置systemconfig.isStrMode()并实现进程查杀
     (为什么不放到powermanagerservice里面,因为ams里面有现成的杀死进程的方法,而且较为复杂)
    3 processlist.java 重写startProcessLocked方法在所有java进程启动的地方对str app 进行拦截。
    
    
    再来看第二条的实现:
    ActivityManagerService.java
    updateOomAdjLocked里面直接当剩余内存小于低内存指标500mb时候杀死所有后台str app 并设置setProcessLimit = 5
    
    看第三条的实现:
    还是
    updateOomAdjLocked 里面添加接口,并依次am添加接口给到app端调用,我这里简单用prop设置int值来控制了(代码在另一个仓库且要申请权限)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值