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

共 878字,需浏览 2分钟

 ·

2020-12-07 08:52

之前给大家分享过一篇文章,讲述如何通过 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 插件格式化后,就是这个样子:


<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 和屏幕位置坐标等。

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




原创推荐
android getevent sendevent input 接收发送事件
禁用 testOnly 属性,解决 debug 包安装失败
解决 Adb Unavailable,尝试了一千种方案后
浏览 204
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报