使用batteryhistorian分析和优化应用电量

gavanwanggw gavanwanggw     2022-09-09     136

关键词:

欢迎Follow我的GitHub, 关注我的CSDN.

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

技术分享

1. 安装Go

Battery Historian是Go语言开发, 须要安装Go编译环境.
下载Mac版的安装包, 运行完毕, 检查Go版本号

?  ~ go version
go version go1.6 darwin/amd64

.bash_profile中, 设置Go语言变量

#Go Settings
export GOPATH=/Users/.../Workspace/GoWorkspace
export GOBIN=/Users/.../Workspace/GoWorkspace/bin

GOPATH源代码地址. GOBIN生成地址, 推荐$GOPATH/bin.
运行source .bash_profile, 应用profile配置.

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

package main

import "fmt"

func main() {
    fmt.Printf("hello, world
")
}

安装hello.go

go install hello.go

运行

$GOBIN/hello

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


2. Battery Historian

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

sudo brew install wget

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

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

技术分享

启动命令

cd $GOPATH/src/github.com/google/battery-historian
go run cmd/battery-historian/battery-historian.go [--port <default:9999>]

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

技术分享

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

3. 分析

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

adb bugreport > bugreport.txt

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

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

系统状态

技术分享

应用状态(简书)

技术分享


4. 电量优化

依据Battery Historian的电量提示信息, 消耗电量包括
唤醒锁SyncManager同步管理器音视频流量.

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


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

本文地址: http://blog.csdn.net/caroline_wendy/article/details/50769915

That’s all! Enjoy it!









电量分析工具batteryhistorian的配置及使用

1、Buildingfromsourcecode(通过各种配置后从源码构建)官方流程看似很麻烦,但一上手,很快就搞定,让我情何以堪。ps:以下均是参考官方及网友做的copy https://github.com/google/battery-historian#building-from-source-code http://blog.csdn.ne... 查看详情

耗电优化:batteryhistorian

作者:隋胖胖LoveFat链接:https://www.jianshu.com/p/c223c95744d3BatteryHistoriangithub地址:https://github.com/google/battery-historian本文介绍在mac/windows上搭建BatteryHistorian的基本环境,以及如何采集安卓电 查看详情

使用 for 循环和过滤器优化代码

】使用for循环和过滤器优化代码【英文标题】:Optimizingcodewithforloopandfilter【发布时间】:2015-11-1818:49:18【问题描述】:我有一个庞大的数据集,我针对这个问题进行了简化,我尝试将一个函数应用于它的每一行,作为一个特定... 查看详情

linux性能优化的全景指南

...度:直接影响了产品终端的用户体验系统资源角度:资源使用率、饱和度等性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。性能分析实际上就是找出应用或系统的瓶颈,设法去避免或... 查看详情

手机短视频应用--用户行为分析和优化指南

根据趣拍云的数据统计分析,日前所有接入趣拍短视频SDK的App用户每天的鉴权请求平均在1300万次左右,见下图:   趣拍云目前监测到的App短视频拍摄应用,日均启动次数在131133次,日均拍摄完成次数40608次。见下图:   ... 查看详情

app电量测试之batteryhistorian介绍

BatteryHistorian  batteryhistorian是一款用于检测与电池有关的信息和事件的工具,运行在Android5.0Lollipop(APIlevel21)及其之后。它会生成一张具有时间坐标的图纸,用户可以查看各种事件耗电时间。安装一、首先安装Go编程语言点... 查看详情

C++ 分析和优化

】C++分析和优化【英文标题】:C++profilingandoptimization【发布时间】:2013-02-2510:28:04【问题描述】:我的应用程序性能存在一些问题。我在***上找到了这个答案:https://***.com/a/378024/5363我喜欢。我不太明白的一点是代码优化和分析... 查看详情

android进阶——性能优化之电量优化全攻略及实战小结(代码片段)

...具。当测试或者其他人反馈耗电问题时,bugreport结合BatteryHistorian是最好的排查方法。//7.0和7.0以后$adbbugreportbugreport.zip//6.0和6.0之前:$adbbugreport>bugreport.txt//通过historian图形化展示结果pythonhistorian.py-abugreport.txt>battery.html一... 查看详情

分析/优化谷歌应用引擎应用程序的最佳方法是啥?

...】:目前我正在开发新的AppEngine应用程序。不幸的是,即使用户数量相对较少,我的应用程序似乎也使用了大量资源。所以我需要确定它的瓶颈并优化它们 查看详情

vue.js应用性能优化,给你专业的分析+解决方案(代码片段)

...2.基于路线的代码拆分3.Vuejs预加载组件4.优化第三方库5.使用浏览器缓存6.优化和压缩图像结论最后 假设您在开发整个Vue应用程序方面非常努力.js。但没有优先考虑其性能:现 查看详情

ios性能优化:instruments使用实战

...能优化和一些分析性能消耗的技巧,小结如下。Instruments使用技巧关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments确实是一个很强大的工具,用它来收集关... 查看详情

使用visualvm进行性能分析及调优

...为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。VisualVM是一款免费的性能分析工具。它通过jvmstat、JMX、SA(Serviceabi 查看详情

flinksql性能优化(代码片段)

...MiniBatch聚合Local-Global聚合拆分distinct聚合在distinct聚合上使用FILTER修饰符关注我的公众号【宝哥大数据】,更多干货SQL是数据分析中使用最广泛的语言。FlinkTableAPI和SQL使用户能够以更少的时间和精力定义高效的流分析应用程... 查看详情

转载androidapp应用启动分析与优化

前言:昨晚新版本终于发布了,但是还是记得有测试反馈app启动好长时间也没进入app主页,所以今天准备加个班总结一下App启动那些事!app的启动方式:1.)冷启动 当启动应用时,后台没有该应用的进程,这时系统会重新创... 查看详情

c++应用程序性能优化——c++语言特性性能分析(代码片段)

C++应用程序性能优化(三)——C++语言特性性能分析一、C++语言特性性能分析简介通常大多数开发人员认为,汇编语言和C语言比较适合编写对性能要求非常高的程序,C++语言主要适用于编写复杂度非常高但性能要求并不是很高... 查看详情

mongodb之使用explain和hint性能分析和优化(代码片段)

一:explain演示1.构建数据为了方便演示,我需要createtendatatoinventory,而且还是要在noindex的情况下,比如下面这样:1db.inventory.insertMany([2"_id":1,"item":"f1",type:"food",quantity:500,3"_id":2,"item":"f2",type:"food",quantity:100,4 查看详情

skywalking(代码片段)

...ent系统。他被用于追踪、监控和诊断分布式系统,特别是使用微服务架构,云原生或容积技术。提供以下主要功能:分布式追踪和上下文传输应用、实例、服务性能指标分析根源分析应用拓扑分析应用和服务依赖分析慢服务检测... 查看详情

学习tracelogging事件,使用etw记录,并使用wpa捕获和分析跟踪(代码片段)

...有不同的期望。若要检查特定交互的确切持续时间,可以使用 Windows性能分析器(WPA) 捕获和分析跟踪。分析跟踪并查找改进机会。学习使用TraceLogging创建EventSource,创建EventSource类的实例。第一个构造函数参数标识此提供... 查看详情