ADB命令詳解


 

概述

adb(Android debug bridge),用於管理模擬器或真機。包括三個部分:adb客戶端(PC上),adb服務器(PC上),adbd(模擬器或真機上)。網上看到下圖,貼上來

  運行adb客戶端時,會檢測adb服務器進程時候運行,如果沒有運行,啟動服務器。當服務器啟動時,會綁定到本地的TCP5037端口。並且監聽從adb客戶端發來的命令。

說明:可以通過 adb start-server啟動服務,通過adb kill-server停止服務。

  adb服務器與所有正在運行的模擬器和真機連接。它通過掃描5555—5585之間的奇數端口來搜索模擬器或真機,一旦發現adb守護進程,就通過此端口進行連接。需要說明的是,每一個模擬器或真機使用一對端口,奇數端口用於adb連接,偶數端口用於控制台連接。

  如果模擬器與adb在5555端口連接,則控制台的連接端口將是5554.

 

Android 命令

  使用Android命令的前提條件,一定要將sdk\tools目錄放到環境變量中。

  使用android -h獲取幫助信息。android list device和adb devices輸出的內容不一致,應該是android輸出的並不是已經運行的設備,而是其能創建虛擬機的設備列表,使用eclipse創建虛擬機的時候,可以選擇的那個列表。另外android命令執行的時間比較長。android命令沒有特別去操作,只是在網上看到很多人寫的博客中都有android命令,但是自己用的時候卻提示不是內部或外部命令。所以將使用android命令的前提寫出來。

  android包含很多子命令。可以通過以下方式查看子命令的幫助信息:

  例如查看創建模擬器子命令的幫助信息:android -h create avd

  在sdk\tools目錄中,不止有android命令。還有ddms等命令,可以操作一下試試。

 

ADB常用命令

  adb version 查看adb版本

  adb install [-lrtsdg] <file> 安裝app

  adb install-multiple [-lrtsdpg] <file ... >

  adb uninstall [-k] <pakage> 卸載app

  adb push <local> <remote> 從PC拷貝東西到設備上

  adb pull <remote> <local> 從設備拷貝東西到PC上

  adb logcat 設備的日志

  adb bugreport 查看bug報告

  adb jdwp

  adb sync [<directory>] 

  adb shell 進入設備的shell命令

  adb emu

  adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages ... >]

  adb restore

  adb disable-verity

  adb enable-verity

  adb keygen <file>

  adb forward <local> <remote> 將特定端口上的請求轉發到模擬器或手機的指定端口上。

  adb forward --no-rebind <local> <remote>  

  adb forward --list  

  adb forward --remove <local>

  adb forward --remove-all

  adb reverse <remote> <local>

  adb reverse --norebind <remote> <local>

  adb reverse --list

  adb reverse --remove <remote>

  adb reverse --remove-all

 

 

 

 

連接設備相關:

  adb -a 命令針對所有的設備,需要與命令一起使用,例如 adb -a push <local> <remote>

  adb -d 命令針對真機,需要與命令一起使用。如果有多個模擬器或手機,當使用adb命令的時候就需要指定目標設備。

  adb -e 命令針對虛擬機,需要與命令一起使用。如果有多個模擬器或手機,當使用adb命令的時候就需要指定目標設備。

  adb -s <specific device> 命令針對指定設備,需要與命令一起使用。如果有多個模擬器或手機,當使用adb命令的時候就需要指定目標設備。

  adb -p <product name or path>

  adb -H 訪問其他機器上的adb service

  adb -P 訪問其他機器上的adb service

  adb devices [-l] 列出所有的設備,實際列出的就是設備的serialnumber,可以通過-s指定列出的serialNumber找到對應的設備

  adb connect <host>[:<port>] 

  adb disconnect[<host>[:<port>]] 

  

 

scripting :

  adb wait-for-device

  adb start-server 啟動adb server

  adb kill-server 停止adb server

  adb get-state 列出設備狀態: offline | bootloader | device

  adb get-serialno 列出設備的serial number

  adb get-devpath 

  adb remount 從新掛載系統分區,使其可寫(system、vendor、oem目錄)

  adb reboot [bootloader|recovery] 

  adb reboot sideload

  adb reboot sideload-auto-reboot

  adb sideload <file>

  adb root  重啟adbd並獲得root權限

  adb unroot  重啟adbd並釋放root權限

  adb usb

  adb tcpip <port>

 

 

Android系統對應的命令(部分為linux命令)

adb shell am start -n <package_name>/.<activity_class_name>  // 啟動應用

adb shell top        // 查看設備cpu和內存占用情況
adb shell top -m 6     // 查看占用內存前6的app
adb shell top -n 1    // 刷新一次內存信息,然后返回
adb shell procrank     // 查詢各進程內存使用情況
adb shell kill [pid]    // 殺死一個進程
adb shell ps        // 查看進程列表
adb shell ps -x [PID]    // 查看指定進程狀態

adb shell service list   // 查看后台services信息

 

emulator命令

可以使用emulator命令啟動模擬器。

emulator -avd <avd名稱>

emulator -data 鏡像文件名稱

 

連接真機的兩種方式

  可以通過兩種方式連接真機,通過usb連接,也可以通過局域網連接,如下圖所示。通過局域網連接的方式需要使用命令adb connect <host>[:<port>],斷開連接的方式 adb disconnect[<host>[:<port>]]

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM