分析和优化应用电量

欢迎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\n")
}

安装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!

时间: 2024-10-10 04:26:12

分析和优化应用电量的相关文章

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

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

mysql性能优化-慢查询分析、优化索引和配置

一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connections 2)      back_log 3)      interactive_timeout 4)      key_buffer_size 5)      query_cache_size 6)      record_buffer_size 7)      read_rnd_buffer

linux服务器的性能分析与优化(十三)

[教程主题]:1.linux服务器的性能分析与优化 [主要内容] [1]影响Linux服务器性能的因素 操作系统级 Ø CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少. 另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲,两个4核的CPU整

1.linux服务器的性能分析与优化

[教程主题]:1.linux服务器的性能分析与优化 [课程录制]: 创E [主要内容] [1]影响Linux服务器性能的因素 操作系统级 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少. 另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲,

新站做SEO的优势分析以及优化假象

很多做SEO的朋友对做新站很发愁,觉得新站没有收录,没有权重,没有外链,什么都没有,干干净净的白手起家很难做.其实换个角度去想,干干净净何尝不是一件好事.宝鸡SEO工作室橙橙同学为大家分析一下新站做SEO的优势分析以及优化假象." 我们都知道人的第一印象很重要.从第一次见面到短时间的相处,就能对一个人做一个简单的评价,这个评价可以说在其他人心里根深蒂固.那么,网站和百度蜘蛛的关系就像交友一样.我们要摸清这个规律,既然是交朋友,那么我们就给它一个好的第一印象.第一印象对人来说无非是穿衣打扮,个人素

《性能测试诊断分析与优化》学习总结(一)

我始终坚信,一本好书,可以改变人的一生,成功一定有方法,失败一定有原因,而我个人认为,失败的最大原因是学习不够.不断学习,活到老,学到老. 作为软件测试人员来说,或多或少都会对性能测试有点感兴趣,我个人认为,软件性能与软件功能的最大兴趣在于从用户体检的角度,感受软件的质量度量,如响应时间.准确性.成功率等. 性能测试的目标是通过制定性能测试策略.性能测试计划.执行性能测试,并对性能问题进行定位分析和优化.影响软件系统的性能主要因素包括:硬件设施.网络.操作系统.并发用户数.数据库数据量.中间件等

怎样粗略分析关键词优化难度

作为一个seo人员,判断某关键词优化难度是必备技能,而且跟个人经验有很大关系,下面列举的判断方法不足之处欢迎拍砖.1.域龄.虽说超过一年以上的站都可以说是老站,但是用一个纯新站在个把月超过它的某些中等难度的词还是很有信心的.网站年龄其实对优化起着很重要的作用,从收录和建立信任方面最能体现.尤其是一些域龄达到几年甚至十几年的,要做好打长期硬仗的准备.但作为个人站长来说用一个新站超过一两三年的网站还是没问题的,当然不是特难的词.2.网站域名是否包含了你要优化的关键词.这点有人觉得没必要,也许他们是从

【转】由浅入深探究mysql索引结构原理、性能分析与优化

摘要: 第一部分:基础知识 第二部分:MYISAM和INNODB索引结构 1.简单介绍B-tree B+ tree树 2.MyisAM索引结构 3.Annode索引结构 4.MyisAM索引与InnoDB索引相比较 第三部分:MYSQL优化 1.表数据类型选择 2.sql语句优化 (1)     最左前缀原则 (1.1)  能正确的利用索引 (1.2)  不能正确的利用索引 (1.3)  如果一个查询where子句中确实不需要password列,那就用“补洞”. (1.4)  like (2)

一:MySQL数据库的性能的影响分析及其优化

MySQL数据库的性能的影响分析及其优化 MySQL数据库的性能的影响 一. 服务器的硬件的限制 二. 服务器所使用的操作系统 三. 服务器的所配置的参数设置不同 四. 数据库存储引擎的选择 五. 数据库的参数配置的不同 六. (重点)数据库的结构的设计和SQL语句 1). 服务器的配置和设置(cpu和可用的内存的大小) 1.网络和I/O资源 2.cpu的主频和核心的数量的选择 (对于密集型的应用应该优先考虑主频高的cpu) (对于并发量大的应用优先考虑的多核的cpu) 3.磁盘的配置和选择 (