当前位置: 首页 > news >正文

Android性能调优 - 省电优化

省电:

通过工具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;然后再退出省点模式时主动唤醒即可;

http://www.lryc.cn/news/28865.html

相关文章:

  • ElasticSearch - SpringBoot整合ES之全文搜索匹配查询 match
  • 句子的改写和扩写
  • DockerFile创建及案例
  • 第十四届蓝桥杯三月真题刷题训练——第 1 天
  • 基于容器云提交spark job任务
  • Linux系统调用之目录操作函数
  • 设计模式-策略模式
  • 面试+算法:罗马数字及Excel列名与数字互相转换
  • Connext DDS路由服务Routing Service(1)
  • 如何使用SaleSmartly进行Facebook Messenger 营销、销售和支持
  • 教资教育知识与能力中学教学
  • IDEA中使用Tomcat的两种方式:集成本地Tomcat使用Tomcat Maven插件
  • IP 地址的简介
  • 3D动作/动画特效
  • python 多线程编程之_thread模块
  • vue:vue2与vue3的区别
  • SQL数据库语法
  • 人机界面艺术设计
  • 【办公类-19-01-02】办公中的思考——Python,统计教职工的姓名中那些字最多?
  • HCIP实验1
  • 一个Bug让人类科技倒退几十年?
  • 2023王道考研数据结构笔记第四章串
  • 【AI绘图学习笔记】深度学习相关数学原理总结(持续更新)
  • CSGO服务器配置全贴纸插件方法教程
  • Python爬虫——使用socket模块进行图片下载
  • 通用游戏地图解决方案设计解析
  • java @Autowired @Resource @Inject 三个注解的区别
  • 「媒体分流直播」媒体直播和传统直播的区别,以及媒体直播的特点
  • 数据是如何在计算机中存储的
  • Day907.分区表 -MySQL实战