获取包名
def get_package_name(udid):
pattern = re.compile(r"[a-zA-Z0-9\.]+/.[a-zA-Z0-9\.]+")
getPackNameCmd = "adb -s" + " " + udid + " " + "shell dumpsys window w |findstr \/ |findstr name="
print(getPackNameCmd)
packageText = subprocess.Popen(getPackNameCmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.read()
packageInfo = (str(packageText)).split('=')[2]
packageName = pattern.findall(packageInfo)[0].split('/')[0]
return packageName
获取活动名
def get_activity_name(udid):
pattern = re.compile(r"[a-zA-Z0-9\.]+/.[a-zA-Z0-9\.]+")
getActivityCmd = "adb -s" + " " + udid + " " + "shell dumpsys window w |findstr \/ |findstr name="
packageText = subprocess.Popen(getActivityCmd, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.PIPE).stdout.read()
packageInfo = (str(packageText)).split('=')[2]
print("当前包信息", packageInfo)
activityName = pattern.findall(packageInfo)[0].split('/')[1]
print("当前活动名", activityName)
return activityName
获取apk包内存占用情况
def mem(udid):
memCmd = 'adb -s '+ udid + ' shell dumpsys meminfo ' + get_package_name(udid)
menTextList = subprocess.Popen(memCmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.readlines()
for memInfo in menTextList:
if len(memInfo.split())>0 and memInfo.split()[0].decode() == "TOTAL":
mem = int(memInfo.split()[1].decode())//1024
print("内存占用",mem, "M")
return mem
获取cpu占用率
def cpu(udid):
cpuCmd = 'adb -s ' + udid + ' shell top -n 1| findstr ' + get_package_name(udid)
print ("cpu占用命令",cpuCmd)
cpuText = subprocess.Popen(cpuCmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.readlines()
print("cpu信息", cpuText)
if len(cpuText) >= 1:
cpu = str(cpuText[0].split()[4])
cpu = cpu.split("'")[1]
print("cpu",cpu)
获取电池温度,剩余电量和实时温度
def gettem(udid):
batteryCmd = 'adb -s ' + udid + ' shell "dumpsys battery | grep "level:""'
batteryText = subprocess.Popen(batteryCmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.read()
batteryTemperatureCmd = 'adb -s ' + udid + ' shell "dumpsys battery | grep "temperature:""'
batteryTemperatureText = subprocess.Popen(batteryTemperatureCmd,stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.read()
battery = int(batteryText.split()[1])
print("剩余电量", battery)
batteryTemp = int(batteryTemperatureText.split()[1])/10
print("电池温度",batteryTemp)
cpuTemperatureText = subprocess.Popen('adb -s ' + udid + ' shell cat /sys/class/thermal/thermal_zone9/temp',
stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.read()
cpuTemp = int(cpuTemperatureText.split()[0])/1000
print("cpu温度",cpuTemp)