Android 深入研究adb(九)

2021-06-28 00:03:10 字數 2461 閱讀 4369

當啟動了logcat ,你可以通過-v 選項來指定輸出格式:

[adb] logcat [-v < format>]

下面是用 thread 來產生的日誌格式:

adb logcat -v thread

需要注意的是你只能-v 選項來規定輸出格式 option.

檢視可用日誌緩衝區

android日誌系統有迴圈緩衝區,並不是所有的日誌系統都有預設迴圈緩衝區。為了得到日誌資訊,你需要通過-b 選項來啟動logcat 。如果要使用迴圈緩衝區,你需要檢視剩餘的迴圈緩衝期:

* radio — 檢視緩衝區的相關的資訊.

* events — 檢視和事件相關的的緩衝區.

* main — 檢視主要的日誌緩衝區

-b 選項使用方法:

[adb] logcat [-b < buffer>]

下面的例子表示怎麼檢視日誌緩衝區包含radio 和 telephony資訊:

adb logcat -b radio

檢視stdout 和stderr

在預設狀態下,android系統有stdout 和 stderr (system.out 和system.err )輸出到/dev/null ,在執行dalvik vm的程序中,有乙個系統可以備份日誌檔案。在這種情況下,系統會用stdout 和stderr 和優先順序 i.來記錄日誌資訊

通過這種方法指定輸出的路徑,停止執行的模擬器/裝置,然後通過用 setprop 命令遠端輸入日誌

$ adb shell stop$ adb shell setprop log.redirect-stdio true$ adb shell start

系統直到你關閉模擬器/裝置前設定會一直保留,可以通過新增/data/local.prop 可以使用模擬器/裝置上的預設設定

logcat命令列表

option description

-b < buffer> 載入乙個可使用的日誌緩衝區供檢視,比如event 和radio . 預設值是main 。具體檢視viewing alternative log buffers.

-c 清楚螢幕上的日誌.

-d 輸出日誌到螢幕上.

-f < filename> 指定輸出日誌資訊的< filename> ,預設是stdout .

-g 輸出指定的日誌緩衝區,輸出後退出.

-n < count> 設定日誌的最大數目< count> .,預設值是4,需要和 -r 選項一起使用。

-r < kbytes> 每< kbytes> 時輸出日誌,預設值為16,需要和-f 選項一起使用.

-s 設定預設的過濾級別為silent.

-v < format> 設定日誌輸入格式,預設的是brief 格式,要知道更多的支援的格式,參看controlling log output format .

stopping the adb server

在某些情況下,你可能需要終止android 除錯系統的執行,然後再重新啟動它。 例如,如果android 除錯系統不響應命令,你可以先終止伺服器然後再重啟,這樣就可能解決這個問題.

用kill-server 可以終止adb server。你可以用adb發出的任何命令來重新啟動伺服器.

可以通過下列幾種方法加入adb:

* 在裝置上執行shell命令

* 通過埠**來管理模擬器或裝置

* 從模擬器或裝置上拷貝來或拷貝走檔案

下面對adb進行了介紹並描述了常見的使用.

contents

概要發出adb命令

查詢模擬器/裝置例項

給特定的模擬器/裝置例項傳送命令

安裝軟體

**埠

從模擬器/裝置中拷入或拷出檔案

adb命令列表

啟動shell命令

通過遠端shell端執行sqllite3連線資料庫

ui/軟體 試驗程式 monkey

其它的shell命令

啟用logcat日誌

使用logcat命令

過濾日誌輸出

控制日誌輸出格式

檢視可用日誌緩衝區

檢視stdout 和stderr

logcat命令列表

停止adb服務

概要android 除錯系統是乙個面對客戶服務系統,包括三個組成部分:

* 乙個在你用於開發程式的電腦上執行的客戶端。你可以通過shell端使用adb命令啟動客戶端。 其他android工具比如說adt外掛程式和ddms同樣可以產生adb客戶端.

* 在你用於發的機器上作為後台程序執行的伺服器。該伺服器負責管理客戶端與執行於模擬器或裝置上的adb守護程式(daemon)之間的通訊.

* 乙個以後臺程序的形式執行於模擬器或裝置上的守護程式(daemon).

當你啟動乙個adb客戶端,客戶端首先確認是否已有乙個adb服務程序在執行。如果沒有,則啟動服務程序。當伺服器執行,adb伺服器就會繫結本地的tcp埠5037並監聽adb客戶端發來的命令,—所有的adb客戶端都是用埠 5037與adb伺服器對話的.

Android 深入研究adb(一)

android 除錯橋 adb 是多種用途的工具,該工具可以幫助你你管理裝置或模擬器 的狀態。可以通過下列幾種方法加入adb 在裝置上執行shell命令 通過埠 來管理模擬器或裝置 從模擬器或裝置上拷貝來或拷貝走檔案 下面對adb進行了介紹並描述了常見的使用.contents 概要發出adb命令 查...

Android 深入研究adb(五)

檢視stdout 和stderr 在預設狀態下,android系統有stdout 和 stderr system.out 和system.err 輸出到 dev null 在執行dalvik vm的程序中,有乙個系統可以備份日誌檔案。在這種情況下,系統會用stdout 和stderr 和優先順序 i...

Android 深入研究adb(六)

查詢模擬器 裝置例項 在發布adb命令之前,有必要知道什麼樣的模擬器 裝置例項與adb伺服器是相連的。可以通過使用devices 命令來得到一系列相關聯的模擬器 裝置 adb devices 作為回應,adb為每個例項都制定了相應的狀態資訊 序列號 由adb建立的乙個字串,這個字串通過自己的控制埠 ...