【问题标题】:Android get current UI-Layout without uiautomatorAndroid 在没有 uiautomator 的情况下获取当前的 UI 布局
【发布时间】:2022-01-11 16:24:38
【问题描述】:

我尝试将当前 UI-Layout 获取为 xml。我已经发现有一个名为“UI Automator”的工具,还有一个 adb 命令可以将布局获取为 XML adb shell uiautomator dump

命令和工具有两个问题。首先,当结构变化非常快时,它无法拾取布局(出现错误消息ERROR: null root node returned by UiTestAutomationBridge.),其次,还有一个错误,即查询布局时有时会出错。而且速度非常慢(大约 2 秒)。

现在我在 Android Studio 中发现了一个名为“Layout Inspector”的新工具(在工具部分下),它没有这些问题(即时 xml 响应,快速布局没有问题,也没有随机错误)。问题是我找不到任何 adb 命令(该工具仅在设备通过 adb 可用时才有效)来手动获取 xml 结构。我还发现有些应用程序的行为相同(例如 Developer Assistant)。

那么如何在没有 UiAutomator 的情况下通过 adb 获取当前布局?

【问题讨论】:

    标签: android android-studio adb android-uiautomator


    【解决方案1】:

    CulebraTester2-public 是一个可插拔的AndroidViewClient 后端,也可以通过三个简单的步骤在独立模式下使用。

    1. 安装 CulebraTester2-public APK(可以在 here 找到预构建的 APK)
    2. 启动服务./culebratester2 start-server
    3. 执行dump-window-hierarcy

    一般来说,在更新窗口时下载层次结构不会有问题,并且会比uiautomator dump快得多。

    前面的示例使用curl 向服务发出请求,但您也可以在python 中使用culebratester_client

    此外,您可以使用 AndroidViewClient 中的 dump 指定 CulebraTester2 后端(又名 uiautomator-helper

    $ dump --use-uiautomator-helper --all
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 2010-10-06
      相关资源
      最近更新 更多