android视图工具,android studio的HierarchyViewer工具如何知道android屏幕的视图属性

让我们首先看看adb是如何组织的.它有3个主要组件,如

here所述 –

> client – 在用于开发的机器上运行的客户端.通过发出adb命令从shell调用客户端.层次结构查看器还会创建adb客户端.

> server – 在开发计算机上作为后台进程运行的服务器.它将从adb客户端发出的命令传递给adbd(adb守护程序).

> adbd – Adb守护程序在每个模拟器或设备上作为后台进程运行. adb守护程序负责从仿真器或设备到adb服务器的数据通信. adb守护程序通过Binder与设备上运行的各种服务进行通信,Binder是一种类似IPC的机制.

例如,当我们在shell上发出类似adb install example.apk的命令时.

它首先在机器上调用adb客户端并告诉它想要安装example.apk.

然后,服务器将apk连同命令一起发送到设备上运行的adb守护程序.通过通常在端口5554上运行的TCP连接进行通信的adb桥完成通信.然后,adb守护进程调用系统服务器来执行命令.

现在让我们来看看故事的android设备方面 –

在每个Android设备上都有一个称为系统服务器的服务器.您可以通过发出命令adb shell ps |来查找此状态grep system_server.系统服务器负责管理服务. System Server运行的某些服务是

>设备政策

>音频服务

>电源管理器

>包管理器

>内容提供商

>窗口管理器

>活动经理

还有很多….

窗口管理器具有以下信息:主线程,窗口操作,方向,分层,输入事件管理,焦点等.有关视图的信息已在Windows Manager中提供.

所以现在将所有内容放在一起,层次结构查看器的最终流程是 –

>层次结构查看器创建adb客户端,在发出REMOTE_COMMAND_CAPTURE_LAYERS或COMMAND_WINDOW_MANAGER_LIST等命令时询问有关视图的信息.

>请求到达adb服务器,adb服务器将其转发到运行应用程序的设备上的adbd.

> adbd将请求转发给系统服务器,系统服务器标识请求必须转发到的服务.在这种情况下,Window Manger.

> Window Manger然后询问View Manager,它负责管理应用程序主UI线程的线程池.

> View Manager将此信息返回给Window Manager.

> Window Manager将数据发送回adbd.

> Adbd将其传回adb服务器.

> adb服务器将数据提供给层次结构查看器.

希望能帮助到你.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值