把開發者模式開啟,啟用 adb 除錯,然後可以使用以下python**獲取安卓手機的耗電量
我這邊接入了兩個裝置的控制台輸出:# -*- coding: utf-8 -*-
import re
import os
defgetselectdevice()
: pip = os.popen(
'adb devices'
) result = pip.read(
) devices_split = result.split(
'\n'
) devices =
for device in devices_split:
if device =='':
continue
iflen
(devices)
<2:
('裝置不存在'
)return-1
iflen
(devices)==2
:# 只有一台裝置,直接返回
return devices[1]
.split(
'\t')[
0]print
("選擇你要操作的裝置"
)for index in
range(1
,len
(devices)):
("%s:\t%s"
%(index,devices[index]))
("輸入編號:"
) select=
int(
input()
) selectline = devices[select]
return selectline.split(
'\t')[
0]defgetbatteryinfo
(device)
: pip = os.popen(
'adb -s %s shell dumpsys batterystats'
% device)
result = pip.
buffer
.read(
).decode(encoding=
'utf8'
)return result
defparsepowerinfo
(info)
:
start =
0try
: start = info.index(
'estimated power use'
)except exception:
('耗電量資訊不存在'
)return-1
if start <0:
('耗電量資訊不存在'
)return-1
start = info.index(
'capacity'
,start)
end = info.index(
'\n'
,start)
result = info[start:end]
capacity = re.findall(
'\d+\.?\d*'
, result)
return capacity
defparseresettimeinfo
(info)
:
start =
0try
: start = info.index(
'reset:time:'
)except exception:
('重置時間不存在'
)return-1
if start <0:
('重置時間不存在'
)return-1
end = info.index(
'\n'
,start)
result = info[start:end]
capacity = re.findall(
'\d+\.?\d*'
, result)
return capacity
defmain()
: device = getselectdevice(
)if device ==-1
:return
("正在獲取資訊..."
) betteryinfo = getbatteryinfo(device)
if betteryinfo ==-1
:return
("正在解析資訊..."
) result = parsepowerinfo(betteryinfo)
if result ==-1
:return
("得出結果:"
("\t電池容量:%s ma"
%(result[0]
("\t計算耗電:%s ma"
%(result[1]
("\t實際耗電:%s ma"
%(result[2]
))timeinfo = parseresettimeinfo(betteryinfo)
if timeinfo ==-1
:return
print(%
(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
通過ADB命令獲取當前activity
自動化測試需要獲得當前的activity,來判斷處於的頁面是否正確 hierarchy view經常連不上真機,無法獲得activity,所以直接用 adb命令來檢視當前執行的 activity就可以 方法一 1 cmd命令中輸入 adb shell進入shell命令模式 2 shell中輸入 lo...
通過網路使用ADB
adb kill server 本文介紹如何通過網路 尤指無線網路 與android的adbd進行連線。原理 adb server 計算機上的乙個服務程序,程序名為adb adb daemon android 手機上的乙個服務程序,程序名為adbd adb client 你可以認為是計算機上的乙個終...
通過網路訪問adb
adb支援通過遠端訪問,這樣就可以使用wifi來連線了,而且可以省下usb口來作為他用。具體步驟如下 第一種方法 1.用usb連線手機,終端輸入adb shell.2.在shell中輸入setprop service.adb.tcp.port 5555 3.然後會回到pc shell。輸入adb c...