获取 APP 的 Package 和 Activity

发布于 2024-06-18 08:11:31 字数 3081 浏览 20 评论 0

环境说明

以下环境安装的系统平台为 Windows,驱动安卓真机;脚本开发使用 Python3

获取 Package 和 Activity 前,需要确保 App 自动化测试环境搭建成功

获取 Package

下面以 speedtest App 为例,其他安卓 App 获取方式同理

方法一:通过 adb 命令获取

# 查看当前 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

# 过滤关键字,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,然后输入以下命令

# dumpsys 命令
adb shell dumpsys window w | findstr mCurrent
# 对应定位到的 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

adb logcat >D:/log.txt

然后打开 Speedtest App,操作几次,并在终端关闭日志写入。

打开 log.txt 文件,搜索 Package Name:org.zwanoo.android.speedtest ;以下为 log.txt 中的部分日志

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

org.zwanoo.android.speedtest/com.ookla.mobile4.screens.main.MainActivity

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

捎一片雪花

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文