Android開發—adb 命令使用大全

一:常用用法

1.1 adb devices

列舉當前連接的調試設備

$ adb devices
List of devices attached
DU2SSE1467010378    device

1.2 adb logcat

打印log信息

指令說明備註
adb logcat打印log/
adb logcat -c清除手機的log buffer有些手機權限控制, 不支持.
adb logcat -b <buffer>打印指定buffer的log信息buffer有: main(主log區,默認), events(事件相關的log), radio(射頻, telephony相關的log)
adb logcat -v <format>格式化輸出log常用的用adb logcat -v time顯示時間
adb logcat -f <filename>輸出log到指定文件

1.3 adb install/uninstall

安裝卸載apk

// 安裝apk時指定apk file路徑
$ adb install ~/Downloads/mobileqq_android.apk
[100%] /data/local/tmp/mobileqq_android.apk
    pkg: /data/local/tmp/mobileqq_android.apk
Success

// 卸載apk時指定包名
$ adb uninstall com.tencent.mobileqq
Success

1.4 adb pull/push

調試設備和開發PC之間拷貝文件.

// 拷貝本地文件到調試設備中
$ adb push ~/temp/GithubApp.trace /sdcard/
[100%] /sdcard/GithubApp.trace

// 從調試設備中拷貝文件到本地
$ adb pull /sdcard/GithubApp.trace ~/
[100%] /sdcard/GithubApp.trace

1.5 adb start/kill-server

啓動/殺死adb簡介中提到的Server端進程.

由於adb並不穩定, 有時候莫名的問題掉線時, 可以先kill-server, 然後start-server來確保Server進程啓動. 往往可以解決問題.

1.6 adb shell

進入調試設備的shell界面, 此時可以使用調試設備中的很多指令. 下文高階用法中很多就是.

$ adb shell
shell@hwH60:/ $


二:進階用法

2.1 adb connect/disconnect

通過wifi進行遠程連接手機進行調試的.
https://developer.android.com/studio/command-line/adb.html#wireless

需先連上usb模式, 開啓遠程調試模式:
$ adb tcpip 5555

2.2 adb shell am

am即activity manager.
該命令用來執行一些系統動作, 例如啓動指定activity, 結束進程, 發送廣播, 更改屏幕屬性等. 調試利器.

指令說明備註
start <Intent>根據intent指向啓動ActivityIntent可以是顯示的指向activity, 也可以是ACTION方式, 並且可以添加flag, data等參數信息.
startservice <Intent>啓動Service可以添加flag, data等參數信息.
broadcast <Intent>發送廣播可以添加flag, data等參數信息.
monitor啓動一個Crash和ANR的監聽器如有Crash或ANR會在控制檯輸出相關信息.
force-stop <Package>強制停止該包相關的一切傳入package name.
kill <Package>殺死該包相關的所有進程傳入package name.
kill-all殺死所有後臺進程
display-size WxH改變顯示的分辨率例如adb shell am display-size 1280x720, 手機可能不支持.
display-density <dpi>改變顯示的density例如adb shell am display-density 320, 手機可能不支持.

2.3 adb shell pm

pm即package manager.
用來執行package相關的操作, 例如安裝卸載, 查詢系統的安裝包等.

指令說明備註
list packages <Filter>列出滿足filter條件的所有包
list permissions <Group>列出該Group的所有權限
list features查看系統支持哪些feature例如藍牙, wifi, 攝像頭等.
install <Path>/uninstall <Package>安裝卸載
clear <Package>清除應用數據

2.4 adb shell screencap

截屏, 比截屏快捷鍵更加方便快捷.

$ adb shell screencap /sdcard/screen.png

$ adb pull /sdcard/screen.png ~/temp
[100%] /sdcard/screen.png

2.5 adb shell screenrecord

錄屏, 做demo的話, 可以很方便的用這個命名錄制視頻, 然後藉助工具將其轉換成gif圖, 超讚. 如下:

screenrecord gif

Android4.4及以上系統可用.

2.6 adb shell dumpsys

強大的dump工具, 可以輸出很多系統信息. 例如window, activity, task/back stack信息, wifi信息等.

探索Activity之launchMode探索Activity之啓動Intent flag和Affinity就是用adb shell dumpsys activity來輸出task信息的.

常用dumpsys:

指令說明備註細分參數
activity輸出app組件相關信息還可以用細分參數獲得單項內容, 下同. 例如adb shell dumpsys activity activities來獲取activity task/back stack信息.activites, service, providers, intents, broadcasts, processes
alarm輸出當前系統的alarm信息//
cpuinfo輸出當前的CPU使用情況//
diskstats輸出當前的磁盤使用狀態//
batterystats電池使用信息//
packagepackage相關信息, 相當於pm功能的集合輸出諸如libs, features, packages等信息/
meminfo輸出每個App的內存使用和系統內存狀態可以指定包名, 例如adb shell dumpsys meminfo com.anly.githubapp/
window輸出當前窗口相關信息/policy, animator, tokens, windows
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章