adb常用命令

2021-09-02 01:14:19 字數 4251 閱讀 7629

android學習第一天-adb常用命令

平時開發android應用 的時候,我們都會用到包含在android sdk中一系列的工具,或許我們通過eclipse去呼叫,又或許,我們自己通過開啟終端進行手動輸入並且執行,下面我們來一起學習下這些工具的開發使用吧。

1.android debug bridge

1.1簡介

android debug bridge,我們一般簡稱為adb,主要存放在sdk安裝目錄下的platform-tools資料夾中,它是乙個非常強大的命令列工具,通過這個工具你能夠與你的android裝置進行互動。同時這是乙個包含了以下三部分的cs模式的程式:

adb client

從圖中,我們知道client是執行在pc端的,每當我們發起乙個adb命令的時候,就會開啟乙個client程式。當然,當我們開啟ddms或者adt的時候,也會自動建立client。

當我們開啟乙個client的時候,它首先會去檢測後台是否已經有乙個server程式在執行著,否則會開啟乙個adb-server程序。

所有的client都是通過5037埠與adb-server進行通訊的。

2)adb daemon(adbd)

從圖中,我們知道daemon是作為乙個後台程序執行在模擬器/真實android裝置中的。

daemon使用埠的範圍是5554-5585,每個模擬器/裝置連線到pc端時,總會開啟這麼乙個後台程序,並且為其分配了兩個連續的埠,比如:

emulator 1, console: 5554

emulator 1, adb: 5555

也正因為每個裝置都分一組兩個埠,也已adb連線手機的最大數量為16。

說回埠的作用,在這兩個埠中,其中偶數埠是用於server 與裝置進行互動的,可以讓server直接從裝置中讀取資料,而奇數埠是用來與裝置的adbd進行連線通訊的。

adb server

從圖中,我們同樣可以知道,server也是作為乙個後台的程式執行在pc端的,他負責管理client程序以及adb daemon之間的通訊。

當乙個server開啟的時候,他會自動繫結並且監聽5037埠,接收client通過該埠傳送過來的命令。同時server還會對5555-5585間的奇數埠進行掃瞄,進行對已連線裝置的定位。

1.2 常用的adb命令

首先我們先來介紹一下,adb命令的使用格式吧:

adb [-d|-e|-s ]

adb是必須的,接下來方括號裡面的內容不是必須的,最後才是我們需要執行的命令操作,例如 adb -s emulator-5554 install ucbrowser.apk (這是安裝uc瀏覽器的意思)

下面先介紹下,前面幾個引數的含義吧:

-d: 讓唯一連線到該pc端的真實安卓裝置執行命令,如果發現usb中連線有多部裝置,將會報錯

-e: 讓唯一連線到該pc端的模擬器執行命令,如果發現開啟了多個模擬器,將會報錯

-s:通過裝置的序列號進行指定裝置執行命令

如果裝置只連線有乙個裝置或者乙個模擬器的時候,可以不用宣告這三個引數,adb缺省會讓這部唯一連線到的裝置進行命令執行。

ok,下面開始講解常用的命令吧:

檢視當前pc端連線有多少裝置:

adb devices

終端中的執行結果為:

從上圖中,我們看到了裝置有的兩種狀態,其實執行該命令,可能返回的狀態有三種:

i. device 裝置已經成功連線到了adb-server

ii. offline 裝置並沒有連線到adb或者沒有響應

iii. no device 並沒有裝置/模擬器連線

檢視adb的版本

adb version

終端中的執行結果為:

給裝置進行軟體的安裝

adb -s install

eg:adb -s 99eb07a9 install d:

終端中的執行結果為:

除了上面這種方法,我們還有另外乙個命令:

adb -s shell pm install [options]

其中[options]中最常用的選項是-r,代表著本次安裝是重新安裝,會保留使用者資料。

解除安裝裝置中已經安裝的軟體

adb -s uninstall

eg:adb -s 99eb07a9 uninstall cn.uc.test

終端中的執行結果為:

除了上面這種方法,我們還有另外乙個命令:

adb -s uninstall [options]

