Android性能优化之Battery-Historian(一)

2024-02-26 11:08

本文主要是介绍Android性能优化之Battery-Historian(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在APP开发到一定阶段后,电量优化就是一个不得不面临的问题,追踪和分APP的电量使用情况使我们解决这个问题的必经之路;现在虽然有很多电量分析软件,但我们在此篇选择Google官方在Google I/O 15 中发布的 Battery Historian 新版本 Battery Historian 2.0 电量分析工具;我们先来看下Battery Historian 2.0 在Windows环境下的搭建过程(虽然Google在Github上已经说明的安装过程,但是实际安装过程中可能也会有所不同)。

步骤:

1、新版的Battery Historian是使用Go语言编写的,所以我们需要先安装Go开发环境 ,下载地址http://golang.org/doc/install ,我选择的是go1.6.3.windows-amd64.msi版本,之所以使用msi版,是安装方便,默认会帮我们配置好环境变量;

注:安装过程中,可以让我们自己选择安装目录,建议不要更换,使用默认的“C:\Go”就好,我尝试改过,发现虽然环境变量里的配置也是我改过的路径,但是,在cmd下还是无法直接使用go命令,原因不知;

最后确认一下环境变量GOROOT为C:\Go\,在Path中增加了项C:\Go\bin。



然后打开一个新的命令窗口,敲入go help,如下则说明go环境已正常;


然后配置Go的工作目录,我在D盘下新建了D:\Go\workspace\目录作为工作目录;

在命令窗口敲入命令:

C:\Go\bin>set GOPATH=D:\Go\workspace
为了检测Go环境是否能够正常编译运行,可以参照Go官方的指导:

在workspace目录下新建 src/github.com/user/hello目录,如果有自己的GitHub账户,可以将user换成自己账户的名称;然后再在hello文件加下创建hello.go文件,并写入下面的代码:

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

然后在命令窗口敲入如下命令:

C:\> go install github.com/user/hello

再执行命令:

C:\> %GOPATH%\bin\hello

会在窗口中打印出:

hello, world
说明我们Go环境一切都ok了;



2、如果没有Git,去安装Git;安装过程就不赘述了,最后要确保在环境变量Path中添加了Git的安装目录如下:


3、安装Python2.7(不是Python3.X),下载Python;安装过程比较简单,一路默认就行了,最后将Python的安装目录配置到环境变量path中,如下:



4、安装Java环境,安装和配置过程就不多说了,开发Android的电脑都已经装了;下载JavaSE;

5、上面一切就绪之后,就可以开始正式导入和使用Battery Historian项目了;

首先将项目clone到go的工作目录:

C:\Go\bin>go get -d -u github.com/google/battery-historian/...
项目导入后,在命令窗口,将当前目录切换到目录\workspace\src\github.com\google\battery-historian,如下:



然后输入命令:

go run setup.go

这个过程要慢些,需要下载一下项目依赖的第三方包;

等完成后输入命令:

go run cmd\battery-historian\battery-historian.go


出现如上图变运行成功,项目服务默认监听9999端口;

然后我在浏览器中输入http://localhost:9999/便可出现如下界面:


截至目前位置,Battery Historian项目算是跑起来了,下篇再来探讨怎么使用;

这篇关于Android性能优化之Battery-Historian(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/748654

相关文章

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义