zoukankan      html  css  js  c++  java
  • 老李推荐:第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发 3

    formAdbRequest我们在之前已经分析过,做的事情就是组建好ADB协议的命令以待发送给ADB服务器,在我们558行中最终组建好的ADB协议命令将会如下:

    “host-serial:xxx:forward:localPortSpec;remotePortSpec”

    其中xxx就是代表目标设备的序列号,可以通过”adb devices -l”获得:

    图14-4-1获取设备序列号

    所以在最终这个ADB协议命令字串将会变成:

    “host-serial:HT21ATD05099:foward:4939;4939”

    而参照ADB协议,实际上就相当于ADB命令行客户端命令的:

    “adb -s HT21ATD05099 forward tcp:4939 tcp:4939”

    这其实跟第13章第2小节手动发送ViewServer端口转发命令是一样的,只是这里多了个-s参数来指定要转发的端口属于哪个设备上的ViewServer而已。

    到现在为止我们已经完成了端口转发的第2步了,那么我们往下看第3步,做的事情就是把代表目标设备的Device实例和本地ViewServer的转发端口做为键值对给保存起来到sDevicePortMap这个成员变量里面:

     

    sDevicePortMap.put(device, Integer.valueOf(localPort));  

    sDevicePortMap这个成员变量是个HashMap:  

    55  private static final HashMap<IDevice, Integer> sDevicePortMap = new HashMap();  

    代码14-4-5 DeviceBridge - sDevicePortmap

    注意这个变量是很重要的,因为HierarchyViewer连接对应的设备的socket就是靠它来提供对应的本地ViewServer转发端口号的。

  • 相关阅读:
    WPF 创建自定义窗体
    Entity Framework Code First for SQL Compact
    WPF QuickStart系列之样式和模板(Style and Template)
    WPF 实现 DataGrid/ListView 分页控件
    WPF ItemsControl ListBox ListView比较
    WPF 实现带标题的TextBox
    WPF ListView展示层叠信息
    上(下)三角矩阵
    正定矩阵(positive definite matrix)
    (非)奇异矩阵
  • 原文地址:https://www.cnblogs.com/poptest/p/5099773.html
Copyright © 2011-2022 走看看