adb 命令介紹
參考:
1 安裝adb
1.1 SDK自帶:
adb工具在android-sdk/platform-tools/下,將該目錄加入環境變數即可使用;
1.2 Ubuntu式安裝:
sudo apt-get install android-tools-adb
2 adb常用命令:
2.1 安裝軟體 解除安裝軟體
adb install <apk檔案路徑>
adb uninstall <軟體名>
2.2 登入裝置shell
adb shell
adb shell <command命令> 這個命令將登入裝置的shell. 後面加<command命令>將是直接執行裝置命令, 相當於執行遠端命令
adb -s 裝置號 shell 多個裝置時
2.3 從電腦上傳送檔案到裝置
adb push <本地路徑> <遠端路徑>
用push命令可以把本機電腦上的檔案或者資料夾複製到裝置(手機)
2.4 從裝置上下載檔案到電腦
adb pull <遠端路徑> <本地路徑>
用pull命令可以把裝置(手機)上的檔案或者資料夾複製到本機電腦
2.5 取得裝置root許可權
adb remount 將system分割槽重新掛載為可讀寫分割槽
2.6 檢視裝置
adb devices
這個命令是檢視當前連線的裝置, 連線到計算機的android裝置或者模擬器將會列出顯示
2.7 打日誌
adb logcat
2.8 重定向
adb forward <local> <remote>釋出埠,可以設定任意的埠號,做為主機向模擬器或裝置的請求埠。如:adb forward tcp:5555 tcp:8000
3.9 管理adb服務
adb kill-server 終止adb服務程序
adb start-server 重啟adb服務程序
adb root 已root許可權重啟adb服務
3.10 管理裝置
adb reboot 重啟手機
3.11 返回bug日誌中的所有資訊
adb bugreport
3.12 檢視JDWP資訊
adb jdwp 檢視指定的設施的可用的.
可以用 forward jdwp:<pid> 埠對映資訊來連線指定的JDWP程序
3 adb高階命令:
3.1 檢視裝置連線狀態 系列
adb get-serialno 獲取裝置的ID和序列號serialNumber
adb devices 查詢當前計算機上連線那些裝置(包括模擬器和手機),輸出格式: [serialNumber] [state]
adb get-state 檢視模擬器/設施的當前狀態.
說明:
序列號[serialNumber]——由adb建立的一個字串,這個字串通過自己的控制埠<type>-<consolePort>
唯一地識別一個模擬器/裝置例項。一個序列號的例子: emulator-5554
3.2 傳送命令到裝置 系列
adb [-d|-e|-s <serialNumber>] <command>
-d 傳送命令給usb連線的裝置
-e 傳送命令到模擬器裝置
-s <serialNumber> 傳送命令到指定裝置
如啟動手機裝置shell: adb -d shell
3.3 安裝解除安裝 系列
adb install d:\hello.apk
adb unstall com.huawei.hello
說明:如果帶-r選項重新安裝apk時,安裝在 /data/local/tmp/目錄下,手機重啟後還是使用原來的apk.
3.4 基本linux shell命令 系列
adb shell [command]
ls 列出目錄下的檔案和資料夾
cd 切換目錄
rm 刪除目錄和檔案
cat 檢視檔案內容
ps 可以看那個程序再跑
ps -x [PID] 檢視單個程序的狀態
top 可以看那個程序的佔用率最高
su 切換到root使用者
kill [pid] 殺死一個程序
chmod 777 <file> 修改該檔案為可執行許可權 詳細使用情況可以登入一臺Linux伺服器在shell下檢視幫助手冊, man <command>
adb shell am 命令可以啟動應用程式
adb shell input text <string> 向裝置輸入文字(游標所在的文字框)
adb shell input keyevent <event_code> 向裝置傳送按鍵事件 event_code 參考view/KeyEvent.java中的 KEYCODE_*
3.5 檢視系統狀態和資訊 系列
adb shell procrank 查詢各程序記憶體使用情況
adb shell service list 檢視services資訊
adb shell cat /proc/meminfo 檢視當前的記憶體情況
adb shell cat /proc/cpuinfo 檢視CPU資訊(硬體)
adb shell cat /proc/iomem 檢視IO記憶體分割槽
adb shell getprop 列出系統所有屬性
adb shell getprop | findstr "gsm" 列出包含gsm的屬性
adb shell setprop <key> <value> 修改系統屬性
adb shell sqlite3 可以執行sql語句檢視資料庫資訊, 具體使用情況待調查
adb shell dmesg 查詢核心緩衝區資訊
adb shell dumpstate 各類資訊,比如程序資訊,記憶體資訊,程序是否異常,kernnel的log等
adb shell dumpcrash
adb shell dumpsys 查詢所有service的狀態
3.6 Log 系列
adb logcat [ <filter-spec> ] - View device log
3.6.1 檢視可用日誌緩衝區:
adb logcat -b radio — 檢視緩衝區的相關的資訊.
adb logcat -b events — 檢視和事件相關的的緩衝區.
adb logcat -b main — 檢視主要的日誌緩衝區
3.6.2 過濾日誌輸出:
過濾器語句按照下面的格式描tag:priority ... , tag 表示是標籤, priority 是表示標籤的報告的最低等級
adb logcat *:W 顯示優先順序為warning或更高的日誌資訊
adb logcat ActivityManager:I MyApp:D *:S
日誌的標籤是系統部件原始資訊的一個簡要的標誌。(比如:“View”就是檢視系統的標籤).優先順序有下列集中,是按照從低到高順利排列的:
V — Verbose (lowest priority)
D — DebugI — Info
W — Warning
E — Error
F — Fatal
S — Silent (highest priority, on which nothing is ever printed)
如果你電腦上執行logcat ,相比在遠端adbshell端,你還可以為環境變數ANDROID_LOG_TAGS :輸入一個引數來設定預設的過濾
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"
需要注意的是ANDROID_LOG_TAGS 過濾器如果通過遠端shell執行logcat 或用adb shell logcat 來執行模擬器/裝置不能輸出日誌.
3.6.3 控制日誌輸出格式:
日誌資訊包括了許多元資料域包括標籤和優先順序。可以修改日誌的輸出格式,所以可以顯示出特定的元資料域。可以通過 -v 選項得到格式化輸出日誌的相關資訊.
brief — Display priority/tag and PID of originating process (the default format).
process — Display PID only.
tag — Display the priority/tag only.
thread — Display process:thread and priority/tag only.
raw — Display the raw log message, with no other metadata fields.
time — Display the date, invocation time, priority/tag, and PID of the originating process.
long — Display all metadata fields and separate messages with a blank lines.
當啟動了logcat ,你可以通過-v 選項來指定輸出格式:[adb] logcat [-v <format>]
下面是用 thread 來產生的日誌格式: adb logcat -v thread
需要注意的是你只能-v 選項來規定輸出格式 option.
3.6.4 Logcat 選項列表
-b <buffer> 載入一個可使用的日誌緩衝區供檢視,比如event 和radio . 預設值是main 。具體檢視Viewing Alternative Log Buffers.
-c 清楚螢幕上的日誌.
-d 輸出日誌到螢幕上.
-f <filename> 指定輸出日誌資訊的<filename> ,預設是stdout .
-g 輸出指定的日誌緩衝區,輸出後退出.
-n <count> 設定日誌的最大數目<count> .,預設值是4,需要和 -r 選項一起使用。
-r <kbytes> 每<kbytes> 時輸出日誌,預設值為16,需要和-f 選項一起使用.
-s 設定預設的過濾級別為silent.
-v <format> 設定日誌輸入格式,預設的是brief 格式,要知道更多的支援的格式,參看Controlling Log Output Format