ADB命令

一、ADB簡介

    ADB,即Android Debug Bridge,它是Android提供的一個通用的調試工具。adb.exe在安裝的Android的sdk開發包platform-tools的目錄下。

(一)ADB原理

ADB的結構是一個client-server的結構,包含3個部分:

客戶端部分: 運行在PC上,可以在命令行中運行adb命令來調用該客戶端,像ADB插件和DDMS這樣的Android工具也可以調用adb客戶端。

守護進程 : 運行於模擬器或手機的後臺(也就是一個叫做aabd的東西,運行在Andriod設備的底層,android設備需啓動usb調試)。

服務器部分 :在開發app的PC上後臺運行,用於管理客戶端(client)和守護進程(daemon)的連接。

(二)ADB如何工作的

    當啓動adb客戶端時,客戶端首先檢測adb服務端進程是否運行,如果沒有運行,則啓動服務端。當服務端啓動時,它會綁定到本地的TCP5037端口,並且監聽從adb客戶端發來的命令——所有的adb客戶端都使用5037端口與adb服務端通信。(PC上)

服務端與所有正在運行的模擬器或手機連接。它通過掃描5555-5585之間的奇數號端口來搜索模擬器或手機,一旦發現adb守護進程,服務器就通過此端口建立一個連接(客戶端與守護進程的連接)。需要說明的是,每一個模擬器或手機使用一對有序的端口,偶數號端口用於控制檯連接(控制設備的console連接),奇數號端口用於adb連接。

結構圖:


(三)ADB相關指令

1.adb devices:瞭解目前連接的設備或模擬器的狀態的相關信息。

輸出信息包括兩列:第一列爲設備的序列號信息,第二列爲設備的狀態信息(device狀態:表示設備已連接;offline狀態:設備沒有連接到adb服務或無響應;no device狀態:沒有設備或模擬器連接)

2.adb install:完成手機應用的安裝

(1)adb install 安裝包路徑(絕對路徑)

(2)向指定的物理手機或模擬器來安裝指定的手機應用:

adb–s 物理設備序列號或手機模擬器設備序列號 install 安裝包路徑

(3)已安裝該應用,加入-r會覆蓋原來安裝的軟件並保留數據

adb–s 物理設備序列號或手機模擬器設備序列號 install –r 安裝包路徑

3.adb uninstall:完成手機應用的卸載

(1)adb uninstall已安裝應用的包名

(2)adb –s 物理設備序列號或手機模擬器設備序列號 uninstall 已安裝應用的包名

(3)卸載手機應用時保留配置和緩存文件

     adb –s 物理設備序列號或手機模擬器設備序列號shell pmuninstall –k 已安裝應用的包名

4.adb pull:實現手機端文件傳至pc端

    adb pull 手機端路徑 pc端路徑

    例:adb  pull  /sdcard/tmp/error_fs.dat  d:/

    如果是針對某個設備需使用“-s”參數來指定設備:adb –s 設備序列號 pull 手機端路徑 pc端路徑

5.adb push:實現pc端文件傳至電腦上

    例: adb  push d:/  /sdcard/tmp/

6.adb shell:支持linux命令

   輸入adb shell 指令後,出現提示符,可直接輸入linux命令,可使用exit來退出“adbshell”提示符

   su root 切換爲root用戶(手機需要)

(1)    adbshell dumpsys  查看手機相關信息

~ battery 查看電池電量信息

  

AC powered 是否連接電源供電;USB powered 是否連接USB供電;Status 電池的充電狀態(5表示電池電量是滿的);Health 電池的將康狀態(2表示良好);Present 手機上是否有電池;Level 當前剩餘的電量信息;Scale 電池電量的最大值;Voltage 當前電池的電壓;Temperature 當前電池的溫度;Technology 電池使用技術(鋰電池)。

~wifi 查看無線網絡信息  

