• Android 电量优化


    应公司要求,使用混合开发app,背景动画使用的是js+h5,但是在app运行时,高耗电,弹出耗电高弹框,这样很不友好;

    没办法,谁让咱们是苦逼的攻城狮,只能去分析原因:

    首先搭建docker + battery historian环境(不了解的可以去度娘一下,有时间我会弄一篇环境搭建的);

    工具准备好了开始撸了;

    adb shell 

    top -m 5

    运行后 发现 耗电前五名 app高举榜首(汗颜);

    分析数据发现 在H5动画运行界面。CPU占用率始终是在30%左右,大家都知道 CPU运行时很耗电的,所以大致原因已发下;

    接着导出adb bugreport > bugreport.txt

    分析bugreport报告,发现传感器和屏幕 耗电比较多;其他暂时无发现;

    暂时感觉再无其他 ;最终分析高耗电原因结果是:H5动画占用CPU过高、传感器调用频繁、视屏播放时长、屏幕常亮这几个原因造成;

    原因已经查到,那就解决吧:

    1.H5动画 占用CPU过高

      原因是因为H5动画重绘,造成webview重绘,也就造成界面重绘,这样是很让费CPU和GPU  造成高耗电的;

      解决办法:

    方法一:把H5动画换成gif,然后放在服务器上,不让H5重绘;(不是太建议,因为很多逻辑都是js开发,所有小伙伴不太想采用方法二)

    方法二:把H5动画换成gif,直接设为界面背景图(个人感觉这是最好的方式,当然需要注意GIF的大小,最好不要超过1M)

    通过上述方法,发现CPU 占用率下降了原来的1/3,这样耗电就会减少了

    2.传感器调用频繁

    原因是传感频繁调用造成软硬件交互,这会造成高耗电

    解决办法:

    优化采集参数,降低传感器调用频次等;

    3.视频播放+屏幕常亮

    这个 因为app性质决定,本来就是播放视频的app,这是没法降低的,所以小编就放弃向这个方向优化的目标;

    总上处理后,耗电量明显降低;

    嘿嘿:有不当之处,欢迎交流指正,谢谢!

  • 相关阅读:
    问题解决:访问自己搭建网页时出现:此地址使用了一个通常用于网络浏览以外的端口。出于安全原因,Firefox 取消了该请求。
    cracer教程5----漏洞分析(下)
    cracer教程3----信息收集
    linux3
    pwdump7的用法及其hash值解密
    maven scope含义的说明
    Spark2.0协同过滤与ALS算法介绍
    Jmeter压力测试工具安装及使用教程
    过滤器(Filter)与拦截器(Interceptor )区别
    @Value()读取配置文件属性,读出值为null的问题
  • 原文地址:https://www.cnblogs.com/yi-snow-W/p/10916239.html
Copyright © 2020-2023  润新知