欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

小知识分享:adb uiautomator 命令 dump ui 树信息

程序员文章站 2022-07-02 11:53:33
之前给大家分享过一篇文章,讲述如何通过 getevent/sendevent/input 命令向 android 手机设备接收和发送操作事件,来解决自动化脚本场景的需求。其实还有一个小知......

之前给大家分享过一篇文章,讲述如何通过 getevent/sendevent/input 命令向 android 手机设备接收和发送操作事件,来解决自动化脚本场景的需求。

其实还有一个小知识点需要补充一下,就是可以借助 uiautomator 命令 dump 当前页面的 ui hierarchy 信息。

一个完整的 uiautomator 命令类似:

adb shell uiautomator dump [--compressed] [file]

--compressed 参数:输出更加精简的 layout 布局信息,包括 android:id/content 在内的通用外层 ui 结构都被拿掉了;

file 参数:xml 格式输出结果文件,默认为 /sdcard/window_dump.xml;

还是老规矩,举个简单的例子。

~ yifeng$ adb shell uiautomator dump
UI hierchary dumped to: /sdcard/window_dump.xml

再通过 adb pull 命令将手机 sdcard 里的文件传输到电脑中。

adb pull /sdcard/window_dump.xml Desktop/

用 Sublime 软件打开,Indent XML 插件格式化后,就是这个样子:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy rotation="0">
    <node bounds="[0,0][1080,2340]" checkable="false" checked="false" class="android.widget.FrameLayout" clickable="false" content-desc="" enabled="true" focusable="false" focused="false" index="0" long-clickable="false" package="com.feng.test" password="false" resource-id="" scrollable="false" selected="false" text="">
        <node bounds="[48,128][341,208]" checkable="false" checked="false" class="android.widget.TextView" clickable="false" content-desc="" enabled="true" focusable="false" focused="false" index="0" long-clickable="false" package="com.feng.test" password="false" resource-id="" scrollable="false" selected="false" text="DemoApp"/>
        <node bounds="[339,1224][741,1368]" checkable="false" checked="false" class="android.widget.Button" clickable="true" content-desc="" enabled="true" focusable="true" focused="false" index="1" long-clickable="false" package="com.feng.test" password="false" resource-id="com.feng.test:id/b_button" scrollable="false" selected="false" text="HELLO WORLD!"/>
    </node>
</hierarchy>

当前页面完整的 UI 树结构信息都 dump 出来了,包括 view 的类名、资源 ID 和屏幕位置坐标等。

小知识分享:adb uiautomator 命令 dump ui 树信息

长按识别二维码,即可关注我


原创推荐

android getevent sendevent input 接收发送事件

禁用 testOnly 属性,解决 debug 包安装失败

解决 Adb Unavailable,尝试了一千种方案后

本文地址:https://blog.csdn.net/wenbitianxiafeng/article/details/110606365