Android app专项测试之耗电量测试

 前言

耗电量指标

待机时间成关注目标

提升用户体验

通过不同的测试场景,找出app高耗电的场景并解决

01、需要的环境准备

1、python2.7(必须是2.7,3.X版本是不支持的)
2、golang语言的开发环境
3、Android SDK
此三个的环境搭建这里就不详细说了,自行在网上找资料吧

02、battery-historian服务搭建

1、克隆安装包

git clone https://github.com/google/battery-historian.git

2、下载battery-historian的代码和依赖
go get -d -u github.com/google/battery-historian/…

3、修改setup.go文件的参数
closureCompilerVersion = “20170409”
值修改为
closureCompilerVersion = “20190513”
因为版本不一样,编译会失败,所以升级到稳定版本

4、切换到setup.go所在的目录,进行编译

go run setup.go

在这里插入图片描述

5、启动battery-historian服务
go run cmd/battery-historian/battery-historian.go在这里插入图片描述 

6、验证是否安装成功http://localhost:9999/,出现如下,则ok在这里插入图片描述 

03、进行耗电量数据收集

1、清理耗电量数据

adb kill-server

adb start-server

adb shell dumpsys batterystats --reset

adb shell dumpsys batterystats --enable full-wake-history

2、运行测试用例/手工操作
使用monkey或appium来操作想要被测试的Android应用,最好就持续几个钟,效果才比较明显,这里具体就不展开详细说明了

3、收集数据
Android 7.0以上版本使用的命令 :adb bugreport bugreport.zipAndroid 6.0 或以下使用的命令:adb bugreport > bugreport.txt在这里插入图片描述
在这里插入图片描述

04、上传数据,进行数据分析

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/75957.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 36题:有效的数独

题目 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图&#xff…

8.14 ARM

1.练习一 .text 文本段 .global _start 声明一个_start函数入口 _start: _start标签,相当于C语言中函数mov r0,#0x2mov r1,#0x3cmp r0,r1beq stopsubhi r0,r0,r1subcc r1,r1,r0stop: stop标签,相当于C语言中函数b stop 跳转到stop标签下的第一条…

如何给 Keycloak 用户加上“部门”、“电话”等自定义属性

Keycloak 是一款开源的用户认证和授权软件。在默认安装情况下,它只给新创建的用户提供了 email 属性,但是在许多应用场景中,客户都会要求给新创建的用户增加诸如“部门”、“电话”等自定义属性。 本文会介绍如何给 keycloak 中新创建的用户…

应用 - 行为分析篇

前言 以商超项目为例,为了更好的给用户提供服务,我们需要了解到用户喜欢什么,我的产品中哪些是用户感兴趣的,哪些是不感兴趣的。我应该在推荐栏目中给用户推荐的内容是哪些。 基于这些业务场景,我们需要一套行为分析…

认识Transformer:入门知识

视频链接: https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目录 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …

领航优配:券商板块热度不减,华林证券涨停,中银证券等走高

券商板块15日午后再度走强,截至发稿,华林证券涨停,中银证券涨超7%,兴业证券涨超3%,东方财富、华泰证券、太平洋等涨逾2%。 组织表示,当前券商PB估值为1.36倍,位于2020年以来的34%分位点附近&…

分类预测 | MATLAB实现EVO-CNN多输入分类预测

分类预测 | MATLAB实现EVO-CNN多输入分类预测 目录 分类预测 | MATLAB实现EVO-CNN多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现EVO-CNN多输入分类预测 2.代码说明:量谷优化卷积神经网络的数据分类预测:要求于Matlab …

运维监控学习笔记9

2、画出拓扑图的小案例: 3、在连接的线上显示网络流量,使用了一个简单的公式: {nginx-server:net.if.out[ens33].last(0)} 4、在screens中显示nginx的状态页面: 5、zabbix报警: 发送邮件的选项。Email可以使用&#xf…

大语言模型之二 GPT发展史简介

得益于数据、模型结构以及并行算力的发展,大语言模型应用现今呈井喷式发展态势,大语言神经网络模型成为了不可忽视的一项技术。 GPT在自然语言处理NLP任务上取得了突破性的进展,扩散模型已经拥有了成为下一代图像生成模型的代表的潜力&#x…

C语言快速回顾(一)

前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》,结合我自己的工作学习经历,我准备写一个音视频系列blog。C/C是音视频必…

【C语言】memset()函数

一.memset()函数简介 我们先来看一下cplusplus.com - The C Resources Network网站上memset()函数的基本信息: 1.函数功能 memset()函数的功能是:将一块内存空间的每个字节都设置为指定的值。 这个函数通常用于初始化一个内存空间,或者清空一个内存空间…

【Linux】多线程1——线程概念与线程控制

文章目录 1. 线程概念什么是线程Linux中的线程线程的优点线程的缺点线程的独立资源和共享资源 2. 线程控制Linux的pthread库用户级线程 📝 个人主页 :超人不会飞)📑 本文收录专栏:《Linux》💭 如果本文对您有帮助&…

WSL2 Ubuntu子系统安装OpenCV

文章目录 前言一、基本概念二、操作步骤1.下载源码2.安装依赖3.运行编译4.配置路径 前言 OpenCV用C语言编写,它的主要接口也是C语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语…

Docker容器与虚拟化技术:Docker容器操作、网络模式

目录 一、理论 1.Docker 容器操作 2.Docker 网络 二、实验 1.Docker 容器操作 2.Docker 网络 2.Docker 的网络模式 三、问题 1. 批量删除所有容器未生效 2.使用bridge模式指定IP运行docker报错 3.未显示bridge网络模式名称 四、总结 一、理论 1.Docker 容器操作 &a…

【动画】p60动画蓝图、播放蒙太奇、打包

p60动画蓝图、播放蒙太奇、打包 p60动画蓝图、播放蒙太奇、打包添加动画动画蓝图使模型使用动画蓝图奔跑跳舞蒙太奇 移动打断蒙太奇打包退出游戏 p60动画蓝图、播放蒙太奇、打包 添加动画 右键内容浏览器-》动画-》混合空间1D-》选择新的角色的骨骼 如下图在资产详情修改参数…

克服多语言语音技术的障碍:五大挑战和创新解决方案

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 介绍 在用西班牙语(您的首选语言)向语音助手询问某些内容后,您有多少次不得不暂停,然后用语音助手理解的语言(可能是英语)重述…

离线安装Nginx(rpm方式)

环境:centos7.9 下面将展示通过rpm方式安装Nginx 1.官方下载Nginx rpm包 下载地址 http://nginx.org/packages/ 下载版本根据操作系统版本进行选择,本次操作系统是centos7.9 - 64位系统,所以对应的下载路径是: http://nginx.or…

AI Chat 设计模式:15. 桥接模式

本文是该系列的第十五篇,采用问答式的方式展开,问题由我提出,答案由 Chat AI 作出,灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 如果你是第一次接触桥接模式,那么你会有哪些疑问呢?A.1Q.2 什…

Hlang社区项目说明

文章目录 前言Hlang社区技术前端后端 前言 Hello,欢迎来到本专栏,那么这也是第一次做这种类型的专栏,如有不做多多指教。那么在这里我要隆重介绍的就是这个Hlang这个项目。 首先,这里我要说明的是,我们的这个项目其实是分为两个…

list

目录 迭代器 介绍 种类 本质 介绍 模拟实现 注意点 代码 迭代器 介绍 在C中,迭代器(Iterators)是一种用于遍历容器(如数组、vector、list等)中元素的工具 无论容器的具体实现细节如何,访问容器中的元素的方…