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转发端口号的。

  • 相关阅读:
    MonoBehaviour.FixedUpdate 固定更新
    Gizmos 辅助线框
    Quaternion 四元数
    Object.Instantiate 实例
    c语言描述的静态查找表
    c语言描述的二叉树的基本操作(层序遍历,递归,非递归遍历)
    c语言描述的链队列的基本操作
    c语言描述的双向链表的基本操作
    c语言描述的简单选择排序
    c语言描述的二分插入排序法
  • 原文地址:https://www.cnblogs.com/poptest/p/5099773.html
Copyright © 2011-2022 走看看