一. Adb命令html
Adb全稱是Android Debug Bridge,翻譯過來就是安卓調試橋,一種多用途的命令行工具,能夠鏈接模擬器或者真實的安卓設備進行通訊,他是一個包括三個組成的客戶端-服務端程序
1.1 客戶端是運行在咱們的開發機器上,經過adb命令能夠從shell調用客戶端,其餘Android工具,如ADT插件和DDMS也能夠建立adb命令的客戶端。
1.2 服務端是在開發機器後臺運行的進程。服務器管理客戶端和運行在模擬器或者真實設備上的adb守護(adb daemon)進程之間的通訊
1.3 adb daemon是一個運行在模擬器或者真實安卓設備後臺的而守護進程
Adb命令文件所在路徑<sdk>/platform-tools/
當你運行一個adb的客戶端的時候,首先會檢查adb的服務端是否在運行,若是沒有運行,那麼會自動開啓一個服務端進程。當服務端開啓後,他會綁定本地的tcp端口5037,而且經過5037端口監聽全部客戶端發過來的命令
Adb使用
類別android |
命令shell |
說明服務器 |
備註網絡 |
可選項app |
-ddom |
命令僅對USB設備有效socket |
若是有多個USB設備就會返回錯誤tcp |
-eide |
命令僅對運行中的模擬器有效 |
若是有多個運行中的模擬器就會返回錯誤 |
|
-s <serialNumber> |
命令僅對adb關聯的特定序列號的模擬器或手機有效(例如 "emulator-5556"). |
若是不指定設備就會返回錯誤 |
|
通常項 |
devices |
輸出全部關聯的模擬器或手機設備列表 |
參見 Querying for Emulator/Device Instances以得到更多信息。 |
help |
輸出adb支持的命令 |
|
|
version |
輸出adb的版本號 |
|
|
調試項 |
logcat [<option>] [<filter-specs>] |
在屏幕上輸出日誌信息 |
|
bugreport |
爲報告bug,在屏幕上輸出dumpsys,dumpstate和 logcat數據 |
|
|
jdwp |
輸出有效的JDWP進程信息 |
可使用 forward jdwp:<pid> 轉換端口以鏈接到指定的 JDWP 進程,例如: adb forward tcp:8000 jdwp:472 jdb -attach localhost:8000 |
|
數據項 |
install <path-to-apk> |
安裝應用程序(用完整路徑指定.apk文件) |
|
pull <remote> <local> |
從模擬器或手機COPY文件到開發機 |
|
|
push <local> <remote> |
從開發機COPY指定的文件到模擬器或手機 |
|
|
端口和網絡項 |
forward <local> <remote> |
從本地端口轉換鏈接到模擬器或手機的指定端口 |
端口可使用如下格式表示: tcp:<portnum> local:<UNIX domain socket name> dev:<character device name> jdwp:<pid> |
ppp <tty> [parm]... |
經過USB運行UPP <tty> —PPP流中的tty。例如:/dev/omap_csmi_ttyl。 [parm]... — 0到多個PPP/PPPD 選項,例如 defaultroute, local, notty等等。 注意不用自動啓動PPP鏈接 |
|
|
腳本項 |
get-serialno |
輸出adb對象的序列號 |
參見 Querying for Emulator/Device Instances以得到更多信息。 |
get-state |
輸出adb設備的狀態 |
||
wait-for-device |
阻塞執行直到設備已經鏈接,即設備狀態是 device. |
能夠在其餘命令前加上此項,那樣的話adb就會等到模擬器或手機設備已經鏈接纔會執行命令,例如: 注意該命令並不等待系統徹底啓動,所以不能追加須要在系統徹底啓動才能執行的命令,例如install 命令須要Android包管理器支持,但它必須在系統徹底啓動後纔有效。下面的命令
會在模擬器或手機與adb發生鏈接後就執行install,但系統尚未徹底啓動,因此會引發錯誤。 |
|
服務端項 |
start-server |
檢測adb服務進程是否啓動,若是沒啓動則啓動它。 |
|
kill-server |
終止服務端進程 |
|
|
Shell |
shell |
在目標模擬器或手機上啓動遠程SHELL |
參見 Issuing Shell Commands以得到更多信息。 |
shell [<shellCommand>] |
在目標模擬器或手機上執行shellCommand而後退出遠程SHELL |
使用實例
1. –d 參數
-e 參數
-s < serialNumber > 參數,尖括號裏的內容是必須的
2. devices命令
注意設備的狀態包含三種:
Offline(不能調試僅是鏈接,緣由極可能是adb與安卓系統不匹配) device(正常狀態可調試) unauthorized(鏈接後不能調試,緣由是未在手機上贊成調試)
加上-l 參數會列出設備的詳細信息,若是報錯是error:protocol fault(no status),那從任務管理器殺掉各類手機助手的進程
help 命令,詳細列出adb命令及參數的幫助文檔
version 命令,顯示adb版本
3. logcat 命令,查看設備日誌
若是隻有一臺設備直接執行adb logcat就能夠,
若是有多臺,那麼須要指定某一個設備執行adb –s 192.168.56.101 logcat
可是這個命令刷新日誌會很快,咱們的dos窗口很差查看,因此咱們能夠將結果重定向到一個文件,而後打開文件方便查看
查看logcat.txt文件內容以下:
logcat 的-f參數是將日誌保存到文件,這個文件是在設備上,使用以下
logcat 自己會顯示出不少日誌來,那麼咱們能夠經過篩選來得到咱們想要的應用的日誌,直接使用adb logcat時的用法
先使用adb shell進入shell環境再logcat
bugreport命令,會將dumpsys,dumpstate以及logcat的信息所有顯示
dumpsys:安卓系統命令,獲取android服務進程的各個信息
dumpstate:安卓系統命令,系統狀態信息,裏面比較全,包括手機當前的內存信息、cpu信息等等
使用和以前的同樣,能夠重定向到文件
adb bugreport>Desktop\bugreport.log
單獨顯示dumpsys和dumpstate的信息,使用以下:
adb shell dumpsys>Desktop\dumpsys.log
adb shell dumpstate>Desktop\dumpstate.log
4. install 命令,安裝app文件到設備
若是已經安裝了,須要再次安裝須要加參數-r,不然會失敗
有安裝就會有卸載uninstall
pull命令,從手機設備COPY指定的文件到開發機
push命令,從開發機copy指定文件到設備
5. start-server命令,檢查服務狀態,若是沒啓動那就啓動
kill-server 命令,殺死全部adb進程
一般當咱們在執行adb時碰到error或者設備狀態不對,能夠嘗試重啓adb服務,也就是使用這兩命令,就猶如網管的重啓電腦大殺器同樣
6. shell命令,進入安卓shell環境,這裏的shell環境就是指安卓系統
shell <command> 命令,直接執行shell環境下的命令,例子以下:
這裏用的vmstat命令會顯示服務器的狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換狀況,IO讀寫狀況
7. root 命令,以root身份重啓adbd守護進程,對於未得到root權限的手機,這個命令執行時會報錯的
usb 命令,在usb上重啓守護進程的監聽
tcpip <port> 命令,在特定端口上以tcpip協議重啓守護進程的監聽
下面實例演示手機wifi鏈接電腦
先使用usb鏈接手機和電腦,查看
再使用adb tcpip 8787 重啓守護進程
而後查看手機設備的ip,這裏個人是192.168.1.109,注意這裏須要保持電腦ip和手機ip可以互相ping通,使用adb connect 192.168.1.109:8787 鏈接設備
再次查看鏈接的設備
這裏顯示兩個,一個是usb的鏈接,一個是wifi鏈接,拔掉數據線,咱們依然能夠針對該設備進行調試操做
斷開wifi鏈接命令
再次轉換爲usb,使用命令adb usb便可
二. Dos命令
2.1 cd命令,切換目錄
注意切換盤符不能使用cd e:這樣的形式,必須直接使用e:就能夠切換
cd workspace 進入e盤workspace目錄
cd ..返回上一級目錄,cd ..\..\ 返回上兩級目錄
2.2 dir 查看當前目錄都有哪些文件
2.3 md 建立目錄
rd /s /q testdir 刪除testdir這個目錄及其如下的全部文件
type test.txt 查看文件內容
del test.txt刪除文件
2.4 netstat –ano|findstr 4723 查看端口占用狀況,下面截圖表示該端口已佔用,最後一列的數字是該進程的id
taskkill -F -pid 7812 按照進程號強殺某進程
taskkill -F -im name 按照進程名稱強殺進程
三.安卓shell命令
3.1 cd命令,切換目錄
cd ..返回上一級
cd –返回上次的目錄
cd ~返回當前用戶的家目錄
pwd 命令,顯示當前所在目錄路徑
3.2 ls 命令顯示當前目錄下的全部文件(不包括隱藏文件)
ll 命令是以上列表的形式顯示全部文件(不包括隱藏文件),注意第一列的第一個字符,-表示是文件,d表示是目錄,ll其實是ls –l的簡寫
3.3 rm –rf <文件或者目錄>表示強制刪除文件或者目錄,-r表示遞歸刪除 –f表示強制不用詢問
mkdir <目錄名稱> 建立目錄3.4 cat <文件名稱> 查看文件內容