Android性能调优 - 省电优化

文章探讨了Android设备的省电技巧,包括通过降低屏幕亮度和使用深色模式来节省电量,优化网络请求以减少能耗,以及避免不正确的Wakelock使用。另外,介绍了JobScheduler用于延迟非紧急任务,Doze模式限制应用活动以节省电池,以及传感器管理和后台进程控制对省电的影响。
摘要由CSDN通过智能技术生成

省电:

通过工具Battery Historian查看到:

耗电大头: 屏幕、网络、cpu

led/oled屏幕显示:

降低亮度,开深色模式;锁屏间隔缩短到 ;亮屏需要一直持有唤醒锁,还有gps定位也需要用到唤醒锁;

网络: 常用的网络优化措施(各部门宣讲)

1.使用缓存。

2.合并网络请求,减少请求次数

3.实时的信息上报改为非实时上报

4.请求一个图片时进行压缩

5. 使用webp图片

cpu:

一、避免wakelock不正确使用(部门宣讲)。

WakeLock 用来阻止 CPU、屏幕甚至是键盘的休眠。像Alarm 也会申请 WakeLock 来完成后台操作。WakeLock 的核心控制代码都在PowerManagerService中

耗电监控方案:

主要针对 PowerManagerService# acquire(PowerManager.WakeLock)这个耗电服务类做hook或插桩

1. 通过hook 即动态代理的方式,在调用获取锁acqireLock之前,做一些记录操作,比如记录调用堆栈、耗电信息,以符号表形式输出到本地,分线上或者线下进行回捞

2. 由于Android P之后很多hook点失效,进一步改通过插桩的方式,在扫描到系统包中的PowerManagerService方法,在method等到acquire方法,进行字节码插入,不过这个难度更高一点,不过AS已经有一个自带的byteInflater的插件半自动实现java转字节码;目前市面上只有Facebook实际上做到这套,但还是并未开源出来

二、JobScheduler(部门宣讲)

谷歌在5.0系统下提供了JobScheduler组件,使用场景:必要不紧急可延迟执行的任务,比如数据块更新,日志上报。

三、doze模式

Doze模式通过限制应用访问网络及其他一些操作频率,从而减少cpu开销达到省电目的。原生Android未连接电源、屏幕关闭就会进入Doze模式,还有系统还会周期性退出Doze;如果能主动定时调用进出doze模式比如用户亮屏未操作时,不过风险太大且调研不成熟;

传感器

激活的传感器会一直进行监听状态,如指纹解锁、实体按键,造成cpu负载和电量消耗,需要适配机型

杀进程(比较极端)

除了可见进程外,后台运行进程也比较耗电,比如常驻后台的微信qq;然后再退出省点模式时主动唤醒即可;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值