您的位置:首页 > 其它

老李推荐:第14章7节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-获取版本号 1

2016-01-05 17:43 351 查看

老李推荐:第14章7节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-获取版本号

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。

这里获取的版本号有两个,一个是ViewServer自身的版本号,一个是ViewServer当前使用协议的版本号。

我们这里为什么需要获取ViewServer版本以及其协议版本呢?其实主要原因是ViewServer有些功能在老版本上是不支持的,比如HierarchyViewer在列出当前所有Activity窗口的时候,针对获取焦点的窗口会根据不同的ViewServer协议版本而作不同处理,请看源码示例:

316 public static Window[] loadWindows(IHvDevice hvDevice, IDevice device) {

317 ArrayList<Window> windows = new ArrayList<Window>();

318 DeviceConnection connection = null;

319 ViewServerInfo serverInfo = getViewServerInfo(device);

320 try {

321 connection = new DeviceConnection(device);

322 connection.sendCommand("LIST"); //$NON-NLS-1$

323 BufferedReader in = connection.getInputStream();

324 String line;

325 while ((line = in.readLine()) != null) {

...

Window w = new Window(hvDevice, line.substring(index + 1), id);

windows.add(w);

}

342 // Automatic refreshing of windows was added in protocol version 3. 343 // Before, the user needed to specify explicitly that he wants to 344 // get the focused window, which was done using a special type of

345 // window with hash code -1.

346 if (serverInfo.protocolVersion < 3) {

347 windows.add(Window.getFocusedWindow(hvDevice));

348 }

} catch (Exception e) {

...

}

}

代码14-7-1 协议版本作用示例DeviceBridge-loadWindows
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: