回顾

HierarchyViewer for iOS是我们发布的一个开源项目,采用GPL v3.0协议。 HierarchyViewer for iOS可以帮助iOS应用的开发和测试人员,在没有源代码的情况下,也可以图形化地浏览iOS应用的控件树和控件属性。并且,HierarchyViewer for iOS还可以帮助生成iQuery代码和UIAutomation原生代码,把控件树导出为图片等功能。下面是Mac OS X下,1.0版本的截图:

 

HirarchyViewer for iOS 1.0是通过读取UIAutomation的结果日志(.plist)来获取控件树信息的,详细介绍可以参考原创开源项目 -- HierarchyViewer for iOS(1)一文。在2.1 Beta版中,我们加入了新的功能,现在,用户通过HierarchyViewer for iOS打开并运行App应用,就可以直接看到正在运行的应用的控件树。接下来我们将详细介绍。

 

新功能介绍

和1.0相比,我们发现2.1的工具栏上多了3个图标,他们分别用于启动iOS模拟器和应用,刷新控件树和停止应用。

 

启动iOS模拟器和应用

点击,将打开一个文件对话框:

 

选择一个iOS模拟器的应用,模拟器将被启动,应用将被加载。如下图所示:

 

和从UIAutomation结果日志.plist文件中获取的控件树相比,直接从应用中获取的控件树的属性列表将包含更多信息,包括enabled,visible属性等。

 

刷新控件树

当用户对模拟器进行操作,应用程序上的UI改变时,可以点击绿色的刷新按钮来刷新控件树:

 

这样,我们就能实时地深入了解运行时UI所有控件的状态和变化。

 

终止模拟器和应用运行

点击,将终止模拟器和应用程序的执行。

 

全球化和本地化支持

HierarchyViewer for iOS中添加了对全球化/本地化支持,目前支持中文和英语两种语言。默认语言为英语,用户可以在Preferences中修改语言为中文,重启后,设置将生效。

 

运行环境

HierarchyViewer for iOS需要JRE1.6及以上版本支持,2.1中的新功能只能在Mac OS X上运行(1.0的功能支持Linux和Windows),同时,要运行2.1的新功能,需要安装Instruments和iOS Simulator。

 

如何获得源代码和可执行程序

HierarchyViewer for iOS开源项目地址为https://github.com/vowei/HierarchyViewer-4-iOS,可执行程序下载地址:https://github.com/vowei/HierarchyViewer-4-iOS/downloads。 我们的其他开源项目也有意思,有兴趣可以看看。对项目有什么问题或建议,请给我们留言,我们会积极改进的。

 

本文由知平软件刘斌华原创,转载请注明出处。

知平软件致力于移动平台自动化测试技术的研究,我们希望通过向社区贡献知识和开源项目,来促进行业和自身的发展。

原创开源项目HierarchyViewer for iOS 2.1 Beta新功能介绍的更多相关文章

  1. .NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Software Protector序列号生成组件.今天就通过一篇简单的文章来预览一下其强大的功 ...

  2. HierarchyViewer for iOS 2.0 BETA Introduction

    We know HierarchyViewer is an useful tool in Android SDK. The developer and tester, who haven't the ...

  3. [原创开源项目]EPUBBuilder一款在线的epub电子书编辑工具

    epub 感觉自己么么哒, epub书:国外最流行的电子书格式: epub电子书介绍: epub全称为Electronic Publication的缩写,意为:电子出版, epub于2007年9月成为 ...

  4. iOS各个版本的新特性介绍

    官方汇总 What's News in iOS iOS 9.3 to iOS 10.0 API Differences Objective-C /usr/include Accelerate Audi ...

  5. iOS 常用工具库LFKit功能介绍

    简介:LFKit包含了平时常用的category,封装的常用组件,一些工具类. 需要LFKit中所有自定义控件的pod 'LFKit/Component' 需要LFKit中所有category的pod ...

  6. 2019年9月Github上最热门的JavaScript开源项目

      2019年9月Github上最热门的JavaScript开源项目 前端开发 前端开发 微信号 qianduan1024 功能介绍 专注于Web前端技术文章分享,包含JavaScript.HTML5 ...

  7. iOS开源项目周报0105

    由OpenDigg 出品的iOS开源项目周报第四期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. He ...

  8. iOS开源项目周报1229

    由OpenDigg 出品的iOS开源项目周报第三期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Ma ...

  9. iOS开源项目周报1222

    由OpenDigg 出品的iOS开源项目周报第二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. io ...

随机推荐

  1. Struts2基础学习总结

    引用自:http://www.cnblogs.com/jbelial/archive/2012/05/10/2486886.html Struts 2是在WebWork2基础发展而来的. 注意:str ...

  2. jquery 同id使用指针寻找具体每个id的值

    this来判断<script language="javascript"> function t(obj) { alert(obj.value); } </scr ...

  3. Java类成员(成员变量和方法)的覆盖与隐藏归纳

    以前就知道重写override和重载overload的区别,平时也是逮着用就是了,Eclipse报错再说. 最近看一本书里面出现了重写.替换.覆盖.置换.隐藏.重载,简直乱得不行,归纳整理一下. 从全 ...

  4. Rectangle Area || LeetCode

    把交叉点的坐标求出来即可. #define max(a,b) ( (a)>(b)?(a):(b) ) #define min(a,b) ( (a)<(b)?(a):(b) ) int co ...

  5. SQL 的 ISNULL 与 NULLIF 运算符

    1.  ISNULL ISNULL(check_expression, replacement_value) 作用: 检查第一个参数是否为null. check_expression 与 replac ...

  6. python 特殊的下划线

    Python 用下划线作为变量前缀和后缀指定特殊变量. _xxx      不能用'from module import *'导入 __xxx__ 系统定义名字 __xxx    类中的私有变量名 核 ...

  7. django for monkey(chapter one)

    一.获取设备驱动 class monkey(object): def get_devices(self): self.a = os.popen('adb devices') self.devices ...

  8. mongoDB(3) mapReduce

    mapReduce是大数据的核心内容,但实际操作中别用这个,所谓的mapReduce分两步 1.map:将数据分别取出,Map函数调用emit(key,value)遍历集合中所有的记录,将key与va ...

  9. 网站和Web应用程序的区别

    新建项目里面的(ASP.NET Web 应用程序)主要是做B/S系统的,与winform的开发方式类似.新建网站(ASP.NET 网站)是主要开发网站的.其实你只要跟着教程做就行了.具体区别如下(借鉴 ...

  10. java多态性

    多态分两种: (1)   编译时多态(设计时多态):方法重载. (2)   运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态.(我们平时说得多的事运行时 ...