Appium Android 獲取包名和 Activity 的幾種方法 (轉)
本文檔主要記錄“獲取包名和 Activity 的方法”,用於自動化測試時啟動APP。以下方法主要來源於網絡和社區同學的貢獻,特此感謝!
1. 方法一: pm list package查看包名
adb shell pm list package -f
將獲取手機內所有apk對應的包名和路徑
adb shell pm list package -3 -f #獲取第三方apk的包
2. 方法二:dumpsys window(本人最常用)
先打開需要查找的apk後,再敲入以上命令
adb shell dumpsys window w | findstr \/ | findstr name= 或 adb shell dumpsys window |findstr mCurrent 或 adb shell "dumpsys window w|grep \/|grep name=|sed ‘s/mSurface=Surface(name=//g‘|sed ‘s/)//g‘|sed ‘s/ //g‘"
註:此處用sed 將部分字符串替換為空,格式為“sed ‘s/要被取代的字串/新的字串/g‘”
3. 方法三:logcat日誌抓取LAUNCHER
adb shell “ logcat | grep android.intent.category.LAUNCHER "
或
adb logcat ActivityManager:I *:s
4. 方法四:dumpsys activity
先啟動需要的查找的apk,再敲入以上命令
adb shell dumpsys activity | grep mFocusedActivity
5. 方法五:logcat日誌抓START
C:\Users\Administrator>adb shell
root@msm8916_32_512:/ # logcat | grep START
先啟動需要查找的apk,再敲入以上命令,找到最後一個ActivityManager
6. 方法六:aapt工具(推薦使用)
使用aapt工具 ,適合給程序自動獲取 apk 的相關信息,非常實用,
//aapt是sdk自帶的一個工具,在sdk\builds-tools\目錄下
1.以微信為例,命令行中切換到aapt.exe目錄執行輸入以下命令
aapt dump badging D:\weixin658android1060.apk
2.運行後的結果中以下兩行分別是應用包名package和入口activity名稱,另外可看到應用使用的權限、支持的語言等信息
7. 方法七:apktool反編譯app後查看AndroidManifest.xml
1.使用apktool反編譯app
java -jar D:\Tools\apktool_2.2.3.jar d D:\Tools\weixin658android1060.apk
2.打開AndroidManifest.xml文件
manifest節點的package屬性值是應用的包名:
查找android.intent.action.MAIN和android.intent.category.LAUNCHER對應的activity,該activity對應的android:name屬性既是入口activity名稱,android.intent.action.MAIN決定應用程序最先啟動的Activity,android.intent.category.LAUNCHER決定應用程序是否顯示在程序列表裏
8. 方法八:使用monkey 命令查看Activity
adb shell monkey -p com.tencent.mm -c android.intent.category.LAUNCHER -v -v 0|findstr Using
註:
1. findstr 和 grep 查找字符串說明
findstr:windows平臺查找字符串命令, 一般格式如下:
adb shell xxx | findstr xxx
grep:linux平臺查找字符串命令,一般先adb shell 進入shell命令行再使用,也可直接使用,把shell 後面帶grep的命令加雙引號即可:
adb shell "xxx | grep xxx"
原文地址:https://testerhome.com/topics/9209 感謝作者辛苦總結
Appium Android 獲取包名和 Activity 的幾種方法 (轉)