使用 UI automator view,查看手机当前界面的布局

246 篇文章 ¥119.90 ¥299.90
在Android Studio中设置SDK路径后,通过toolsinuiautomatorviewer启动工具,连接测试设备,即可预览并分析如QQ界面等应用的复杂嵌套布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开Android studio ,到setting界面,找到Android sdk如下:

记住sdk路径,打开到sdk路径,找到tools\bin\uiautomatorviewer。双击打开这个bat文件。去人你的测试机与电脑相连。

等一会出现:

我预览的是qq的  界面,嵌套的布局很多。自己看看吧。

### 如何使用 uiautomatorviewer 工具 #### 工具概述 uiautomatorviewer 是 Android SDK 提供的一个图形化工具,用于捕获和分析 Android 设备屏幕上显示的 UI 控件层次结构。它可以帮助开发者或测试人员快速找到应用中的 UI 元素并获取其属性信息[^2]。 --- #### 启动 uiautomatorviewer 要启动 uiautomatorviewer 工具,请按照以下方法操作: - **Windows 平台**: 进入 Android SDK 的 `tools` 目录,双击运行文件 `uiautomatorviewer.bat`。 - **Mac 或 Linux 平台**: 打开终端,导航到 Android SDK 的 `tools/bin` 目录下,执行命令 `./uiautomatorviewer` 来启动工具[^3]。 --- #### 使用步骤详解 1. **连接设备** 确保已通过 USB 将 Android 实际设备或者模拟器与电脑连接好,并且设备上启用了开发者模式以及 USB 调试功能。如果一切正常,在工具左侧窗口会自动加载设备截图;如果没有自动加载,则点击左上方的“Device Screenshot”按钮手动刷新[^1]。 2. **抓取屏幕快照** 单击工具界面上方的相机图标(即 “Dump View Hierarchy” 按钮),此时将会截取当前活动页面的内容作为图片展示于右侧区域的同时也会构建出对应的视图树形结构列表呈现在左边栏里。 3. **浏览控件层级** 在左侧窗格中可以看到整个应用程序界面布局形成的节点关系图谱——每一个矩形框代表一个具体的组件对象实例。选中某个特定项目之后,右边部分就会同步显示出该项的具体参数详情比如 id 值、class 类型名称等重要数据字段以便后续脚本编写调用时参考利用。 4. **提取所需信息** 对目标元素进行定位时通常关注以下几个方面: - Resource ID (`resource-id`):唯一标识符,推荐优先选用此方式来精确定位控件位置; - Class Name (`class`):表示类别的字符串形式描述; - Bounds (`bounds`):定义了该部件占据空间范围坐标值集合[x,y][w,h]; - Text Content (`text`) :当某些场景下无法依赖其他特征区分不同选项卡标签页等情况可考虑采用文字内容匹配策略实现精准查找目的。 --- #### 示例代码片段 (Python Appium) 下面是一个简单的 Python 脚本示例,演示如何基于从 uiautomatorviewer 获取的信息完成基本交互动作: ```python from appium import webdriver desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', 'appPackage': 'com.example.app', 'appActivity': '.MainActivity' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) try: # 根据 resource-id 定位输入框并发送文本 input_field = driver.find_element_by_id("com.example.app:id/inputField") input_field.send_keys("Test Input") # 根据 class name 和 text 属性组合定位按钮并点击 button = driver.find_elements_by_class_name("android.widget.Button")[0] if button.text == "Submit": button.click() finally: driver.quit() ``` --- #### 注意事项 尽管 uiautomatorviewer 功能强大,但也存在一些局限性,例如不支持动态更新后的复杂嵌套层解析等问题,因此实际工作中可能还需要结合其他辅助手段共同解决更复杂的业务需求情况。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhangJiQun&MXP

等到80岁回首依旧年轻

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值