参考链接: 从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手机耗电量相关推荐

  1. android开发获取手机,通过ADB获取Android手机信息,获取手机信息

    通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...

  2. iphone adb android,通过ADB获取Android手机信息

    1.获取手机体系信息(CPU,厂商名称等) adbshell"cat/system/build.prop|grep"product"" 2.获取手机体系版别 a ...

  3. 获取Android手机的分辨率通过ADB命令

    获取Android手机的分辨率通过ADB命令 adb shell dumpsys window displays//此命令即可获取 WINDOW MANAGER DISPLAY CONTENTS (d ...

  4. 通过adb命令获取Android手机的IP地址

    要获取Android手机的IP地址,必须先保证你的Android手机已经连接到无线网络(此处的无线网络包括WiFi和WAPI,不包括3G或2G的移动网络). 先执行命令"adb shell ...

  5. adb 查看屏幕大小_Android应用开发之adb命令如何获取android手机屏幕分辨率

    本文将带你了解Android应用开发之adb命令如何获取android手机屏幕分辨率,希望本文对大家学Android有所帮助 #### 1.   通用方法: adb shell dumpsys win ...

  6. android每个程序的内存大小,如何获取Android手机全部内存和可用内存尺寸

    通过读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.M ...

  7. 获取Android手机总内存和可用内存

    在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...

  8. Appium、adb控制Android手机和实战项目

    Appium.adb控制Android手机和实战项目 adb常用命令 Appium中API 元素定位操作API 滑动和拖拽事件(appium<2.0版本) 高级手势TouchAction 手机操 ...

  9. ADB连接android手机

    ADB连接android手机 下载ADB连接工具 adb.exe是android开发包的一个插件,可以在官网上下载LINK. 运行adb.exe软件直接使用DOS命令就行:同时切换执行目录. 我们现在 ...

最新文章

  1. DevExpress右键菜单使用 zt
  2. 关于Exchange Server 201数据库故障处理
  3. “Imperceptible,Robust,and Targeted Adversaria lExamples for Automatic Speech Recognition”
  4. mysql数据库切换
  5. 手写自己的MyBatis框架-操作流程
  6. RE validation in Java EE
  7. Nginx支持比Apache高并发的原因
  8. Unable to add window -- token android.os.BinderProxy---Android原生开发工作笔记142
  9. 罗永浩“重新定义” 的 TNT 黄了?
  10. 杭电OJ分类题目(4)-Graph
  11. 子DIV块中设置margin-top时影响父DIV块位置的解决办法
  12. CDH运维常见问题-cloudera-scm-agent 已死,但 pid 文件存在
  13. 学术蓝毕业论文答辩PPT模板
  14. wkhtmltox使用(html转pdf或图片)
  15. mybatis java 帅帅 2021年5月17日20:36:25
  16. web自动化:web控件交互操作/多窗口处理/网页frame
  17. 【深度学习】YOLOv7目标检测模型使用记录 yolov7-tiny
  18. 招银网络科技算法面试
  19. 提取基因结构信息linux,求助:哪位高手知道如何通过基因编号提取序列
  20. linux安全之服务安全

热门文章

  1. poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)
  2. python语言map函数及map object at 乱码错误
  3. (五)Linux之设备驱动模型
  4. memcpy和memmove的区别以及内存重叠问题
  5. TVM:使用 Schedule 模板和 AutoTVM 来优化算子
  6. java高级语言特性,Java高级语言特性之注解
  7. python获取网页数据对电脑性能_【Python】网页数据爬取实战
  8. 计算机2级u盘作弊,一种带LED指示灯的计算机考试防U盘作弊装置制造方法及图纸...
  9. orange pi java_[中文]Orange Pi家族各大成员一览表
  10. redis-full-check