ADB命令详解
概述
adb(Android debug bridge),用于管理模擬器或真機。包括三個部分:adb客戶端(PC上),adb服務(wù)器(PC上),adbd(模擬器或真機上)。網(wǎng)上看到下圖,貼上來
運行adb客戶端時,會檢測adb服務(wù)器進程時候運行,如果沒有運行,啟動服務(wù)器。當服務(wù)器啟動時,會綁定到本地的TCP5037端口。并且監(jiān)聽從adb客戶端發(fā)來的命令。
說明:可以通過 adb start-server啟動服務(wù),通過adb kill-server停止服務(wù)。
adb服務(wù)器與所有正在運行的模擬器和真機連接。它通過掃描5555—5585之間的奇數(shù)端口來搜索模擬器或真機,一旦發(fā)現(xiàn)adb守護進程,就通過此端口進行連接。需要說明的是,每一個模擬器或真機使用一對端口,奇數(shù)端口用于adb連接,偶數(shù)端口用于控制臺連接。
如果模擬器與adb在5555端口連接,則控制臺的連接端口將是5554.
Android 命令
使用Android命令的前提條件,一定要將sdk ools目錄放到環(huán)境變量中。
使用android -h獲取幫助信息。android list device和adb devices輸出的內(nèi)容不一致,應(yīng)該是android輸出的并不是已經(jīng)運行的設(shè)備,而是其能創(chuàng)建虛擬機的設(shè)備列表,使用eclipse創(chuàng)建虛擬機的時候,可以選擇的那個列表。另外android命令執(zhí)行的時間比較長。android命令沒有特別去操作,只是在網(wǎng)上看到很多人寫的博客中都有android命令,但是自己用的時候卻提示不是內(nèi)部或外部命令。所以將使用android命令的前提寫出來。
android包含很多子命令??梢酝ㄟ^以下方式查看子命令的幫助信息:
例如查看創(chuàng)建模擬器子命令的幫助信息:android -h create avd
在sdk ools目錄中,不止有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拷貝東西到設(shè)備上
adb pull <remote> <local> 從設(shè)備拷貝東西到PC上
adb logcat 設(shè)備的日志
adb bugreport 查看bug報告
adb jdwp
adb sync [<directory>]
adb shell 進入設(shè)備的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> 將特定端口上的請求轉(zhuǎn)發(fā)到模擬器或手機的指定端口上。
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
連接設(shè)備相關(guān):
adb -a 命令針對所有的設(shè)備,需要與命令一起使用,例如 adb -a push <local> <remote>
adb -d 命令針對真機,需要與命令一起使用。如果有多個模擬器或手機,當使用adb命令的時候就需要指定目標設(shè)備。
adb -e 命令針對虛擬機,需要與命令一起使用。如果有多個模擬器或手機,當使用adb命令的時候就需要指定目標設(shè)備。
adb -s <specific device> 命令針對指定設(shè)備,需要與命令一起使用。如果有多個模擬器或手機,當使用adb命令的時候就需要指定目標設(shè)備。
adb -p <product name or path>
adb -H 訪問其他機器上的adb service
adb -P訪問其他機器上的adb service
adb devices [-l] 列出所有的設(shè)備,實際列出的就是設(shè)備的serialnumber,可以通過-s指定列出的serialNumber找到對應(yīng)的設(shè)備
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 列出設(shè)備狀態(tài): offline | bootloader | device
adb get-serialno 列出設(shè)備的serial number
adb get-devpath
adb remount 從新掛載系統(tǒng)分區(qū),使其可寫(system、vendor、oem目錄)
adb reboot [bootloader|recovery]
adb reboot sideload
adb reboot sideload-auto-reboot
adb sideload <file>
adb root 重啟adbd并獲得root權(quán)限
adb unroot 重啟adbd并釋放root權(quán)限
adb usb
adb tcpip <port>
Android系統(tǒng)對應(yīng)的命令(部分為linux命令)
adb shell am start -n <package_name>/.<activity_class_name> // 啟動應(yīng)用
adb shell top // 查看設(shè)備cpu和內(nèi)存占用情況
adb shell top -m 6 // 查看占用內(nèi)存前6的app
adb shell top -n 1 // 刷新一次內(nèi)存信息,然后返回
adb shell procrank // 查詢各進程內(nèi)存使用情況
adb shell kill [pid] // 殺死一個進程
adb shell ps // 查看進程列表
adb shell ps -x [PID] // 查看指定進程狀態(tài)
adb shell service list // 查看后臺services信息
emulator命令
可以使用emulator命令啟動模擬器。
emulator -avd <avd名稱>
emulator -data 鏡像文件名稱
連接真機的兩種方式
可以通過兩種方式連接真機,通過usb連接,也可以通過局域網(wǎng)連接,如下圖所示。通過局域網(wǎng)連接的方式需要使用命令adb connect <host>[:<port>],斷開連接的方式 adb disconnect[<host>[:<port>]]
總結(jié)
- 上一篇: 数学建模 整数规划的基本原理和标准形式
- 下一篇: 信用卡降额多久能恢复?做好这些最重要