adb是什么? adb就是Android调试桥,很形象啊。 先来看adb原理的逻辑图:

ADB架构
adb由两个物理文件组成:
adb/adb.exe
运行于PC端,包括Linux、Windows、Mac OS等系统之中,通常是x86架构上(下文中,ADB指整个模块,而adb单独指这一部分);
adbd
运行于Android设备的底层Linux之中,ARMv5架构上。

构建不同文件,通过传入Android.mk的$(BUILD_SIMULATOR)变量是否为真。源码中由ADB_HOST宏用来区分本地主机(adb)和目标机(adbd)。
区分不同OS,通过传入Android.mk的$(HOST_OS)。它的有效取值包括linux、darwin、freebsd和windows。不同平台的主要差异是USB的控制方法和文件路径。

ADB各模块定义:

adb server: 计算机上的一个服务进程,进程名为adb
adbd (adb daemon) : Android 手机上的一个服务进程,进程名为adbd
adb client:你可以认为是计算机上的一个终端窗口,进程名也为adb
DDMS:Dalvik Debug Monitor Service
Jdwp: Java Debug Wire Protocol

adbd (ADB daemon):

运行于device/emulator的守护进程(Local service)。其作用如下:
1,用来连接device/emulator和adb server,device通过USB连接,emulator通过TCP连接。
2,为device/emulator提供服务--> adb service(adb服务,注意与adb服务端的区别)的概念,指adbd提供的功能。
在emulator/device端,adbd也创建local socket和remote socket,前者与通过jdwp与dalvik VM进层通信,后者通过TCP/USB与adb server通信。

adb 架构的更多相关文章

  1. 玩转ADB命令(ADB命令使用大全)转载

    ADB是什么 Adb的全称为Android Debug Bridge:android调试桥梁,下图为Android官方对adb的介绍:可以看出,Android的初衷是用adb这样的一个工具来协助开发人 ...

  2. 如何在Linux快速搭建一套ADB环境

    一.ADB简介 1.什么是ADB Android Debug Bridge,安卓调试桥,它借助adb.exe(Android SDK安装目录platform-tools下),用于电脑端与模拟器或者真实 ...

  3. 回首2018 | 分析型数据库AnalyticDB: 不忘初心 砥砺前行

    题记 分析型数据库AnalyticDB(下文简称ADB),是阿里巴巴自主研发.唯一经过超大规模以及核心业务验证的PB级实时数据仓库.截止目前,现有外部支撑客户既包括传统的大中型企业和政府机构,也包括众 ...

  4. adb 查看 android手机的CPU架构

    adb shell cat  /proc/cpuinfo 当然要下载adb并配置好环境变量

  5. 搭建一套自己实用的.net架构(3)续 【ORM Dapper+DapperExtensions+Lambda】

    前言 继之前发的帖子[ORM-Dapper+DapperExtensions],对Dapper的扩展代码也进行了改进,同时加入Dapper 对Lambda表达式的支持. 由于之前缺乏对Lambda的知 ...

  6. [ADB]ADB(Android Debug Bridge)简介及基础(不包含命令)

    "Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an ...

  7. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

  8. Android系统在超级终端下必会的命令大全(adb shell命令大全)

    . 显示系统中全部Android平台: android list targets . 显示系统中全部AVD(模拟器): android list avd . 创建AVD(模拟器): android c ...

  9. android安卓 SQLite教程:内部架构及SQLite使用办法

    SQLite 介绍 SQLite一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能.由于JDBC不适合手机这种内存受限设备,所以Android开发人员需要学习新的API ...

随机推荐

  1. Gnome3 安装系统监视器

    . . . . . 之前使用Gnome2的时候可以向面板上添加一个系统监视器,相信很多人都用过这个实用的小工具,可以很方便的了解系统的运行概况.但是自从使用了Gnome3之后这个小工具不见了,Gnom ...

  2. PHP只显示姓名首尾字符,隐藏中间字符并用*替换

    //测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo mb_strlen($str,'utf8').'& ...

  3. 【Unity笔记】使物体(船)漂浮在水面上——浮力

    在官方论坛看到一个关于怎么使物体漂浮在水面上的讨论:https://forum.unity3d.com/threads/floating-a-object-on-water.31671/ 水动力系统 ...

  4. 【Unity笔记】提示框ToolTips大小自适应,及其闪烁的问题

    需求:制作了一个提示框,当鼠标移入背包格子内,显示提示框,且提示框位置跟随鼠标移动.当鼠标移出背包格子,隐藏提示框. 制作提示框ToolTips 因为提示框的大小要求随着显示的文本内容长度而自动大小适 ...

  5. 对于PHP中enum的好奇

    PHP中没有struct.enum这些东西,虽然万能的array用起来很爽,但写出来的代码typo问题很多.可维护性也差,需要更多的测试来辅助,而一旦加上测试的工作量是否还谈得上『爽』就是个问号了. ...

  6. CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解

    CAS (6) -- Nginx代理模式下浏览器访问CAS服务器网络顺序图详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1. ...

  7. sql sever读取写入Excel总结

    主要用到openrowset,opendatasource系统函数,这两个函数任意一个都能完成任务 用这种方法可以实现Excel和sqlserver表之间的相互导入导出. 如果使用openrowset ...

  8. android开发(36) Android WebView背景设置为透明

    xml布局 <WebView android:id="@+id/wv_content" android:layout_width="match_parent&quo ...

  9. 纯css 404

    <section class="center"> <article> <h1 class="header"> 404< ...

  10. 【C】——const和volatile可以并用吗?

    答案是肯定的,可以一起用. 因为很多人误解了const的真正含义,很多初学者认为const修饰的就是常量,而常量不会改变,而既然不会改变,那volatile就没有意义. 但是实际上这正是对const的 ...