這裡的options是-k,加上該引數表明解除安裝軟體後依舊保留使用者資料

將資料從裝置複製到pc中

adb -s pull

eg:adb -s 99eb07a9 pull /sdcard/stericson-ls d://

終端的執行結果:

在d://盤中我們也可以發現stericson-ls檔案

講資料從pc端複製到裝置中

adb -s push

eg:adb -s 99eb07a9 push d://stericson-ls /sdcard/

終端的執行結果:

獲取連線到的手機的序列號

adb get-serialno

終端的執行結果:

8)獲取裝置的連線狀態

adb -s get-state

eg:adb -s 99eb07a9 get-stat

終端的執行結果:

等待裝置連線成功

adb wait-for-device

該命令將會阻塞一直到預設連線的那部機器狀態變為device,也就是連線成功。

adb-server 的開啟與關閉

adb kill-server

adb start-server

終端的執行結果:

有時候我們開啟server會失敗,這是因為我們裝了的手機助手,豌豆莢或者其他軟體自帶有自己的adb,導致埠衝突開啟失敗。主要關掉那些軟體並且殺掉那些軟體自帶的adb程序重來即可。

1.2 手機執行shell命令

眾所周知,android的核心本身就是linux,所以android本身也支援linux命令,但是因為是手機系統,所以進行了一定的刪減,部分命令不支援,而不支援的部分,我們可以通過安裝busybox這個軟體進行

填補。下面我們講解下如何在手機中執行shell命令:

每次都加上adb shell來進行命令的傳送與執行

adb shell

2) 先通過adb shell進入手機shell執行狀態,然後直接輸入linux命令,如圖:

adb shell am start -a android.intent.action.view -n cn.uc.test/.mainactivity -d

詳情的可以參考:

在這裡就不做太過詳細和重複的說明了

1.4 package manager 常用命令與引數說明

使乙個apk處於禁用狀態,相當於解除安裝了:

disable

其中 package_or_component的格式是 package/class, 如 com.ucmobile/.main.ucmobile

eg:adb shell su disable com.ucmobile/.main.ucmobile

終端執行結果:

同時我們在手機上發現,uc瀏覽器的圖示不見了

讓乙個apk從禁用狀態恢復過來

enable

其中 package_or_component的格式是 package/class, 如 com.ucmobile/.main.ucmobile

eg:adb shell su enable com.ucmobile/.main.ucmobile

終端執行結果:

同時我們從手機上發現,uc瀏覽器的圖示又回來啦。

檢視乙個apk所在的路徑

pm path

eg:adb shell pm path com.ucmobile

終端執行結果:

檢視手機中裝的所有的包

pm list packages

具體更多的詳情,可以參考:

再次不做過多的說明

1.5其他常用的adb命令

螢幕錄影

例如,螢幕開始錄影並且儲存到/sdcard中,同時名字為demo.mp4

adb shell screenrecord /sdcard/demo.mp4

2) 關閉裝置請求,開啟裝置

adb shell stop

adb shell start

3)裝置關機以及重啟

adb reboot

adb shutdown

adb常用命令

安裝軟體 adb install apk檔名稱.apk 重新安裝該軟體 adb install r apk檔名稱.apk 解除安裝apk軟體 adb uninstall apk包名.apk 檢視手機上的執行日誌,此項可以用來查錯 adb logcat 檢視手機是否連線,以及連線了幾台手機 adb d...

adb 常用命令

adb命令的主要用途 1.執行android裝置的shell 命令列 2.管理模擬器或android裝置的對映埠。3.安裝和解除安裝應用程式。關閉或開啟adb服務 關閉adb服務 adb kill server 開啟adb服務 adb start server 檢視當前連線的裝置 adb devic...

adb 常用命令

顯示當前執行的全部模擬器 對某一模擬器執行命令 abd s 模擬器編號 adb devices列出來id 命令 獲取模擬器中的檔案 adb pull 用pull命令可以把裝置 手機 上的檔案或者資料夾複製到本機電腦。例如執行程式在機子中存了乙個日誌檔案,可以用次命令將該檔案拉出來到本店電腦中,檢視詳...