adb shell 入門

一、ADB 簡介
ADB(Android Debug Bridge) 是 Android 開發/測試人員不可替代的通用命令行工具,其允許與模擬器實例或連接的 Android 設備進行通信。它可爲各種設備操作提供便利,如安裝和調試應用,並提供對 Unix shell(可用來在模擬器或連接的設備上運行各種命令)的訪問。Android 系統是基於 Linux 內核的,所以 Linux 裏的很多命令在 Android 裏也有相同或類似的實現,在 adb shell 裏可以調用。該工具是一個客戶端-服務器程序。

客戶端:客戶端在開發計算機上運行。您可以通過發出 adb 命令從命令行終端調用客戶端。

後臺程序:後臺程序在每個模擬器或設備實例上作爲後臺進程運行。http://www.daiqiyang.com

服務器:服務器在開發計算機上作爲後臺進程運行。

二、安裝:網上下載adb解壓到自定義路徑後,配置環境變量即可。

三、連接:
ADB與本地 TCP 端口 5037 綁定,並偵聽從 adb 客戶端發送的命令(所有 adb 客戶端均使用端口 5037 與 adb 服務器通信)。

  1. 連接 Android 模擬器
    夜神模擬器:adb connect 127.0.0.1:62001
    2.USB 連接 Android 設備
    a. 打開開發者選項
    Settings >About phone>連續點擊 Build number
    b. 開啓 USB debugging
    c .Dos 下輸入adb devices驗證手機是否連上 adb
    3.手機和電腦連入同一局域網 adb connect ip

四、常用命令

1、安裝應用
(1)adb install D:\adbtest\baidu.apk 文件名中不要有空格

(2)adb push D:\adbtest\baidu.apk /system/app
會將原來系統中的對應的apk覆蓋掉
可用 adb pull /system/app/baidu.apk /home/ 備份

有時候會出現Read-only的錯誤,我們可以使用強制安裝命令來安裝apk
adb install -r D:\adbtest\baidu.apk

2、卸載
adb uninstall com.baidu.browser.apps

3、導入/導出 文件到手機中
adb pull remote local
adb push local remote

4、包管理命令pm
adb shell pm list packages -3 查看第三方安裝包
根據包名,查看apk 安裝路徑
adb shell pm path com.baidu.browser.apps 包名
清除app 數據
adb shell pm clear com.baidu.browser.apps 包名

5、dumpsys查詢系統服務轉儲到屏幕:
查看所有activity
adb shell dumpsys activity activities、
獲取當前運行的Activity
adb shell dumpsys activity | findstr Run

6、查看系統進程
adb shell top
adb shell ps
Ps 只提供當前進程的快照。top即時查看最活躍的進程

7、抓取日誌adb logcat
adb logcat -v time :E >D:\test.log 抓取日誌並輸出到制定路徑
adb logcat ActivityManager:i
:s
查看activity日誌,僅輸出標記爲“ActivityManager”並且優先級大於等於“Info”的日誌,*:S用於設置所有標記的日誌優先級爲S,這樣可以確保僅輸出符合條件的日誌。
只顯示需要的輸出(白名單),通過管道使用 grep 過濾。
參考資料(https://www.cnblogs.com/bydzhangxiaowei/p/8168598.html

8、adb shell monkey 壓力測試
參考資料(https://www.cnblogs.com/yindada/p/9845032.html
adb shell monkey -p com.baidu.browser.apps -v 1000 >d:\adbtest\monkey_test.txt
-p ,此命令用於指定包,若不指定則在整個系統中執行
-v ,用於反饋日誌的詳細程度級別
Level 0 : adb shell monkey -p 包名 -v 10 // 默認級別,僅提供啓動、測試完成和最終結果等少量信息

Level 1 : adb shell monkey -p 包名 -v -v 10 // 提供較爲詳細的日誌,包括每個發送到Activity的事件信息

Level 2 : adb shell monkey -p 包名 -v -v -v 10 // 提供最詳細的日誌,包括了測試中選中/未選中的Activity信息
1.程序無響應:ANR問題:在日誌中搜索“ANR”
2.崩潰問題:在日誌中搜索“CRASH”
3.其他問題:在日誌中搜索”Exception”

9、模擬用戶操作
點擊事件
adb shell input keyevent <keycode>
滑動
adb shell input swipe 300 1000 300 500
文本輸入
adb shell input text hello,world

10、截屏、錄像:
adb shell screencap /system/test.png文件保存路徑
adb shell screenrecord 文件保存路徑

Android adb調試時,經常會遇到權限問題(failed for /system/lib/libmm-test.so, Read-only file system),即使Root設備,在向/system等系統文件夾操作時(比如push、rm等),依然可能會提示“Read-only file system”。adb remount 重新掛載系統分區,使系統分區重新可寫或着重啓 (http://www.metsky.com/archives/670.html

screenrecord 部分參數
--size width x height 設置分辨率 eg:1280x720
--bit-rate rate 視頻比特率,默認值爲 4Mbps,可以設6Mbps,這樣質量更好 eg:adb shell screenrecord --bit-rate 6000000 /system/demo.mp4
--time-limit time 設置最大錄製時長(以秒爲單位)。默認值和最大值均爲 180(3 分鐘)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章