Android 应用App如何对应用电量的消耗进行管理和优化,耗电因素有哪些?

最近在关注应用耗电量的问题的时候,总结了以下耗电因素:

  1.app 占用CPU资源,wifi GPS 等

  2.流量资源

 3.服务使用完了,未进行关闭, 程序后台自启动等.

4.网络请求消耗

5.高频的刷新UI操作(一个界面尽量少嵌套太多层,嵌套太多,刷新的时候也会增加电磁的消耗)

6.数据库和SD卡的文件操作.

7.例如一些推送的心跳包的实现,每次推送,都会唤醒CPU

8. 手机信号不好的时候,一会造成wifi和网络的随时切换,这个过程不可避免的会唤醒CPU,导致增加电量的消耗

9.针对一些任务队列的处理,如果队列堆积的任务太多,导致循环执行太久也会造成耗电,因为占用了CPU资源去执行代码,我们的log日志工具保存到文件就是用任务队列实现的,当压力测试SDK一次性接受1万条消息的时候,那内存就表上来了,跟了下发现日志保存队列里面积压了4千多个任务,这时候即使手机锁屏,也还会不断的把队列中的任务执行完然后CPU才会休眠下去的,同样会造成严重的耗电,耗内存

10.realse的时候,日志忘记关闭,导致,用户在使用app的是会有,不断的产生新的日志,也会增加cpu的负担,从而增加电量的消耗执行一些高运算量的代码,例如json数据解析,一些二进制协议的数据编码和解码
11.接收系统的一分钟广播,然后做一些程序逻辑处理,其实接收一分钟广播不耗电,耗电的是一分钟执行一次程序处理
12.Wake Lock使用不当导致没有及时的释放,Wake Lock可以阻止cpu进入休眠的,如果没有及时的release会造成cpu无法休眠,程序耗电严重
13.如果程序中有定时任务,在cpu休眠之后,定时任务就会被挂起不执行,这时候并不会造成太大的耗电,但是如果这个定时任务的时间间隔很短,1秒执行一次,那么当手机app集成了推送,推送就会有心跳包通过AlarmManager来唤醒,每次唤醒的时候就会再去执行挂起的定时任务,虽然执行定时任务的耗电量可能比心跳包的耗电量少很多,不过还是需要注意的,积少成多
14.在手机锁屏后,CPU会过一段时间才休眠,如果程序中有定时任务,在CPU休眠后会被挂起不执行,但是在CPU休眠之前,定时任务还是会一直的执行的,之前遇到过这么一个问题,我们采用Picasso库:Picasso.with(context)
 

部分解决路径:

  1. 优化网络请求
    1. 对相关数据做缓存
    2.  大数据上传做集中压缩
    3. 无网络状态下,避免网络请求 一般状态下,网络请求失败之后的重试机制,但是要注意这个重试是在有网状态下的重试。否则无网状态下重试不会请求成功,只会消耗电量。尤其是与AlarmManager或者WakeLock连用的场景下,耗电量会更多。
  2. 减少常用页面嵌套
  3. 应用使用GPS后,及时关闭,减少更新频率,根据实际情况选择GPS或网络或两者. 只使用一个会降低电量损耗.
  4. 谨慎使用WakeLook
  5. CPU和网络耗电方面,主要是减少I/O操作(包括数据库操作),大量的计算;减少网络网络请求次数和数据量
  6. 传感器使用

  7. 使用传感器,选择合适的采样率,越高的采样率类型则越费电;

    • SENSOR_DELAY_NOMAL (200000微秒)

    • SENSOR_DELAY_UI (60000微秒)

    • SENSOR_DELAY_GAME (20000微秒)

    • SENSOR_DELAY_FASTEST (0微秒)

    • 在后台时注意及时注销传感器监听;

 

记录Android app耗电量的文件地址路径:

     在官方文档《Power Profiles for Android》明确了power_profile.xml位置:device///frameworks/base/core/res/res/xml/power_profile.xml。

(1)Android部件电流信息存于:power_profile.xml

        (2)每个OEM厂商有私有power_profile.xml

        (2)PowerProfile读取power_profile.xml,并提供API访问部件电流数值。

参考文章:

1.https://jingyan.baidu.com/article/48b37f8d3cee9b1a64648817.html

2.https://www.cnblogs.com/hyddd/p/4402621.html

3.https://blog.csdn.net/lhd201006/article/details/52851366

参考文献:

参考文献

  1. 《深入浅出Android App耗电量统计》- hyddd(陈曦明)
  2. 《Android App优化之电池省着用》 - anly_jun
  3. 《Android应用耗电分析与优化》
  4. 《移动App性能评测与优化-腾讯TMQ专项测试团队实战 - TMQ专项测试团队》

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值