网络优化及电量优化

2023-03-14  本文已影响0人  xyzkaye

网络优化

网络优化维度

流量维度
质量维度

网络优化工具

流量统计

TraticStats //系统重启后的流量数据统计
TrafficStats.getUidRxBytes(int uid)
TrafficStats.getUidTxBytes(int uid)
TrafficStats.getTotalRxBytes()
TrafficStats.getTotalTxBytes()
trafficStats.png

流量优化

Protocol Buffers:强大,灵活,但是对内存的消耗会比较大,并不是移动终端上的最佳选择;
Nano-Proto-Buffers: 基于Protocol,为移动终端做了特殊的优化,代码执行效率更高,内存使用效率更佳
FlatBuffers:这个开源库最开始是由Google研发的,专注于提供更优秀的性能

质量优化

电量优化

电量消耗场景

• 在很多时候,根本就不关注电量的优化
• 硬件消耗电量来执行任务的过程叫做超时电流消耗
• 电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情,因此只能使用第三方检测电量的设备

待机状态耗电:
当设备处于待机状态时消耗的电量是极小的,比如Nexus5,打开飞行模式,可以待机接近一个月

屏幕唤醒耗电:
屏幕唤醒(Screen on)会出现电量使用高风险

CPU唤醒耗电:
CPU唤醒会出现电量使用高峰线,后续正常消耗,较为平稳

蜂窝式无线耗电:
1:发送出现耗电高峰
2:接收出现耗电高峰
3:保持唤醒耗电均衡

消耗维度
• 平均只有30%左右的电量是被程序最核心的方法例如绘制图片,摆放布局等等所使用掉
• 剩余70%是被上报数据,检查位置信息,定时检索等使用掉的

BATTERY-HISTORIAN使用

工具安装地址
https://github.com/google/battery-historian

Docker环境安装 (可能需要梯子)
• 安装Docker Community Edition
• 运行Battery Historian镜像
• docker -- run -p <port>:9999 gcr.io/android-battery-historian/stable:3.0 --port9999

导出电量信息
• adb shell dumpsys batterystats --reset
• adb shell dumpsys batterystats --enable full-wake-history

导出电量信息
• 7.0: adb bugreport bugreport.zip
• 6.0: adb bugreport > bugreport.txt
• 上传bugreport到http://locathost:9999

截图2212143.png

指标含义
• battery_level:电量
• plugged:充电状态,充电时间
• screen:屏幕是否点亮
• top:当前运行app
• wake_ lock: wake lock模块工作时间
• cpu running:cpu执行状态
• JobScheduler:JobScheduler执行状态
• wifi:wifi模块相关状态

电量记录

Android在进行电量统计时,并不是采用直接记录电流消耗量的方式,而是跟踪硬件模块在不同状态下的使用时间,收集一些可用信息,用来近似的计算出电池消耗量

frameworks/base/core/res/res/xml/power_profile.xml记录着各个模块单位时间的耗电量,由厂商定义

电量优化方式

上一篇下一篇

猜你喜欢

热点阅读