环境说明
以下环境安装的系统平台为Windows,驱动安卓真机;脚本开发使用Python3
获取Package和Activity前,需要确保App自动化测试环境搭建成功
获取Package
下面以speedtest App为例,其他安卓App获取方式同理
方法一:通过adb命令获取
1 2 3 4 5
| # 查看当前device中所有apk对应的package name和path adb shell pm list package -f # 仅查看第三方的apk package adb shell pm list package -3 -f
|
注意:cmd terminal的查找命令在linux和mac操作系统中对应关键字时grep,在Windows操作系统中对应关键字是 findstr
1 2
| # 过滤关键字,speedtest包 adb shell pm list package -3 -f | findstr speedtest
|
方法二:使用Airtest IDE软件定位
1、安装Airtest IDE软件,并连接安卓真机
2、手机上打开speedtest APP;Airtest IDE软件Poco辅助窗口选择Android
3、展开xml树结构,并选中。查看Log窗口的package字段的值即可获取该App的packageName
获取appActivity
方法一:adb命令获取
如果需要获取speedtest App的appActivity,首先在手机上打开Speedtest App,然后输入以下命令
1 2
| # dumpsys命令 adb shell dumpsys window w | findstr mCurrent
|
1 2 3
| # 对应定位到的appActivity就会自动被定位到并输出如下: mCurrentFocus=Window{9c1afd u0 org.zwanoo.android.speedtest/com.ookla.mobile4. screens.main.MainViewActivity}
|
注意:有时候通过上述adb命令得到appActivity并不完全正确。所以如果通过用上面获取到appActivity执行代码驱动app时,报activity错误时,请更换其他方式重新获取appActivity。
上面获取到的Speedtest App的appActivity并不正确,需要使用方法二获取。
方法二:log日志获取
首先在终端中执行下面命令,将日志写入log.txt
然后打开Speedtest App,操作几次,并在终端关闭日志写入。
打开log.txt文件,搜索Package Name:org.zwanoo.android.speedtest;以下为log.txt中的部分日志
1 2 3 4 5 6 7 8
| 11-10 17:50:37.731 3260 15780 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000 11-10 17:50:37.732 3625 13833 I AppLifeChangeSensor: CAWARENESS: activityResumed componentName = ComponentInfo{org.zwanoo.android.speedtest/com.ookla.mobile4.screens.main.MainActivity} 11-10 17:50:37.732 1252 5214 D HiData_HwAPPQoEActivityMonitor: handleActivityChange, curPackage:org.zwanoo.android.speedtest, curClass:com.ookla.mobile4.screens.main.MainActivity 11-10 17:50:37.733 31522 31522 I ViewRootImpl: jank_removeInvalidNode all the node in jank list is out of time 11-10 17:50:37.732 1252 1357 I StatusBarDisable: setFlags what=0 which=1 pkg=Window{d43dea6 u0 org.zwanoo.android.speedtest/com.ookla.mobile4.screens.welcome.WelcomeActivity} 11-10 17:50:37.733 1252 1354 W HwActivityManagerServiceEx: HwActivityNotifier end call for activityLifeState under user 0 cost 1 11-10 17:50:37.733 1252 5214 D HiData_HwAPPQoEResourceMangerImpl: checkIsMonitorAPKScence input :org.zwanoo.android.speedtest,com.ookla.mobile4.screens.main.MainActivity 11-10 17:50:37.733 1252 5214 D HiData_HwAPPQoEResourceMangerImpl: checkIsMonitorAPKScence input :org.zwanoo.android.speedtest,null
|
根据搜索结果,并排除不正确的Activity后,可得到下面正确的appActivity
1
| org.zwanoo.android.speedtest/com.ookla.mobile4.screens.main.MainActivity
|