Pythonで書かれたいくつかは、電話アプリケーションの操作ログを取得します
- 携帯電話のパッケージ名現在開いているアプリを入手する方法
- 現在のプロセスアプリケーションのPIDを入手する方法
- 現在のログのAppを表示する方法
- ログをファイルに保存する方法
- プロセスをオフにする方法
- コマンドラインウィンドウは表示されませんどのように
1.携帯電話のパッケージ名現在開いているアプリを入手する方法
コマンドラインに直接入力することができますadb shell dumpsys window | findstr mCurrentFocus
携帯電話のQQは、例えば、mCurrentFocusのための情報を読み取るために
mCurrentFocus=Window{cb7270e u0 com.tencent.mobileqq/com.tencent.mobileqq.activity.AddAccountActivity}
必要であれば、文字列、パッケージ名を抽出「com.tencent.mobileqq」で割るも、現在の活動名を取得することができます。
Pythonで場合は、次の方法を使用することができます
import os
data = os.popen("adb shell dumpsys window | findstr mCurrentFocus")
mCurrentFocus = data.read()
list1 = mCurrentFocus.split(' ')
list2 = list1[4].split('/')
packageName = list2[0]
print(packageName)
2.現在のプロセスのPIDアプリを入手する方法
コマンドラインコマンドで直接入力adb shell "ps | grep com.tencent.mobileqq"
するすべてのアプリケーションが情報を処理し、いくつかのアプリケーションのみで一つのプロセス、いくつかのアプリケーションの複数のプロセスが存在することになる得ることができます。grepコマンドは、Linuxの中で使用されていることをここで注意してください、あなたがWindows環境で使用したい場合は、周りに二重引用符を追加する必要があり、それ以外の場合はエラーになります。
u0_a98 991 744 2202676 125564 0 0 S com.tencent.mobileqq:tool
u0_a98 31810 744 1938984 68956 0 0 S com.tencent.mobileqq:MSF
u0_a98 32714 744 2218736 226968 0 0 S com.tencent.mobileqq
PIDのプロセスは、我々は、Python文字列分割および他の操作によってPIDを取得できる場所第二カラムです。
3.現在のログのAppを表示する方法
いくつかのオンラインの記事を使用しているfind
メソッドやgrep
ADB logcatヘルプファイルを見ることで、探しているいくつかの他のログを添付するメソッドを、そして発見しました
--pid=<pid> Only prints logs from the given pid
このように、私たちは、次のコマンドログでPIDを開発し得ることができます
adb shell logcat --pid=32714
または容易に
adb shell logcat --pid=$(pidof -s com.tencent.mobileqq)
我々はまた、上記の警告限り、ログなどの制約、することができ
adb shell logcat *:W --pid=$(pidof -s com.tencent.mobileqq)
次のように結果のログがあります
--------- beginning of main
06-04 20:39:56.804 32714 710 E DingdongPluginBizHandler: 0x51d_1 respond msf error: retCode[1002].
06-04 20:40:52.953 32714 32714 W InputMethodManager: startInputReason = 1
06-04 20:40:52.971 32714 32747 W libEGL : EGLNativeWindowType 0xe0e6d808 disconnect failed
ログをファイルに保存する方法4
二つの方法があります
Aは、コマンドに直接添加され> filepath
、コマンドは
adb shell logcat *:W > E:/log.txt
2. subprocess.Popenのプロパティを変更
logfile = open("E:/log.txt", 'w')
command = "adb shell logcat *:W"
subprocess.Popen(command, stdout = logfile, shell=True)
5.プロセスをシャットダウンする方法
コードを実行した後、それは、二つのプロセスの合計を開くものであるcmd.exe
、第二は、adb.exe
閉鎖します、
log = subprocess.Popen(command)
##关闭
try:
log.terminate() #关闭 cmd.exe
os.popen("adb kill-server") #关闭 adb.exe
except:
pass
コマンドラインウィンドウの表示を行う方法6
STARTUPINFOでサブプロセスを変更することにより
st = subprocess.STARTUPINFO
st.dwFlags = subprocess.STARTF_USESHOWWINDOW
st.wShowWindow = subprocess.SW_HIDE
cmd = subprocess.Popen(command, startupinfo=st)