UI Automator Viewer的使用
Index
uiautomatorviewer是 android SDK 自带的工具。通过截屏并分析 XML 布局文件的方式,为用户提供控件信息查看服务。该工具位于 SDK 目录下的 tools\bin
子目录下,通过bat文件启动的。
界面
整个界面分四个区域
工作栏区(上)
共四个按钮,从左至右分别用于:打开已保存的布局,获取详细布局,获取简洁布局,保存布局。
- 保存布局
Save
:将存储两个文件,一个是图片文件,一个是.uix文件(XML布局结构) - 获取详细布局
Device Screenshoot (uiautomator dump)
: 将全部布局呈现出来 - 获取简洁布局
Device Screenshoot with Compressed Hierarchy (uiautomator dump –compressed)
: 只呈现有用的控件布局
- 保存布局
截图区(左),显示当前屏幕显示的布局图片
布局区(右上),已XML树的形式,显示控件布局
控件属性区(右下),当点击某一控件时,将显示控件属性
问题1
第一次点击Device Screenshoot按钮时,将会报错,显示如下
原因是在于,uiautomatorviewer.bat
中,需要知道 SDK 下的子目录 platform-tools
的路径,即 bat 文件中的%prog_dir%
,因此我们需要修改 uiautomatorviewer.bat
中最后一行代码,将%prog_dir%
替换为 platform-tools
的实际目录。
修改前:
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %* |
修改后:
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=C:\Users\XXXXX\AppData\Local\Android\Sdk\platform-tools" -jar %jarpath% %* |
p.s. XXXXX为用户名
问题2
再次点击,出现如下错误
折腾了好久,最终在https://github.com/yaming116/uiautomatorview找到解决方法
我们直接下载LvmamaXmlKit.jar
和uiautomatorviewer.jar
将uiautomatorviewer.jar
替换\tools\lib\uiautomatorviewer.jar
如果带后缀如xxx-25.3.1.jar
也要重命名带上后缀
由于 adb 截图使用的是LvmamaXmlKit,所以使用此功能需要把这个 LvmamaXmlKit.jar 导入到手机中,否则将报错,命令如下:
adb push LvmamaXmlKit.jar /data/local/tmp |
成功捕获
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Lantern's 小站!
评论