Android应用耗电量统计,无需USB连接
Android应用耗电量统计一直是一个很头疼的问题,手工统计耗时太长,自动化统计又不是非常精准(执行自动化代码需要通过USB连接,而USB又会充电,这就造成统计数据不准)。后来从前辈那里得知可以通过adb connect来实现无线连接,下面就来说说方法。
1、首先找到一台已经root的手机
2、使手机与PC处于同一个网段
3、下载安装Wireless ADB
4、打开Wireless ADB,勾选Wireless ADB,设置端口(默认5555,被占用时设置)

5、打开pc的CMD窗口,输入adb connect 192.168.1.100:5555 回车(详细IP会在Wireless ADB中显示)
6、连接成功
如果提示not implement,则与其他软件冲突,请尝试关掉豌豆夹、360等软件
下面来执行统计耗电量的代码,由于要统计应用前台操作一小时耗电量,人工点击显然是不现实的,这里用到了monkey来配合测试。这里只演示整个系统的耗电量,单个应用的耗电量dumpsys较为复杂。
#coding=utf-8
'''
Create on 2015-1-7
python 2.7 for window
@auther: tangdongchu
'''
import os
import sys
import time
import re
import datetime class monkeyTest(): def __init__(self):
""" init """ #monkey命令,packageName包名,interval间隔时间单位ms ,frequency执行次数
def monkeyApp(self,packageName,interval,frequency):
try:
os.popen("adb shell monkey -p %s --throttle %s --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v %s >e:\monkeylog\monkeyScreenLog.log" % (packageName, interval, frequency),'r')
except Exception,e:
print e #获取当前电量
def getCurrentBattery(self):
try:
for Battery in os.popen('adb shell dumpsys battery','r').readlines():
reList = re.sub('Battery:','',Battery)
reList = reList.replace('\n','')
result = re.search('level', reList)
if result != None :
List = reList.split()
level=List.pop()#删除第i个元素,并返回这个元素。若调用pop()则删除最后一个元素
#print "battery level " + level + "%"
return level
break
except Exception,e:
print e #获取当前时间,用于计算应用运行时间
def getCurrentTime(self):
try:
currentTime = datetime.datetime.now()
return currentTime
except Exception,e:
print e def main():
print """""" if __name__=="__main__": packageName = 'ctrip.android.view'
myApp = monkeyTest()
level = int(myApp.getCurrentBattery())
runtime = myApp.getCurrentTime()
myApp.monkeyApp(packageName,500,2500) #0.5秒点一次,运行2500次
#判断是否执行完成,执行完成后统计耗电量
for i in range(1, 1000000):
monkeylog = open('E:\monkeylog\monkeyScreenLog.log')
try:
temp = monkeylog.read( )
finally:
monkeylog.close( )
if temp.count('Monkey finished')>0:
level = int(myApp.getCurrentBattery())-level
runtime = myApp.getCurrentTime()-runtime
break
else:
time.sleep(2)
print "run time " + str(runtime)
print "use battery" + str(level) + "%"
Android应用耗电量统计,无需USB连接的更多相关文章
- 深入浅出Android App耗电量统计
前言 在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没公开“电量统计”API或文档……额,是的,仅没有公开,并不是没有.平时在手机“设置- 电量”看到的数据 就是系统调用内 ...
- [Android] 深入浅出Android App耗电量统计
reference to : http://www.cnblogs.com/hyddd/p/4402621.html 前言 在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没 ...
- Android性能专项测试之耗电量统计API
版权声明:本文为Doctorq原创文章,未经博主允许不得转载. https://blog.csdn.net/qhshiniba/article/details/49155979 参考文章:Androi ...
- Android - 设置adb的usb连接配置
设置adb的usb连接配置 本文地址: http://blog.csdn.net/caroline_wendy 把须要測试的手机连接入电脑.通过系统查找USB连接配置,找到厂商ID: 把ID加入进ad ...
- 用代码实现断开Android手机USB连接【转】
本文转载自:https://blog.csdn.net/phoebe_2012/article/details/47025309 用代码实现断开Android手机USB连接 ...
- ubuntu下USB连接Android手机
初始工作:将Android手机通过usb连接到电脑,之后点击VM-Removable Devices-google Android - Connect,即可. 若通过usb连接到电脑,Removabl ...
- Android studio USB连接失败
Android studio USB连接失败,可能是因为adb的端口被占了,此时在其自带的cmd中输入netstat -aon|findstr "5037",并且启动任务管理器关掉 ...
- Chrome OS 更新新版本可让Linux访问USB连接的Android设备
谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75.本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Lin ...
- Android配置----小米手机通过wifi连接ADB调试Android应用
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
随机推荐
- Google Optimization Tools实现员工排班计划Scheduling【Python版】
上一篇介绍了<使用.Net Core与Google Optimization Tools实现员工排班计划Scheduling>,这次将Google官方文档python实现的版本的完整源码献 ...
- JAVA与DOM解析器提高(DOM/SAX/JDOM/DOM4j/XPath) 学习笔记二
要求 必备知识 JAVA基础知识.XML基础知识. 开发环境 MyEclipse10 资料下载 源码下载 sax.dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无 ...
- 前端组件化Polymer深入篇(1)
在前面的几节里面简单的介绍了一下Polymer的基本功能,但还有一些细节的东西并没有讨论,所有打算花点时间把Polymer的一些细节写一下. new和createElement有区别吗? <sc ...
- Linux系统修改防火墙配置
防火墙配置文件位置 /etc/sysconfig/iptables 需要开放端口,请在里面添加一条内容即可: 1 -A RH-Firewall-1-INPUT -m state --state NEW ...
- android开发学习笔记系列(3)--ScrollView与HorizontalScrollView
ScrollView与HorizontalScrollView 这是一个滚动视图,就是说如果你在你的UI中容不下那么多的内容,且你对自己的UI都已经设置好了px,OK,那么在适应屏幕过程中,我们并不希 ...
- Prometheus+Grafana打造Mysql监控平台
prometheus/node_exporter/mysqld_exporter都是由go语言编写,需要先安装GoLang环境 下载node_exporter(监控服务器的CPU.内存.存储使用情况) ...
- jQuery 各类判断函数汇总
欢迎访问我的github:huanshen,有我的源码解析 常用的判断函数有type,isEmptyObject,isFunction,isWindow,isPlainObject,isArrayli ...
- Python删除文件及进行文件夹压缩
示例效果: 项目编译发布后,删除部分配置文件,然后做成发布文件的压缩包. # -*- coding: UTF-8 -*- import os,sys import zipfile import dat ...
- 南方IT教材反馈
为了进一步提升教材质量,大家可以在底部留言区反馈您发现的任何问题或建议,谢谢! 最终我们将从所有读者中找出幸运读者发放奖品! 好教材也有我的一份功劳!
- 访问 .obj文件,由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
一.错误描述 HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 最可能的原因: 可 ...