AdbChimpDevice会直接调用HierarchyViewer的构造函数对HierarchyViewer进行实例化。实例化会传入AdbChimpDevice的成员变量device,那么这个device又是哪个类的实例呢?从前面的分析中我们知道,这其实是ddmlib库里面的Device这个类的实例,它主要的作用是调用AdbHelper来往ADB服务器发送命令。

好,我们继续看下HierarchyViwer的构造函数:

30     /** 

31      * Constructs the hierarchy viewer for the specified device. 

32      * 

33      * @param device The Android device to connect to. 

34      */  

35     public HierarchyViewer(IDevice device) {  

36         this.mDevice = device;  

37         setupViewServer();  

38     }  

代码14-3-4 HierarchyViewer构造函数

 

这里HierarchyViewer把ddmlib库的Device实例保存为自己的成员变量以便往后利用它来往ADB发送命令。然后会调用setupViewServer这个成员函数来把ViewServer准备好,下一小节我们会去分析下这个方法。