让我们首先看看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服务器将数据提供给层次结构查看器.

希望能帮助到你.

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

  1. 7.0、Android Studio命令行工具

    命令行工具分成SDK工具和平台工具. SDK工具 SDK工具跟随SDK安装包安装并随时更新. Virtual Device 工具 1. Android Virtual Device Manager 提 ...

  2. Android Studio 工具:Lint 代码扫描工具(含自定义lint)

    什么是 Lint Android Lint 是 SDK Tools 16(ADT 16)开始引入的一个代码扫描工具,通过对代码进行静态分析,可以帮助开发者发现代码质量问题和提出一些改进建议.除了检查 ...

  3. Android studio 使用NDK工具实现JNI编程

    前言: Android开发中常常会使用到第三方的.so库.在使用.so库的时候就要用到JNI编程.JNI是Java Native Interface的缩写.它提供了若干的API实现了Java和其它语言 ...

  4. 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )

    文章目录 一.Visual Studio 中安装 " 使用 C++ 的移动开发 " 开发库 二.Visual Studio 中安装的 Android SDK 和 NDK 位置 三. ...

  5. 为什么unity 安装完模块还是找不到sdk_解决在Android Studio 3.2找不到Android Device Monitor工具...

    升级到AndroidStudio最新版本(>3.2)朋友们都会遇到一个问题,找不到DDMS [Android Device Monitor], 只能从SDK目录下找到 monitor 启动DDM ...

  6. 解决在Android Studio 3.2找不到Android Device Monitor工具

    升级到AndroidStudio最新版本(>3.2)朋友们都会遇到一个问题,找不到DDMS [Android Device Monitor], 只能从SDK目录下找到 monitor 启动DDM ...

  7. Android UI 优化——使用HierarchyViewer工具

    进入正题,我们这一篇文章会提到为什么使用HierarchyViewer,怎么使用HierarchyViewer,后者内容会多一下. 为什么使用HierarchyViewer 不合理的布局会使我们的应用 ...

  8. Android UI 显示工具——HierarchyViewer工具

    UI 显示工具--HierarchyViewer 为什么使用HierarchyViewer HierarchyViewer能够可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设 ...

  9. 谷歌java安卓代码检查工具,Android Studio 代码检查工具介绍

    前言 利用好相关代码检查工具,是一种自我的CodeReview,可以有效降低Bug率,提升自我的代码优化意识.常用的代码检查工具有AndroidStudio 自带的Lint工具. Alibaba Ja ...

最新文章

  1. [ 总结 ] nginx 负载均衡 及 缓存
  2. Dora.Interception,为.NET Core度身打造的AOP框架 [1]:更加简练的编程体验
  3. SQL Server 2012如何打开2016的profiler文件
  4. 【剑指offer】面试题29:顺时针打印矩阵(Java)
  5. AnimalTFDB 3.0 | 动物转录因子注释和预测的综合资源库
  6. 【POJ1177】【HDU1828】【codevs2149】矩形面积周长并
  7. cad显示驱动程序文件已丢失或损坏_win7系统下打开AutoCAD 2014时显示驱动程序文件.hdi丢失如何解决...
  8. 数据的降维之特征选择及主成分分析
  9. MantisBT安装部署(XAMPP)邮件配置 中文配置
  10. ADS仿真设计AB类射频功率放大器
  11. OV5640时钟理解与端口理解(一)
  12. 驾照考试之科目二(深圳仙田版)
  13. PyEcharts 直角坐标系图表之箱形图
  14. 第35讲:Xposed+模拟器的详细使用
  15. #软件设计模式#桥接模式#小黑的学习笔记
  16. log 的抓取与分析
  17. win10安装wsl 2.0子系统 安装在非C盘
  18. 系统常见错误的解决方法
  19. 跟着鸟哥学linux【三】
  20. 影像重采样matlab程序,matlab重采样代码

热门文章

  1. Hibernate的检索策略
  2. Spring高级程序设计这本书怎么样
  3. 《Excel与VBA程序设计》第一章
  4. php用json交换二维数组,PHP和Javascript的JSON交互(处理一个二维数组)
  5. 安卓APP_ Fragment(5)—— Fragment + ViewPager2 模拟微信首页 (2)两者联动翻页
  6. 智能家居 (1) ——智能家居整体功能框架
  7. 关于 There is no getter for property named ‘id‘ in ‘class java.lang.Integer‘
  8. 数据库:MySQL相关知识整理,值得收藏!
  9. 分享程序员提升自身能力的7个实用网站
  10. 计算机系统基础:总线结构知识笔记