UI Automator Viewer的使用

摘要:
uiautomatorviewer是Android SDK附带的工具。通过截屏和分析XML布局文件,用户可以查看控制信息。屏幕截图区域(左)以XML树的形式显示当前屏幕上显示的布局图片布局区域(右上),并显示控件布局控件属性区域(右下)。单击控件时,将显示控件属性。第一次单击设备屏幕截图按钮时,将报告错误。显示的原因是在uiautomatorviewer中。bat,您需要知道SDK下平台工具子目录的路径,即bat文件中的“%prog_dir%”。因此,我们需要修改uiautomatorviewer中的最后一行代码。bat并将“%prog_dir%”替换为平台工具的实际目录。

uiautomatorviewer是android SDK自带的工具。通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。该工具位于SDK目录下的toolsin子目录下。可以看到,它是通过bat文件启动的。

这里写图片描述

启动界面如下

这里写图片描述

整个界面分四个区域:
(1)工作栏区(上)
共有4个按钮。从左至右分别用于:打开已保存的布局,获取详细布局,获取简洁布局,保存布局。点击保存,将存储两个文件,一个是图片文件,一个是.uix文件(XML布局结构)
第二按钮(Device Screenshoot uiautomator dump)与第三按钮(Device Screenshoot with Compressed Hierarchy uiautomator dump –compressed)的区别在于,第二按钮把全部布局呈现出来,而第三按钮只呈现有用的控件布局。比如某一 Frame存在,但只有装饰功能,那么点击第三按钮时,可能不被呈现。

(2)截图区(左),显示当前屏幕显示的布局图片
(3)布局区(右上),已XML树的形式,显示控件布局
(4)控件属性区(右下),当点击某一控件时,将显示控件属性

这里写图片描述

第一次点击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% %*
  • 1

修改后

call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=C:UsersXXXXXAppDataLocalAndroidsdkplatform-tools" -jar %jarpath% %*
  • 1

注:其中“XXXXX”为用户名

这里写图片描述

通过使用UI Automator Viewer,我们可以在没有代码的情况下,查看控件布局,并获取UI的ID,用于之后的脚本编写。

注:Android Studio中可以通过Android Device Monitor 调用UI Automator Viewer。

这里写图片描述

这里写图片描述

免责声明:文章转载自《UI Automator Viewer的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java 符号引用与直接引用Vue之项目搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AVR单片机教程——走向高层

本文隶属于AVR单片机教程系列。   在系列教程的最后一篇中,我将向你推荐3个可以深造的方向:C++、事件驱动、RTOS。掌握这些技术可以帮助你更快、更好地开发更大的项目。 本文涉及到许多概念性的内容,如果你有不同意见,欢迎讨论。 关于高层 这一篇教程叫作“走向高层”。什么是高层? 我认为,如果寥寥几行代码就能实现一个复杂功能,或者一行代码可以对应到几百句...

CSS问题:怎么样让鼠标经过按钮的时候发生的状态一直停留在当页呢?

$('p').mouseenter(function(){     $('p').css('background-color','yellow'); }); 只写一个mouseenter的动态效果的话是不能达到要求的,如果想要达到预定的要求,需要再后面加一个mouseleave事件, 如果简单一点的话,hover就可以直接完成,hover是包含鼠标进入和离...

laravel框架使用生涯

手工安装laravel http://laravelacademy.org/resources-download 1、将下载的文件复制到虚拟主机目录 2、在Apache的配置文件配置一个虚拟主机【注意,需要指向 public目录下】 <VirtualHost *:80> DocumentRoot "C:phpStudyWWWlarav...

jQueryEasyUI Messager基本使用

http://www.cnblogs.com/libingql/archive/2011/07/17/2109020.html 一、jQueryEasyUI下载地址 http://www.jeasyui.com/ 二、jQueryEasyUI Messager基本使用 1、$.messager.alert(title, msg, icon, fn) 1&...

window.open()不同源页面通信

父页面 运行端口:8080 <template> <div> <el-button @click="open()">发送消息给子页面</el-button> </div> </template> <script> export default{ na...

Xamarin.Forms 学习系列之优秀UI收集

1、各种优秀UI例子 https://github.com/jsuarezruiz/xamarin-forms-goodlooking-UI 输入框例子 https://github.com/enisn/Xamarin.Forms.InputKit 浮动操作按钮  https://github.com/SuavePirate/Xamarin.Forms...