1、下載ADB工具,而後安裝
在cmd命令行中,輸入adb看看行不行,假如提示找不到命令或者文件,在環境變量的path中,增長安裝目錄html
2、電腦與盒子在同一路由器下(同網段)android
3、獲取盒子IP 盒子桌面->應用->設置->網絡.藍牙->網絡狀態,這裏就能夠看到IPgit
4、命令github
啓動CMD shell
adb connect 盒子IP
安裝應用:windows
adb install xxx.apk
刪除應用:網絡
adb uninstall com.tencent.mobileqq
或者進入shell的方式app
adb shell pm uninstall --user 0 com.feixun.dangbeimarket exit
斷開鏈接:less
adb disconnect
adb詳細介紹:tcp
adb全名Andorid Debug Bridge. 顧名思義, 這是一個Debug工具.
然而, 爲什麼稱之爲Bridge呢? 由於adb是一個標準的CS結構的工具, 是要鏈接開發電腦和你的調試手機的.包含以下幾個部分:
列舉當前鏈接的調試設備
$ adb devices List of devices attached DU2SSE1467010378 device
打印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到指定文件 |
安裝卸載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
調試設備和開發PC之間拷貝文件.
// 拷貝本地文件到調試設備中 $ adb push ~/temp/GithubApp.trace /sdcard/ [100%] /sdcard/GithubApp.trace // 從調試設備中拷貝文件到本地 $ adb pull /sdcard/GithubApp.trace ~/ [100%] /sdcard/GithubApp.trace
啓動/殺死adb簡介中提到的Server端進程.
因爲adb並不穩定, 有時候莫名的問題掉線時, 能夠先kill-server, 而後start-server來確保Server進程啓動. 每每能夠解決問題.
進入調試設備的shell界面, 此時可使用調試設備中的不少指令. 下文高階用法中不少就是.
$ adb shell shell@hwH60:/ $
經過wifi進行遠程鏈接手機進行調試的.
https://developer.android.com/studio/command-line/adb.html#wireless
需先連上usb模式, 開啓遠程調試模式:
$ adb tcpip 5555
am即activity manager.
該命令用來執行一些系統動做, 例如啓動指定activity, 結束進程, 發送廣播, 更改屏幕屬性等. 調試利器.
指令 | 說明 | 備註 |
---|---|---|
start <Intent> | 根據intent指向啓動Activity | Intent能夠是顯示的指向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, 手機可能不支持. |
pm即package manager.
用來執行package相關的操做, 例如安裝卸載, 查詢系統的安裝包等.
指令 | 說明 | 備註 |
---|---|---|
list packages <Filter> | 列出知足filter條件的全部包 | |
list permissions <Group> | 列出該Group的全部權限 | |
list features | 查看系統支持哪些feature | 例如藍牙, wifi, 攝像頭等. |
install <Path>/uninstall <Package> | 安裝卸載 | |
clear <Package> | 清除應用數據 |
截屏, 比截屏快捷鍵更加方便快捷.
$ adb shell screencap /sdcard/screen.png $ adb pull /sdcard/screen.png ~/temp [100%] /sdcard/screen.png
錄屏, 作demo的話, 能夠很方便的用這個命名錄制視頻, 而後藉助工具將其轉換成gif圖, 超讚. 以下:
screenrecord gif
Android4.4及以上系統可用.
強大的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 | 電池使用信息 | / | / |
package | package相關信息, 至關於pm功能的集合 | 輸出諸如libs, features, packages等信息 | / |
meminfo | 輸出每一個App的內存使用和系統內存狀態 | 能夠指定包名, 例如adb shell dumpsys meminfo com.anly.githubapp | / |
window | 輸出當前窗口相關信息 | / | policy, animator, tokens, windows |
參考:https://www.jianshu.com/p/5980c8c282ef