NotesList这个窗口由几个部分组成,查看一个窗口的控件信息可以通过另外一个叫做uiautomator的工具来完成。该工具同样是在你的sdk目录下的tools下面可以找到,但需要提一下的是,该工具是在Android 4.1及之后的版本才有的,因为它是随着UiAutomator这个新的UI自动化框架一起出来的。下面我们先列出各个控件的简要描述:

  • 标题: NotesList界面中所有日记共享同一个标题,该标题是一个文本TextView控件

  • 日记列表: 所有的日记都会在日记列表这个ListView控件中进行显示

下面我们先来看下在uiautomator中捕获到的标题控件信息的具体内容: 

从上图可以看到NostList标题是一个TextView,uiautomatorviewer中它的文本内容是”Notes”;resource-id是”android:id/title”,MonkeyRunner可以通过该id定位到该标题控件;bounds属性表示该控件的边界范围,由左上角的绝对坐标和右下角的绝对坐标进行定义(但系统选项菜单会不一样,我们第4小节会进行描述)。我们可以通过该边界决定MonkeyRunner模拟点击该控件时的有效位置,一般做法是取各个坐标边界的中间值,比如上面的左上角x坐标6加上右下角x坐标474再除以2就是我们点击的x坐标240;左上角6坐标39加上右下角y坐标74再除以2就是我们点击的y坐标56,所以最终的点击坐标就应该是[240,56]。

当然该控件还有很多其他信息,但因为MonkeyRunner都用不上,所以就不一一列举了。

下面我们继续去看一下NotesList这个窗口中的另外一个控件-日记内容列表ListView的内容: 

因为当前还没有增加任何日记,所有该控件显示的是一个空列表。我们增加两个日记后,日记列表内容将如下所示: 

上图左边显示新增加日记的标题,右边是uiautomatorviewer所显示的该日记的属性,可以看到每个日记是一个TextView类型的控件,而这些日记的父控件就是日记类容列表ListView控件。