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

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

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

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

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

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