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专项测试团队》

 

云计算耗电惊人占全球用电量的8%

05-26

2012年,戴尔与艾普宽带共同建立的“云计算中心”正式启动上线运营。 rnrn  “云计算”目前已经应用于许多企业,尤其是一些高科技企业,以谷歌、亚马逊等科技巨头为例,数据存储在数据中心里数以千计的“云端”服务器中。尽管最近数年服务器的硬盘空间大幅增长,但云计算仍然面临挑战。 rnrn  为了处理由消费者和企业生成的海量数据,“云计算”数据中心通常需要大量电能,而这些电能来自矿物质燃料等“肮脏的”能源。对数据中心高密度的服务器进行冷却,也需要大量能源。未来数年,伴随着云计算需求的快速增长,能耗也将水涨船高。 rnrn  云计算电能消耗大 rnrn  据中国日报网报道,惠普首席技术官马丁·芬克在接受采访时说,“当前的能源消耗方式是不可持续的,因为未来数年数据量将快速增长。 ”绿色和平组织估计,如果把全球云计算产业比做一个国家,其能耗排在第六位,介于德国和俄罗斯之间。到2020年,云计算产业的电能需求将增长逾60%。美国互联网巨头亚马逊上个月被绿色和平组织称作是“最肮脏的”云计算服务厂商之一。在亚马逊的云计算服务AmazonWeb Services的能耗中,清洁能源只占15%,其余来自煤炭、核电和天然气。 rnrn  最近很火的特斯拉也可以和“云计算”扯上关系,,驾驶特斯拉时的所有的路径数据都实时反馈到云端,服务器能帮助运维车辆,提示问题,全程实时监控,智能控制。 rnrn  大多数人都会觉得,特斯拉这样一款纯电动的高科技的车,一定是十分环保的吧,事实真的如此吗?上汽新能源和技术管理部总经理干频曾详细算过这样一笔账,特斯拉每天拉着半吨多重的电池跑在路上,平均每公里耗电约为0.18度。美国用的是核电,因此,特斯拉在美国每公里碳排放大概是122g,无疑是环保节能车型。但中国大量使用煤电,算下来,特斯拉的碳排放约为175g/公里,而传统的汽油车大概是150g或160g/公里左右。特斯拉居然比汽油车的二氧化碳排放还要高。因此,在中国,特斯拉不属于节能环保车型。 rnrn  占世界用电量8% rnrn  近日,国家能源局原局长张国宝在一次活动上表示,当前非常流行的云计算模式,属高能耗项目。他分析说,中国联通[0.31% 资金 研报]数据中心的能耗数据显示,该中心每年耗电99亿千瓦时。以中国目前标准煤的效能看,需要消耗92万吨标准煤才能提供足够的电力供中国联通数据中心的能耗需求。而中国电信数据中心年耗电112亿千瓦时,总计年需消耗102.95万吨标准煤。 rnrn  从全球范围来看,信息和通信技术的总耗电量大约占全球耗电总量的8%。把世界上所有云计算中心的耗电量统计在一起的话,会出现惊人的结果。 rnrn  德国联邦议院互联网和数字社会研究委员会的统计结果显示,2010年,信息通讯技术领域(包括终端设备、网络、计算中心)消耗的能源占据了德国总能耗的11%。 rnrn  服务商采取措施降低能耗 rnrn  政府和企业对数据中心能耗问题的日趋关注,要求采取更多前瞻性措施,降低数据中心的能耗。例如,惠普等业界巨头和一家清洁能源创业公司在开发能降低数据中心能耗的技术。 rnrn  为了处理由消费者和企业生成的海量数据,数据中心需要消耗大量电能。对数据中心高密度的计算机进行冷却,需要大量能源。 rnrn  芬克表示,“惠普在投巨资开发能提高数据中心运行效率和降低能耗的技术。”去年惠普推出了新款低能耗服务器,能耗比传统服务器低89%。该清洁能源公司已经开发了一项液冷技术,提升数据中心现有设备的运行效率。这项液冷技术使数据中心无需配备高能耗的风扇和空调设备。这家清洁能源公司的创始人彼得·霍普顿说,“清洁能源公司希望通过提高效率和降低成本,大幅降低云计算对资源的影响。 ” rnrn  部分数据中心已经开始使用风能或太阳能等清洁能源。欧洲数据中心公司产品开发主管鲍勃·兰德斯特洛姆解释说,“作为工业规模的能耗大户,通过大量采购清洁能源,数据中心可以对可再生能源提供有力支持。 ”清洁能源占到能耗的九成。 rnrn rnrn  据绿色和平组织称,六大云计算品牌——苹果、Box、Facebook、谷歌、Rackspace和Salesforce,承诺其数据中心将百分之百地使用清洁能源。 rn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试