http://www.jb51.net/article/57208.htm
# coding=utf-8
import subprocess
import time
import os
import threading
import platform
import sys
# from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
# from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
def subprocess_demo():
# cmd="dumpsys SurfaceFlinger --latency-clear --latency com.android.browser/com.android.browser.BrowserActivity"
cmd = "ls"
subps = subprocess.Popen(
cmd,
# executable='/bin/bash',
bufsize=5,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
shell=True)
# print(a.)
time.sleep(5)
'''
subprocess.returncode
#获取进程的返回值。如果进程还没有结束,返回None。
'''
print(subps.returncode)
'''
subprocess.call(*popenargs, **kwargs)
该函数将一直等待到子进程运行结束,
并返回进程的returncode,如果子进程不需要进行交互,就可以使用该函数来创建.
'''
print(subps.wait())
# print(time.time())
# time.sleep(1)
def getcwd_demo():
print(os.getcwd()) # 获取当前绝对路径
def RunOnce(cmd, isJoin=None):
so = []
pid = []
def Run():
"""
运行
"""
pipe = subprocess.Popen(
cmd,
stdin=subprocess.PIPE,
stdout=None,
stderr=subprocess.STDOUT,
shell=True)
pid.append(pipe.pid)
try:
output = pipe.communicate(input=None)[0]
if output is not None and len(output) > 0:
so.append(output)
except OSError:
so.append("ERROR")
t = threading.Thread(target=Run)
t.start()
# if not isJoin:
# t.join()
return "".join(so)
def getPackgeActivity():
sys_info = platform.system()
if sys_info is "Windows":
find_util = "findstr"
else:
find_util = "grep"
cmd = "adb shell dumpsys SurfaceFlinger --latency-clear --latency com.android.browser/com.android.browser.BrowserActivity"
# cmd = "adb shell dumpsys window w | " + find_util + " \/| " + find_util + " name="
RunOnce(cmd)
if __name__ == '__main__':
# device = MonkeyRunner.waitForConnection()
# getcwd_demo()
# subprocess_demo()
getPackgeActivity()
# print(getPackgeActivity())