1. 程式人生 > >Appium Android 獲取包名和 Activity 的幾種方法 (轉)

Appium Android 獲取包名和 Activity 的幾種方法 (轉)

androidm test class .com mps 文件 ren -s tle

本文檔主要記錄“獲取包名和 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 的幾種方法 (轉)