在Desired Capabilities众多配置里面,对于Android来说,以下两个参数都是必不可少的。
  • appPackage:你想运行的Android应用的Java程序包。

  • appActivity:启动app包时需要的activity信息。每个程序都有MainActivity,是打开程序时显示在屏幕的活动。


而不同的APP ,也会有不同的Activity和Package,这次主要介绍我们可以通过什么方式去获取它们。




dumpsys window


首先要通过USB将手机与电脑连接,注意将手机的调试模式打开,打开Android SDK的platform-tools的文件夹。


在Dos窗口,输入以下命令获取Package和Activity:

adb shell dumpsys window w | findstr \/ | findstr name=
或
adb shell dumpsys window |findstr mCurrent


命令1:adb shell dumpsys window w | findstr \/ | findstr name=

APP自动化测试系列之获取Android的Activity 和 Package_Activity

注:橙色圈出的为appPackage,蓝色圈出的为appActivity


命令2:adb shell dumpsys window |findstr mCurrent

APP自动化测试系列之获取Android的Activity 和 Package_Android_02

注:橙色圈出的为appPackage,蓝色圈出的为appActivity


根据需要,也可通过以下三种方式获取所需:

①获取模拟器正在运行的APP的Package和Activity:

adb shell dumpsys activity | find "mFocusedActivity"

②获取真机正在运行的APP的Package和Activity:

adb shell dumpsys activity | find "mResumedActivity"


③获取带端口号的Activity:

adb shell dumpsys activity top | findstr ACTIVITY




pm list package查看包名


①adb shell pm list package -f ,获取设备的所有apk对应的包名和路径。

APP自动化测试系列之获取Android的Activity 和 Package_Package_03


②adb shell pm list package -3 -f    获取第三方apk的包。

APP自动化测试系列之获取Android的Activity 和 Package_Activity _04




logcat日志抓START


先启动APP,然后分别输入以下命令:

adb shell
logcat | grep START


如下所示:

APP自动化测试系列之获取Android的Activity 和 Package_Android_05




logcat日志抓ActivityManager


先启动APP,然后分别输入以下命令:

adb shell
logcat|grep ActivityManager

如下所示:

APP自动化测试系列之获取Android的Activity 和 Package_Activity _06




aapt工具(推荐使用)


aapt是sdk自带的一个工具,在sdk\builds-tools\目录下,使用aapt工具 ,自动获取 apk 的相关信息,非常实用。


①在本地目录下有weixin.apk。

APP自动化测试系列之获取Android的Activity 和 Package_Android_07


②切换到sdk\builds-tools\中带aapt.exe的目录下,执行如下命令:

aapt dump badging C:\apk\weixin01.apk

如下所示,获取微信软件的包名:

APP自动化测试系列之获取Android的Activity 和 Package_Android_08


如下所示,获取微信的启动界面:

APP自动化测试系列之获取Android的Activity 和 Package_Activity _09




直接问开发


问开发人员是比较直接有效的,能增加团队交流,气氛紧张时,还能锻炼开发的"动手能力"。

        APP自动化测试系列之获取Android的Activity 和 Package_Activity _10



总结:本文介绍了获取app 的Activity和Package的六种方式。


方式一:通过dumpsys window获取

#获取当前页面的Package和Activity
adb shell dumpsys window w | findstr \/ | findstr name=
#或者:
adb shell dumpsys window | findstr mCurrentFocus
#获取模拟器正在运行的APP的Package和Activity
adb shell dumpsys activity | find "mFocusedActivity"
#获取真机正在运行的APP的Package和Activity
adb shell dumpsys activity | find "mResumedActivity"
#获取带端口号的Activity
adb shell dumpsys activity top | findstr ACTIVITY


方式二:列出模拟器或真机中所有软件的Package

#获取设备的所有apk对应的包名和路径
adb shell pm list package -f  
#获取第三方apk的包
adb shell pm list package -3 -f


方式三:logcat日志抓START

adb shell
logcat | grep START


方式四:logcat日志抓ActivityManager

adb shell
logcat|grep ActivityManager


方式五:通过aapt工具获取

aapt dump badging C:\apk\weixin01.apk


方式六:询问开发



具体使用哪种方法,根据自己的实际场景和习惯,选择适合的即可。如果小伙伴们有其他的方法,欢迎在下方留言区评论,下期见,Bye。