电量优化

作者: 爱码士平头哥 | 来源:发表于2018-05-28 14:30 被阅读19次

1、在android framework里面有专门负责电量统计的Service:BatteryStatsSerive

①这个Service在ActivityManagerService中创建,代码如下:

mBatteryStatsService = new BatteryStatsService(new File(systemDir, 'batterystats.bin').toString());

②其他的模块比如WakeLock和PowerManagerService会向BatteryStatsService传递数据,数据是存放到系统目录batterystats.bin文件,然后交于BatteryStatsImpl这个数据分析器来进行电量数据的分析,系统的设置就是这样得到电量的统计信息的;

③电量的计算公式:

应用运行总时间 =  应用在Linux内核态运行时间 +  应用在Linux用户态运行时间

CPU工作总时间 = 软件运行期间CPU每个频率下工作的时间之和比例

应用消耗的电量 = CPU每个频率等级下工作的时间比例/CPU工作总时间 * 应用运行总时间

2、手机耗电主要原因

在09年GoogleIO大会JeffreySharkey的演讲(Coding for Life — Battery Life,That Is)中就探讨了这个问题,指出android应用的耗电主要在以下三个方面:

大数据量的传输

不停的在网络间切换

解析大量的文本数据;

3、并提出了相关的★优化建议★

①在需要网络连接的程序中,首先检查网络连接是否正常,如果没有网络连接,那么就不需要执行相应的程序;

②判断网络类型,针对特定的数据在特定的网络下请求.例如:大量数据传输的时候在wifi下请求;wifi下下载数据耗电量只有2、3、4G的1/3.

③使用效率高的数据格式和解析方法,推荐使用JSON和Protobuf;

④在进行大数据量下载时,尽量使用GZIP方式下载;

⑤使用推送,代替循环请求

⑥其它:

尽量不要使用浮点运算

回收java对象,特别是较大的java对像,使用reset方法;

主动回收java对象,特别是较大的,例如bitmap。减少GC的工作频率;

避免内存抖动,内存抖动是因为大量的对象被创建又在短时间内马上被释放;

避免在for循环、onDraw方法中创建对象;无法避免的可以创建对象池,然后在不使用的时候释放;

对定位要求不是太高的话尽量不要使用GPS定位,可以使用wifi和移动网络cell定位即可;

获取屏幕尺寸等信息可以使用缓存技术,不需要进行多次请求;

使用AlarmManager来定时启动服务替代使用sleep方式的定时任务;

使用JobScheduler合理分配任务

①JobScheduler 即 任务调度器

②需要先有一个JobService

相关文章

  • Android M 以上 电量优化分析

    电量优化一直是Android 开发中的头等问题。本篇将分析一下Android M 以上电量优化措施电量优化相关的部...

  • APP开发实战125-APP 电量优化

    30.5电量优化 1 网络流量优化,预置资源优化、代码优化和UI性能优化可以有效降低电量消耗。 2 使用定位功能时...

  • APP性能优化

    电量检测和优化 耗电量查看:设置-电池-应用耗电量 电量优化:CPU减少应用对数据的处理,尽可能放在服务端处理设置...

  • 电量优化

    文章来源:http://wuxiaolong.me/2017/04/27/AndroidBattery/我们可以获...

  • 电量优化

    1, 分析电量的工具Android 5.0及以上的设备, 允许我们通过[adb命令dump出电量使用统计信息.ad...

  • 电量优化

    1.为了省电,有些工作可以当手机插上电源的时候去处理。 像这些不需要及时地和用户交互的操作可以放到后面处理。比如:...

  • 电量优化

    1、在android framework里面有专门负责电量统计的Service:BatteryStatsSeriv...

  • 电量优化

  • 电量优化

    来点前奏说明 当你打开这个文档的时候,你已经做好准备了,话不多说开搞。本文以https://docs.docker...

  • 电量优化

    如何进行电量优化? 首先我们先简单总结汇总一下耗电的相关因素 1.屏幕亮暗相关 2.设备 awake,sleep ...

网友评论

    本文标题:电量优化

    本文链接:https://www.haomeiwen.com/subject/pwtuhxtx.html