博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用BatteryHistorian分析和优化应用电量
阅读量:7228 次
发布时间:2019-06-29

本文共 1877 字,大约阅读时间需要 6 分钟。

欢迎Follow我的, 关注我的.

在Android项目中, 较难监控应用的电量消耗, 可是用户却很关心手机的待机时间. 过度耗电的应用, 会遭到用户无情的卸载, 不要存在侥幸心理, 给竞品带来机会. 因此, 我们须要研究应用的耗电量, 并进行优化. 本文解说一下, 是一款由Google提供的Android系统电量分析工具. 在网页中展示手机的电量消耗过程, 输入电量分析文件, 显示消耗情况. 最后提供一些电量优化的方法, 可供參考.

Battery

1. 安装

Battery Historian是Go语言开发, 须要安装Go编译环境.

下载Mac版的, 运行完毕, 检查Go版本号

➜  ~ go versiongo version go1.6 darwin/amd64

.bash_profile中, 设置Go语言变量

#Go Settingsexport GOPATH=/Users/.../Workspace/GoWorkspaceexport GOBIN=/Users/.../Workspace/GoWorkspace/bin

GOPATH源代码地址. GOBIN生成地址, 推荐$GOPATH/bin.

运行source .bash_profile, 应用profile配置.

新建src文件夹, 加入HelloWorld文件hello.go.

package mainimport "fmt"func main() {    fmt.Printf("hello, world\n")}

安装hello.go

go install hello.go

运行

$GOBIN/hello

假设显示hello, world, 即表示安装完毕.


2.

在安装Battery Historian时, 须要提前安装wget.

sudo brew install wget

依照Battery Historian的文档运行操作就可以.

go get -u github.com/golang/protobuf/protogo get -u github.com/golang/protobuf/protoc-gen-gogo get -u github.com/google/battery-historian/...cd $GOPATH/src/github.com/google/battery-historianbash setup.sh# 运行Go脚本, 默认端口9999 go run cmd/battery-historian/battery-historian.go [--port 
]

Command

启动命令

cd $GOPATH/src/github.com/google/battery-historiango run cmd/battery-historian/battery-historian.go [--port 
]

在浏览器中, 输入, 就可以启动电量检測页面.

Webpage

在启动页面时, 可能须要连接VPN, 訪问Google信息.

3. 分析

获取手机的电量文件, 导出到根文件夹, 以备Battery Historian使用.

adb bugreport > bugreport.txt

使用Battery Historian的网页载入bugreport.txt文件.

如遇到一些问题, 又一次提交bugreport.txt文件.

系统状态

System

应用状态(简书)

App


4. 电量优化

依据Battery Historian的电量提示信息, 消耗电量包括

唤醒锁\SyncManager同步管理器\音视频\流量.

优化方式:

(1) 检查所有唤醒锁, 是否存在冗余或者没用的位置.
(2) 集中相关的数据请求, 统一发送; 精简数据, 降低无用数据的传输.
(3) 分析和统计等非重要操作, 能够在电量充足或连接WIFI时进行, 參考.
(4) 精简冗余的服务(Service), 避免长时间运行耗电操作.
(5) 注意定位信息的获取, 使用后及时关闭.


电量优化并非很难, 但须要对业务很熟悉, 了解一些耗电操作的使用情况, 及时优化. 仅仅有给用户精致的体验, 用户才干更加喜欢我们的应用, 这就是服务型社会的本质.

本文地址:

That’s all! Enjoy it!

转载于:https://www.cnblogs.com/gavanwanggw/p/7220478.html

你可能感兴趣的文章
统计当前在线用户数量
查看>>
IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)
查看>>
PHP项目记录
查看>>
.net面试题系列文章七(附答案)
查看>>
FastSocket
查看>>
ionic $ionicSlideBoxDelegate 滑动框事件
查看>>
点击文字,把input type="radio"也选中
查看>>
第一章 Java多线程技能
查看>>
Java 集合系列-第八篇-Map架构
查看>>
springmvc 3.2 @MatrixVariable bug 2
查看>>
React-Native PanResponder手势识别器
查看>>
IOS11 光标错位问题
查看>>
如何设计用户登录
查看>>
linux安装mysql5.7.19
查看>>
Zookeeper+ActiveMQ 集群实现
查看>>
加权有向图问题2----多源最短路径问题(Floyd算法)和关键路径算法
查看>>
logback logback.xml常用配置详解(三) <filter>
查看>>
KgMall B2B/B2B2c/C2C版店铺商号初始化
查看>>
Linux内核的ioctl函数学习
查看>>
Liunx Shell入门
查看>>