加入其後“|more”參數,當輸出滿一頁時就會暫停輸出,按空格鍵顯示下頁內容,按Q健停止顯示後續輸出信息

~power 查看電源管理相關信息

adb shell dumpsys power |grep "mScreenOffTimeoutSetting"僅輸出屏幕關閉時間的設置信息,grep(搜索文件命令)只輸出相應信息。

~telephony.registry 查看電話相關信息

(2)adb shell cat /proc/XXX(cat命令查看文件)

android系統下的“/proc”分區保存系統的各種實時信息,如CPU、內存等

adb shell cat /proc/cpuinfo 查看cpu硬件的相關信息

adb shell cat /proc/meminfo 查看內存的相關信息

adb shell cat /proc/iomem 查看I/O內存分區的相關信息

此外,還可以使用相應命令獲取手機型號、手機處理器信息、手機內存信息、手機屏幕分辨率信息、手機系統版本信息、手機內核版本信息、手機運營商信息、手機網絡類型信息、手機串號信息

(3)adb shell df 獲取手機android系統各個分區的相關信息

(4)獲取linux內核的環形緩衝區信息(需root權限)、獲取手機android系統的當前狀態的相關信息

當信息過多時可使用重定向,將輸出的內容放到一個文件中,adb shell dmesg > /sdcard/log.txt,可打開文件查看。

(5)pm指令(package manager),模擬android行爲或查詢設備上的應用

adb shell pm list package 列出手機裝的所有的app包名

adb shell pm list package -3列出除了系統應用外手機裝的第三方的app包名

~-d 查看disabled packages

-e 查看enable package

-s 查看系統package

-i 查看package對應的安裝者

-u 查看曾被卸載過的package

(6)am指令(Activity Manager)模擬各種系統的行爲,如啓動一個Activity、強制停止進程、發送廣播進程、修改設備屏幕屬性等

例:adb shell am start –n com.sankuai.meituan.takeoutnew/(.activity名稱)啓動app

(7)adb shell clear <package> 清除應用數據與緩存

(8)adb shell screencap 手機路徑(截圖)

     adb shell screenrecord  手機路徑(視頻)

7.adb get-serialno 獲取設備序列號

8.adb get-state 查看設備或模擬器當前狀態

9.adb logcat 查看和跟蹤系統日誌

adblogcat –v time>logcat.log  獲取log文件

adblogcat –c 清除緩衝池

adblogcat *:W 輸出優先級別大於“警告”級別的日誌信息(警告以及錯誤級別信息)

10.adb connect<host>[:<port>]   與指定端口號連接設備

adb disconnect<host>[:<port>]   與設備斷開連接

例:adb connect172.24.35.16:17501

11.adb start-server   啓動adb服務

12.adb kill-server  關閉adb服務

13.adb forward 將本機端口號重定向到模擬器或設備上

例:adb forwardtcp:2211(本機) tcp: 5566(設備)

14.adb bugreport 查看android啓動過程的日誌信息,以及啓動後的系統狀態,包括進程列表、內存信息、VM信息等。

二、手機模擬器上相關操作

  模擬器是如何工作的?

在模擬器啓動後,會打開一個網絡套接字(Socket)端口與其所在的主機進行通信,可以藉助一些工具,通過這個端口與模擬器進行交互。如通過telnet操控模擬器(保證telnet在pc上可用,在終端輸入telnet,查看服務是否可用,使用quit退出命令)

統一在telnet服務下

1.模擬手機來電:gsm call 13800000044

2.模擬發送短信:sms send 13800440000 hi,tester

3.模擬器上模擬網絡相關命令

   network status:查看網絡狀態的信息

   network speed 14.4:20 :動態的設定模擬器的網速(上行:14.4,下行:20)

   network delay 5:網絡延時爲5毫秒

   network capture start 文件名 :動態捕獲模擬器的網絡數據包

   network capture stop(停止)

4.修改模擬器尺寸

window scale 0.5 尺寸變爲原來的一半


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