之前给大家分享过一篇文章,讲述如何通过 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 和屏幕位置坐标等。

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


原创推荐

android getevent sendevent input 接收发送事件

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

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

小知识分享:adb uiautomator 命令 dump ui 树信息相关推荐

  1. 东瓜小知识之《简单查询网卡的厂商信息》

    东瓜小知识 第一步:查询本机的MAC地址 方法一:①按"win"+"R"键打开"运行"窗口,在窗口中输入cmd:②在Windows命令处理程 ...

  2. 网络工程师小知识:静态路由配置命令

    一.什么是静态路由? 二.静态路由的特点! 三.静态路由的一些配置命令 四.实验配置命令 更多配置命令,评论区留言[私信R]"学习"免费分享 #网络工程师 #华为认证 #计算机网络 ...

  3. 传奇私服脱坑小知识分享一

    每天上一当,当当不一样 传奇骗局有分2种,一种是针对游戏玩家的,另外一种是针对开服GM的 像玩家会遇到的比如有些人喜欢冒充商人去行骗,他和你说他是哪个行会的掌门,给你一个副掌门位置,降低你戒备心,和他 ...

  4. 【小知识】linux hash命令

    先看一段shell: 判断环境中是否存在某命令 check_program_installed() {     hash $1 > /dev/null 2>&1     if [ ...

  5. 计算机小知识分享,分享几小个计算机操作技巧

    1. 自动登陆 单击开始→运行,输入"rundll32netplwiz.dll,UsersRunDll"(不带引号),然后在User Accounts中取消"Users ...

  6. 印章如何去蜡_手帐丨蜡封印章小知识分享

    看一些欧洲老电影的时候,经常会有主角们坐在桌前用拆信刀,把印有蜡封的秘密信件打开的镜头. 信封口上那朱红色的蜡封凹印,既神秘又优雅.今天就来一一揭开蜡封印章的神秘面纱. ♔ 蜡封印章的由来 蜡封印章又 ...

  7. 乐理matlab频率表,乐理小知识:音高与国际谱

    我们在初识乐理时,常遇到一个概念:音高,然而大多人对"音高"的概念,知其然而不知其所以然,今天作曲大师就带大家深入了解一下这个概念. 简单来说音高即音的高低,音的高低由发声物体的振 ...

  8. 沃谈小知识| 聊聊不明觉厉的“边缘计算”

    [小二说] Hello,Hello,又到了周四 [沃谈物联]小知识分享如约而至 小二上线唠嗑啦~ 前两期话题都是 HiWoo Box工业物联网关 它还有个学名 "边缘计算网关" 本 ...

  9. 计算机主板外频,电脑装机小知识,了解外频和倍频的前身今世,掌握超频进阶小技巧...

    进阶的超频小知识分享 喜欢超频的小伙伴一定对外频和倍频这两个概念并不陌生,CPU频率=外频X倍频.这些内容我在前面的超频小分享中已经基本谈到过. 但是你知道吗?在开始的时候,其实CPU频率和外频是一样 ...

最新文章

  1. mybatis plus generator配置
  2. LeetCode刷题记录(2)
  3. webapi+Quartz.NET解决若干定时程序同时运行的问题
  4. java for遍历hashmap_Java 使用for和while循环遍历HashMap的方法及示例代码
  5. 一道面试题目引发的思考
  6. AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程
  7. 【android开发】:android真机测试
  8. IntelliJ IDEA设置maven
  9. depthmap资料总结
  10. python继承方式是基于原型吗_【Python】python 普通继承方式和super继承方式
  11. sitemesh2.4
  12. ni数据采集卡C语言API接口,NI数据采集卡
  13. CAD二次开发--自动加载插件
  14. NCS初探--基于nRF5340的blinky
  15. 服务器虚拟化的主要特点,网络虚拟化的七大特征
  16. 送书 | Python最优算法实战
  17. Ubuntu安装显卡驱动及设置3d桌面
  18. 互联网红利之道-流量变现
  19. Xen - Networking
  20. 小白尝试c++编写飞机大战

热门文章

  1. 题目0161-匿名信
  2. 知识图谱第6享:动态本体
  3. 毕设IDEA2019之ssm+Echarts框架快速入门实现数据可视化(图表统计)
  4. python中的extend功能及用法
  5. $.extend(true,{},a,b),深入理解,小心陷阱
  6. 主题:基于主从博弈理论的共享储能与综合能源微网优化运行研究
  7. ORMLite使用示例
  8. hbase的架构及设计
  9. ZIP暴力破解脚本[多线程]
  10. iPad Air忘记密码,怎么办?