[转载] python通过adb获取android手机耗电量
参考链接: 从Python中控制台获取输入
把开发者模式打开,激活 adb 调试,然后可以使用以下python代码获取安卓手机的耗电量
# -*- coding: utf-8 -*-
import re
import os
def getSelectDevice():
pip = os.popen('adb devices')
result = pip.read()
devices_split = result.split('\n')
devices = []
for device in devices_split:
if device == '':
continue
devices.append(device)
if len(devices) < 2:
print('设备不存在')
return -1
if len(devices) == 2: # 只有一台设备,直接返回
return devices[1].split('\t')[0]
print("选择你要操作的设备")
for index in range(1,len(devices)):
print("%s:\t%s" % (index,devices[index]))
print("输入编号:")
select=int(input())
selectline = devices[select]
return selectline.split('\t')[0]
def getBatteryInfo(device):
pip = os.popen('adb -s %s shell dumpsys batterystats' % device)
result = pip.buffer.read().decode(encoding='utf8')
return result
def parsePowerInfo(info):
start = 0
try:
start = info.index('Estimated power use')
except Exception:
print('耗电量信息不存在')
return -1
if start < 0:
print('耗电量信息不存在')
return -1
start = info.index('Capacity',start)
end = info.index('\n',start)
result = info[start:end]
capacity = re.findall('\d+\.?\d*', result)
return capacity
def parseResetTimeInfo(info):
start = 0
try:
start = info.index('RESET:TIME:')
except Exception:
print('重置时间不存在')
return -1
if start < 0:
print('重置时间不存在')
return -1
end = info.index('\n',start)
result = info[start:end]
capacity = re.findall('\d+\.?\d*', result)
return capacity
def main():
device = getSelectDevice()
if device == -1:
return
print("正在获取信息...")
betteryinfo = getBatteryInfo(device)
if betteryinfo == -1:
return
print("正在解析信息...")
result = parsePowerInfo(betteryinfo)
if result == -1:
return
print("得出结果:")
print("\t电池容量:%s mA" % (result[0]))
print("\t计算耗电:%s mA" % (result[1]))
print("\t实际耗电:%s mA" % (result[2]))
timeinfo = parseResetTimeInfo(betteryinfo)
if timeinfo == -1:
return
print("重置时间:%s-%s-%s %s:%s:%s" % (timeinfo[0],timeinfo[1],timeinfo[2],timeinfo[3],timeinfo[4],timeinfo[5]))
pass
if __name__ == '__main__':
main()
pass
我这边接入了两个设备的控制台输出:
选择你要操作的设备
1: 192.168.0.103:5555 device
2: 192.168.0.101:5555 device
输入编号:
2
正在获取信息...
正在解析信息...
得出结果:
电池容量:3300 mA
计算耗电:282 mA
实际耗电:396 mA
重置时间:2020-07-20 11:22:37
[转载] python通过adb获取android手机耗电量相关推荐
- android开发获取手机,通过ADB获取Android手机信息,获取手机信息
通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...
- iphone adb android,通过ADB获取Android手机信息
1.获取手机体系信息(CPU,厂商名称等) adbshell"cat/system/build.prop|grep"product"" 2.获取手机体系版别 a ...
- 获取Android手机的分辨率通过ADB命令
获取Android手机的分辨率通过ADB命令 adb shell dumpsys window displays//此命令即可获取 WINDOW MANAGER DISPLAY CONTENTS (d ...
- 通过adb命令获取Android手机的IP地址
要获取Android手机的IP地址,必须先保证你的Android手机已经连接到无线网络(此处的无线网络包括WiFi和WAPI,不包括3G或2G的移动网络). 先执行命令"adb shell ...
- adb 查看屏幕大小_Android应用开发之adb命令如何获取android手机屏幕分辨率
本文将带你了解Android应用开发之adb命令如何获取android手机屏幕分辨率,希望本文对大家学Android有所帮助 #### 1. 通用方法: adb shell dumpsys win ...
- android每个程序的内存大小,如何获取Android手机全部内存和可用内存尺寸
通过读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.M ...
- 获取Android手机总内存和可用内存
在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...
- Appium、adb控制Android手机和实战项目
Appium.adb控制Android手机和实战项目 adb常用命令 Appium中API 元素定位操作API 滑动和拖拽事件(appium<2.0版本) 高级手势TouchAction 手机操 ...
- ADB连接android手机
ADB连接android手机 下载ADB连接工具 adb.exe是android开发包的一个插件,可以在官网上下载LINK. 运行adb.exe软件直接使用DOS命令就行:同时切换执行目录. 我们现在 ...
最新文章
- DevExpress右键菜单使用 zt
- 关于Exchange Server 201数据库故障处理
- “Imperceptible,Robust,and Targeted Adversaria lExamples for Automatic Speech Recognition”
- mysql数据库切换
- 手写自己的MyBatis框架-操作流程
- RE validation in Java EE
- Nginx支持比Apache高并发的原因
- Unable to add window -- token android.os.BinderProxy---Android原生开发工作笔记142
- 罗永浩“重新定义” 的 TNT 黄了?
- 杭电OJ分类题目(4)-Graph
- 子DIV块中设置margin-top时影响父DIV块位置的解决办法
- CDH运维常见问题-cloudera-scm-agent 已死,但 pid 文件存在
- 学术蓝毕业论文答辩PPT模板
- wkhtmltox使用(html转pdf或图片)
- mybatis java 帅帅 2021年5月17日20:36:25
- web自动化:web控件交互操作/多窗口处理/网页frame
- 【深度学习】YOLOv7目标检测模型使用记录 yolov7-tiny
- 招银网络科技算法面试
- 提取基因结构信息linux,求助:哪位高手知道如何通过基因编号提取序列
- linux安全之服务安全
热门文章
- poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)
- python语言map函数及map object at 乱码错误
- (五)Linux之设备驱动模型
- memcpy和memmove的区别以及内存重叠问题
- TVM:使用 Schedule 模板和 AutoTVM 来优化算子
- java高级语言特性,Java高级语言特性之注解
- python获取网页数据对电脑性能_【Python】网页数据爬取实战
- 计算机2级u盘作弊,一种带LED指示灯的计算机考试防U盘作弊装置制造方法及图纸...
- orange pi java_[中文]Orange Pi家族各大成员一览表
- redis-full-check