adb常用命令

調試相關
// 開啓adb服務
adb start-server

// 關閉adb服務
adb stop-server
// 列出所有連接的設備
adb devices

// 多個設備情況下使用 -s 參數指定對某個設備執行操作
adb -s device-id

// 設備id(device-id)可以通過 adb devices 命令看到,也可以通過如下命令獲取
adb get-serialno

將system分區重新掛載爲可讀寫分區,設備root情況下才有效
adb remount

跑 monkey 測試穩定性
adb shell monkey -v -p your.package.name 500

重啓機器
// 正常重啓
adb reboot

// 重啓到 bootloader (刷機模式)
adb reboot bootloader

// 重啓到 recovery (恢復模式)
adb reboot recovery

查看進程
// 列出進程列表 ,其中包含進程的 pid 等信息
adb shell ps

// 殺死指定pid的進程
adb shell kill pid

// 查看指定進程信息
adb shell ps -x pid

文件管理

從電腦上覆制文件到設備
// 把 a.png 從電腦上拷貝到設備sd卡上
adb push ~/a.png /mnt/sdcard/

// 把 a.png 從電腦上拷貝到設備sd卡上並重命名爲 b.png
adb push ~/a.png /mnt/sdcard/b.png


// 把 pic目錄下所有文件從電腦上拷貝到設備sd卡上
adb push ~/pic/ /mnt/sdcard/

從設備複製文件到電腦
// 把 a.png 從設備sd卡上拷貝到電腦上
adb pull /mnt/sdcard/a.png ~/

// 把 a.png 從設備sd卡上拷貝到電腦上並命名爲b.png
adb pull /mnt/sdcard/a.png ~/b.png

// 把pics目錄下所有文件從設備sd卡上拷貝到電腦上
adb pull /mnt/sdcard/pics/ ~/pics/

一些基本命令
// 列出sd卡根目錄下所有文件
adb shell ls /sdcard/

// 定位到 /sdcard/目錄
adb shell cd /sdcard/

// 刪除某文件
// -f 強制刪除文件不需要確認
// -r 遞歸刪除文件夾內文件
// -i 刪除文件前需要確認
adb shell rm /sdcard/1.txt

// 創建目錄
adb shell mkdir /sdcard/temp/
// 指定 -p 遞歸創建目錄
adb shell mkdir -p  /sdcard/temp/test/abc/hello/

// 創建文件
adb shell touch /sdcard/1.txt

// 顯示當前所在目錄
adb shell pwd

// 拷貝文件1.txt到test目錄
adb shell cp /sdcard/1.txt /sdcard/test/

// 移動文件,移動同一目錄下文件相當於重命名文件
adb shell mv /sdcard/1.txt /sdcard/2.text


啓動Activity等
// 啓動應用
// -n 指定包名/包名+啓動類的類名 ,啓動類的類名必須是完整路徑
adb shell am start -n package/package-activity

// 停止應用
adb shell am force-stop package

// 啓動 service
adb shell am startservice [options] <INTENT>
舉例:adb shell am startservice -a com.lt.test.action.ONESERVICE
舉例:adb shell am startservice -n com.lt.test/.MyService

// 發送廣播
adb shell am broadcast [options] <INTENT>
// 發送一個廣播去關閉一個activity
adb shell am broadcast -a "action_finish"
// 恢復出廠設置的方法,會清除內存所有內容
adb shell am broadcast -a android.intent.action.MASTER_CLEAR
adb shell am broadcast -n com.lt.test/.MyBroadcast

// 列舉出所有包含<INTENT>的package
adb shell pm list packages [options] <INTENT>
adb shell pm list packages com.lt

 

管理安裝包

adb shell pm

安裝應用程序
adb install xxx.apk

// 覆蓋安裝(保留緩存和數據)
adb install -r xxx.apk

// 安裝apk到sd卡
adb install -s xxx.apk

卸載應用程序
adb uninstall package

// 卸載時保留數據和緩存目錄
adb uninstall -k package

列出設備上的所有權限
adb shell pm list permissions

列出設備上安裝的所有app的包名
adb shell pm list packages

