ViewServer接受hierarchyviewer的命令
来源:互联网 发布:嵌入式linux驱动教程 编辑:程序博客网 时间:2024/05/20 06:06
AUTOLIST
线程阻塞,命令发送后,会等待viewserver反馈结果。viewserver在检测到界面跳转以后才会回馈结果。
private class WindowChangeMonitor implements Runnable {private IDevice device;public WindowChangeMonitor(IDevice device) {this.device = device;}public void run() {while (!Thread.currentThread().isInterrupted()) {DeviceConnection connection = null;try {connection = new DeviceConnection(this.device);connection.sendCommand("AUTOLIST");String line;while ((!Thread.currentThread().isInterrupted())&& ((line = connection.getInputStream().readLine()) != null)) {if (line.equalsIgnoreCase("LIST UPDATE")) {}if (line.equalsIgnoreCase("FOCUS UPDATE")) {}show(line);}} catch (IOException e) {} finally {if (connection != null)connection.close();}}}}
以上程序运行后,会一直等待,知道界面有跳转。反馈的结果有2种:LIST UPDATE和FOCUS UPATE。输出结果如下:
Appiot----------------LIST UPDATEAppiot----------------FOCUS UPDATEAppiot----------------LIST UPDATEAppiot----------------LIST UPDATEAppiot----------------LIST UPDATE
一个界面的跳转有一个FOCUS UPDATE事件触发,但是会触发若干LIST UPDATE事件。
GET_FOCUS
得到当前设备上显示的界面的activity。
在刚才代码的基础上,当检测到界面跳转时,获得跳转后的activity.
private class WindowChangeMonitor implements Runnable {private IDevice device;public WindowChangeMonitor(IDevice device) {this.device = device;}public void run() {while (!Thread.currentThread().isInterrupted()) {DeviceConnection connection = null;try {connection = new DeviceConnection(this.device);connection.sendCommand("AUTOLIST");String line;while ((!Thread.currentThread().isInterrupted())&& ((line = connection.getInputStream().readLine()) != null)) {if (line.equalsIgnoreCase("LIST UPDATE")) {}if (line.equalsIgnoreCase("FOCUS UPDATE")) {getWindowId();}show(line);}} catch (IOException e) {} finally {if (connection != null)connection.close();}}}public void getWindowId(){DeviceConnection connection = null;try {connection = new DeviceConnection(this.device);connection.sendCommand("GET_FOCUS");String line;while ((!Thread.currentThread().isInterrupted())&& ((line = connection.getInputStream().readLine()) != null)) {show(line);}} catch (IOException e) {} finally {if (connection != null)connection.close();}}}
输出结果:
Appiot----------------LIST UPDATEAppiot----------------42180858 com.sina.weibopro/com.sina.weibopro.DetailWeiboActivityAppiot----------------FOCUS UPDATEAppiot----------------LIST UPDATEAppiot----------------LIST UPDATEAppiot----------------LIST UPDATE
0 0
- ViewServer接受hierarchyviewer的命令
- 第14章6节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-启动ViewServer
- 第14章5节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-查询ViewServer运行状态
- 第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发
- 第14章7节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-获取版本号
- HierarchyViewer的使用
- 关于HierarchyViewer的使用
- 关于HierarchyViewer的使用
- hierarchyviewer的使用
- hierarchyviewer不能用的解决办法
- 使用hierarchyviewer的学习记录
- android hierarchyViewer 的UI工具的使用
- Android的UI结构试图工具hierarchyviewer
- Android的UI结构试图工具hierarchyviewer
- Android的UI结构试图工具hierarchyviewer
- Android的UI结构试图工具hierarchyviewer
- Android的UI构造试图工具hierarchyviewer
- Android的UI结构试图工具hierarchyviewer
- Compiler compliance level of project rams should be 5.0.Your current workspace default is 6.0.Do you
- Cocos2d-x3.0TestCpp目录笔记(二)
- 大数运算
- Oracle中Null与空字符串的区别
- 再理解 as3.0接口
- ViewServer接受hierarchyviewer的命令
- Linux java环境配置
- 畅通工程再续
- js手动存储cookie
- Hadoop的安全模式----自检
- Android4.4 4.2keyguard锁屏流程梳理
- Qt获得焦点和失去焦点处理事件 (Focus事件)
- jQuery返回顶部效果
- IOS-常用数据类型(1)