adb常用操作命令總結(jié)

介紹

針對移動端Android的測試,掌握adb命令將會為Android測試帶來很大的便利。
adb全稱是Android Debug Bridge,中文為安卓調(diào)試橋,adb是一個C/S架構(gòu)的命令行工具,存放于sdk目錄下的platform-tools目錄下。

adb架構(gòu)

1、adb client(客戶端)

client是運行在PC端的,該組件發(fā)送命令,可以通過發(fā)出adb命令從命令行終端調(diào)用客戶端。每當(dāng)我們發(fā)起一個adb命令的時候,就會開啟一個client程序。當(dāng)然,當(dāng)我們開啟DDMS或者ADT的時候,也會自動創(chuàng)建client。當(dāng)我們開啟一個client的時候,它首先會去檢測后臺是否已經(jīng)有一個server程序在運行著,否則會開啟一個adb-server進程。所有的client都是通過5037端口與adb-server進行通信的。

2、adb daemon(adbd后臺程序)

Daemon,該組件作為一個后臺進程運行在模擬器/真實Android設(shè)備中,在設(shè)備上運行命令。daemon使用端口的范圍是5554-5585,每個模擬器/設(shè)備連接到PC端時,總會開啟這樣一個后臺進程,并且為其分配了兩個連續(xù)的端口,比如:
Emulator1, console: 5554
Emulator1, adb: 5555
因為每個設(shè)備都分一組兩個端口,所以adb連接手機的最大數(shù)量為16。
端口的作用,在這兩個端口中,其中偶數(shù)端口是用于server與設(shè)備進行交互的,可以讓server直接從設(shè)備中讀取數(shù)據(jù),而奇數(shù)端口是用來與設(shè)備的adbd進行連接通信的。

3、adb server(服務(wù)器)

Server,該組件管理客戶端和后臺程序之間的通信,作為一個后臺的程序運行在PC端。當(dāng)一個server開啟的時候,會自動綁定并且監(jiān)聽5037端口,接收client通過該端口發(fā)送過來的命令。同時server還會對5555-5585間的奇數(shù)端口進行掃描,進行對已連接設(shè)備的定位。

adb基本架構(gòu).png

一、設(shè)備相關(guān)命令

adb啟動
adb start-server
adb關(guān)閉
adb kill-server
查看已連接設(shè)備
adb devices
指定設(shè)備
adb -s <設(shè)備名> <命令>    # 當(dāng)有多設(shè)備連接時,通過-s <設(shè)備名> 來指定設(shè)備進行操作
獲取設(shè)備的狀態(tài)
adb get-state    # 一共有3種狀態(tài),
# 1.device:設(shè)備連接正常
# 2.offline: 設(shè)備連接異常
# 3.unknown: 沒有連接設(shè)備
重新掛載設(shè)備
adb remount
重啟設(shè)備
adb reboot

二、應(yīng)用相關(guān)命令

應(yīng)用程序安裝
adb install <apk文件>
adb install -r <apk文件>    # -r:保留程序運行所產(chǎn)生的數(shù)據(jù)和緩存目錄進行安裝
應(yīng)用程序卸載
adb uninstall <應(yīng)用包名>
adb uninstall -k <應(yīng)用包名>    # -k:不刪除程序運行所產(chǎn)生的數(shù)據(jù)和緩存目錄
應(yīng)用數(shù)據(jù)清除
adb shell pm clear <應(yīng)用包名>
查看應(yīng)用包名
adb shell pm list package    # 顯示所有應(yīng)用列表
adb shell pm list package -s    # 顯示系統(tǒng)應(yīng)用
adb shell pm list package -3    # 顯示第三方應(yīng)用
adb shell pm list package -f    # 列出應(yīng)用包名及存放位置
adb shell pm list package | grep <過濾字段>    # 使用grep過濾指定字段的應(yīng)用
獲取應(yīng)用Activity
adb shell dumpsys activity | grep mFocusedActivity    
# mFocusedActivity為當(dāng)前和用戶交互的Activity,所以得先打開應(yīng)用程序再使用該命令
adb shell dumpsys window windows | grep Current
adb logcat | grep ActivityManager
啟動應(yīng)用
adb shell am start -n <應(yīng)用包名+啟動的Activity>
關(guān)閉應(yīng)用
adb shell force-stop <應(yīng)用包名>

三、文件傳輸命令

將Android設(shè)備中的文件發(fā)送到PC上
adb pull <設(shè)備文件路徑> <本地文件路徑>
adb pull /sdcard/test.txt D:\testdir\
將PC上的文件發(fā)送到Android設(shè)備中
adb push <本地文件路徑> <設(shè)備文件路徑> 
adb push D:\testdir\test.txt /sdcard/

四、獲取日志命令

adb抓取log信息
adb logcat > <文件路徑+文件名>    # 抓取Android系統(tǒng)中的所有日志
adb抓取報錯信息
adb shell bugreport > <文件路徑+文件名>    # 設(shè)備報錯或ANR等可使用該命令打印日志信息
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,990評論 2 59
  • 感恩一大早的美術(shù)老師給我打電話讓妞去聽一節(jié)美術(shù)課,女兒有些膽怯不敢去,我鼓勵她你去嘗試一下不行咱們就不上,感恩大兒...
    夢不贏最美閱讀 199評論 0 1
  • 顧葦一進家門就看見老媽笑得異常喜慶:“兒子回來啦?!快快快,進來進來。” 就連不茍言笑的老爸顧青城也“慈祥”...
    北北齊閱讀 240評論 0 1
  • 偶爾駐足街頭,看時髦女郞衣襟細碎斤斤吊吊,不禁感嘆好熱鬧,再看自己一襲素衣太過清簡,憐愛油然而生,不是惋惜自己舍不...
    伊尚曼網(wǎng)閱讀 296評論 0 0

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