zoukankan      html  css  js  c++  java
  • 使用BatteryHistorian分析和优化应用电量

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

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

    Battery

    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>]

    Command

    启动命令

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

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

    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时进行, 參考JobScheduler.
    (4) 精简冗余的服务(Service), 避免长时间运行耗电操作.
    (5) 注意定位信息的获取, 使用后及时关闭.


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

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

    That’s all! Enjoy it!

  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7220478.html
Copyright © 2011-2022 走看看