如何用ADB命令列出Android应用当前焦点Activity的所有元素(ID/层级)?
如何用ADB命令列出Android当前Activity的所有UI元素
当然可以!你完全能通过ADB命令获取焦点Activity的所有UI元素信息,包括元素ID、层级结构、文本内容等。下面是具体的方法:
1. 导出当前UI层级结构到XML文件
最常用的命令是uiautomator dump,它会把当前屏幕的所有UI元素以XML格式导出:
- 首先确保你的Android设备已通过ADB连接,执行:
adb shell uiautomator dump /sdcard/ui_hierarchy.xml - 导出成功后,把这个XML文件拉到本地电脑查看:
adb pull /sdcard/ui_hierarchy.xml ./
打开这个XML文件,你就能看到所有UI元素的详细信息:
- 每个元素的
resource-id属性就是它的唯一标识 - 元素的嵌套关系就是UI的层级结构
- 还能看到
text(显示文本)、class(控件类型)、bounds(位置大小)等关键属性
2. 先确认当前焦点Activity(可选)
如果你想先确认当前处于焦点的是哪个Activity,可以执行这个命令:
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
输出结果里会显示当前焦点Activity的包名和类名,确保你导出的是目标界面的UI结构。
3. 实时查看UI元素(进阶)
如果你不想导出文件,也可以直接在命令行查看导出的内容,执行:
adb shell uiautomator dump /dev/tty
这个命令会直接把XML内容输出到终端,适合快速查看。
内容的提问来源于stack exchange,提问作者Iman