// 列出指定包名對應的apk路徑
adb shell pm path com.android.search

// 清空指定包名對應的應用的數據和緩存文件,開發時很有用
adb shell pm clear com.android.search

列出設備上的所有feature
adb shell pm list features
顯示系統信息
// 獲取系統屬性,可以獲取到一大堆關於系統信息(鍵值對形式)
adb shell getprop

// 獲取系統屬性並過濾出包含version的信息
adb shell getprop | grep version

查看 cpu 和 內存使用情況
// 每隔一秒會刷新一次 cpu 和 內存情況
adb shell top

// 查看佔用內存前3的應用
adb shell top -m 3

// 刷新3次內存信息(不指定-n參數的話默認每秒會刷新1次數據):
adb shell top -n 3

// 查看佔用內存前3的應用,刷新1次
adb shell top -m 3 -n 1

查看系統當前 cpu 使用情況
adb shell cat /proc/cpuinfo
adb shell cat /proc/stat

查看系統當前內存使用情況
adb shell cat /proc/meminfo

查看指定包名應用內存使用情況,各項信息具體說明

adb shell dumpsys meminfo package

查看 service
adb shell service list
adb shell cat /system/build.prop

電池相關
// 查看電量管理信息,其中可以知道當前那個應用持有WAKE_LOCK鎖
adb shell dumpsys power

// 查看電池用量情況
adb shell dumpsys battery

// 查看電池使用日誌,圖形界面日誌分析參考google提供的工具 https://github.com/google/battery-historian
adb shell dumpsys batterystats


截圖錄屏

截圖
// 截圖到sd卡並命名爲1.png,拷貝sd卡1.png到當前目錄
adb shell screencap /sdcard/1.png
adb pull /sdcard/1.png .

錄製屏幕操作(android4.4及以後支持)
// 錄製屏幕操作視頻到sd卡並命名爲 test.mp4
// 如果想停止錄製,按 Ctrl + C,否則三分鐘後會自動停止錄製,如果你設置了--time-limit參數將以它爲準
// 拷貝sd卡 test.mp4 到點當前目錄
adb shell screenrecord /sdcard/test.mp4
adb pull /sdcard/1.png .

// --size 指定錄製的視頻分辨率,比如設置爲 800x480
// --bit-rate 設置視頻採樣比特率,缺省是4Mbps
// --time-limit 設置錄製時間,單位爲秒,默認180秒
// --verbose 錄屏時電腦端屏顯log,錄完屏後還可以看到發出了廣播 android.intent.action.MEDIA_SCANNER_SCAN_FIL

// 錄製屏幕操作視頻到sd卡下test1.mp4,其中錄製時採樣爲 5Mbps,錄製時間爲20秒,視頻分辨率設定爲 1920x1080,錄製時打出log
adb shell screenrecord --verbose --size 1920x1080 --bit-rate 5000000 --time-limit 20 /sdcard/test1.mp4

模擬按鍵
// 模擬輸入,其中 %s 代表空格
adb shell input text "hello%sworld"

// 模擬按鍵,82 代表 KEYCODE_MENU 即菜單鍵
// 更多KEYCODE可以參考 http://developer.android.com/intl/zh-cn/reference/android/view/KeyEvent.html
adb shell input keyevent 82

// 模擬點擊,屏幕上橫座標縱座標分別爲100 120的位置
// 要查看具體座標值,可以打開開發者選項->指針位置
adb shell input tap 100 120

// 模擬滑動,從位置(0,1000)滑動到(800,600)
adb shell input swipe 0 1000 800 600

// 模擬長按,在位置(100,200)長按500毫秒
adb shell input swipe 100 200 100 200 500


網絡相關

 

// 查看網絡狀態
adb shell netstat

// 通過 tcp/ip 連接,默認端口 5555
adb connect host:port

// 轉發套接字連接
adb forward local remote


日誌輸出
// 查看指定 tag 日誌
adb logcat -s tag

// 清除log緩存
adb logcat -c

 

發佈了31 篇原創文章 · 獲贊 3 · 訪問量 7259
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章