Android物语:adb 介绍

adb简介

Android Debug Bridge (adb) 是一个Android的命令行工具。可以用来连接模拟器或实际的移动设备。比如 adb logcat, adb shell。Dalvik Debug Monitor Server(DDMS) 后台也是运行的adb来实现监控调试移动设备。

adb 原理

adb允许我们与模拟器或连接的 Android 设备进行通信。并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。该工具是一个C/S架构实现的程序,包括三个组件:

  • ADB Client:运行在PC上,通过在命令行执行adb,就启动了ADB Client程序
  • ADB Server:运行于PC的后台进程,用于管理ADB Client和Daemon间的通信
  • ADB Daemon (即adbd) :运行在模拟器或移动设备上的后台服务。当Android系统启动时,由init程序启动adbd。如果adbd挂了,则adbd会由init重新启动。

您可以在 android_sdk/platform-tools/ 中找到 adb 工具。


image.png

adb执行过程

  • 1.Client 调用某个 adb 命令
  • 2.adb 进程 fork 出一个子进程作为 Server
  • 3.Server 查找当前连接的 emulator/device
  • 4.Server 接收到来自 Client 请求
  • 5.Server 处理请求,将本地处理不了的请求发给 emulator/device
  • 6.位于 emulator/device 的 adbd拿到请求后交给对应的java虚拟机进程。
  • 7.adbd 将结果发回给 Server
  • 8.Server 将结果发回给 Client
image.png

Q&A

Q:PC上为什么要有一个ADB Server,而不是ADB Client 和 ADB Daemon 直接通信呢?

A:因为 ADB 是一个需要支持多对多架构的工具,一个PC可以连接多台手机设备或虚拟机,一个手机也可以同时连接多台PC。就需要一个统一的Sever管理多个设备的连接。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文章转载于搜狗测试 adb通过wifi连接android设备 问题背景 近期的项目测试中,需要将移动设备与厂商机...
    夜境阅读 2,120评论 0 3
  • ADB Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设...
    Mr槑阅读 4,080评论 1 8
  • 昨晚正在测case的时候,突然冒出来一同事(我们都叫他肖总),来了一句:BUG基(同事都叫我BUG基,你懂的...
    三笑奈若何阅读 8,476评论 6 15
  • 介绍 针对移动端Android的测试,掌握adb命令将会为Android测试带来很大的便利。adb全称是Andro...
    Alex_tester阅读 3,529评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,787评论 16 22

友情链接更多精彩内容