Android物語:adb 介紹

adb簡介

Android Debug Bridge (adb) 是一個Android的命令行工具??梢杂脕磉B接模擬器或?qū)嶋H的移動設(shè)備。比如 adb logcat, adb shell。Dalvik Debug Monitor Server(DDMS) 后臺也是運(yùn)行的adb來實(shí)現(xiàn)監(jiān)控調(diào)試移動設(shè)備。

adb 原理

adb允許我們與模擬器或連接的 Android 設(shè)備進(jìn)行通信。并提供對 Unix shell(可用來在模擬器或連接的設(shè)備上運(yùn)行各種命令)的訪問。該工具是一個C/S架構(gòu)實(shí)現(xiàn)的程序,包括三個組件:

  • ADB Client:運(yùn)行在PC上,通過在命令行執(zhí)行adb,就啟動了ADB Client程序
  • ADB Server:運(yùn)行于PC的后臺進(jìn)程,用于管理ADB Client和Daemon間的通信
  • ADB Daemon (即adbd) :運(yùn)行在模擬器或移動設(shè)備上的后臺服務(wù)。當(dāng)Android系統(tǒng)啟動時,由init程序啟動adbd。如果adbd掛了,則adbd會由init重新啟動。

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


image.png

adb執(zhí)行過程

  • 1.Client 調(diào)用某個 adb 命令
  • 2.adb 進(jìn)程 fork 出一個子進(jìn)程作為 Server
  • 3.Server 查找當(dāng)前連接的 emulator/device
  • 4.Server 接收到來自 Client 請求
  • 5.Server 處理請求,將本地處理不了的請求發(fā)給 emulator/device
  • 6.位于 emulator/device 的 adbd拿到請求后交給對應(yīng)的java虛擬機(jī)進(jìn)程。
  • 7.adbd 將結(jié)果發(fā)回給 Server
  • 8.Server 將結(jié)果發(fā)回給 Client
image.png

Q&A

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

A:因?yàn)?ADB 是一個需要支持多對多架構(gòu)的工具,一個PC可以連接多臺手機(jī)設(shè)備或虛擬機(jī),一個手機(jī)也可以同時連接多臺PC。就需要一個統(tǒng)一的Sever管理多個設(shè)備的連接。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文章轉(zhuǎn)載于搜狗測試 adb通過wifi連接android設(shè)備 問題背景 近期的項(xiàng)目測試中,需要將移動設(shè)備與廠商機(jī)...
    夜境閱讀 2,120評論 0 3
  • ADB Android 調(diào)試橋 (adb) 是一個通用命令行工具,其允許您與模擬器實(shí)例或連接的 Android 設(shè)...
    Mr槑閱讀 4,082評論 1 8
  • 昨晚正在測case的時候,突然冒出來一同事(我們都叫他肖總),來了一句:BUG基(同事都叫我BUG基,你懂的...
    三笑奈若何閱讀 8,481評論 6 15
  • 介紹 針對移動端Android的測試,掌握adb命令將會為Android測試帶來很大的便利。adb全稱是Andro...
    Alex_tester閱讀 3,534評論 0 0
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,805評論 16 22

友情鏈接更多精彩內(nèi)容