1. 程式人生 > >Android除錯工具adb的高逼格使用方式

Android除錯工具adb的高逼格使用方式

引言:

通常在使用Eclipse進行Android應用開發的時候,我們可以使用Eclipse自帶的工具來完成除錯和檢視輸出日誌的操作,但是假如在當前電腦並沒有配置適用於Android開發的Eclipse版本的情況下,想要檢視Android裝置執行應用或者遊戲時的實時輸出日誌,可以直接藉助Android除錯工具 adb 來完成。

adb簡介:

adb 全稱是 Android Debug Bridge,即安卓除錯工具。

adb配置:

與其說是安裝 adb ,更準確的描述應該是解壓和配置。先下載 adb工具包,然後加壓得到一個 adb 資料夾,包含檔案如下:

| adb
| --- adb.exe
| --- AdbWinApi.dll | --- AdbWinUsbApi.dll | --- fastboot.exe

為了可以全域性使用 adb 工具,我們可以用兩種方式來實現配置操作:

方法一:配置環境變數

直接將 adb 資料夾的目錄新增到系統環境變數 Path 中,操作步驟:我的電腦 -> 屬性 -> 高階系統設定 -> 環境變數

方法二:複製到系統檔案目錄

adb 工具包的四個檔案都複製到 C:\Windows\System32 目錄裡。

  • 報錯:
    這是網上推薦的方式之一,但是我嘗試之後發現並不能正常使用,在cmd視窗輸入 adb

    還報錯 “無法啟動此程式,因為計算機中丟失 AdbWinApi.dll。嘗試重新安裝該程式解決此問題。”

  • 解決:
    原來,這個配置過程跟系統的位數有關,假如系統是32位的,則將四個檔案都複製到 C:\Windows\System32 目錄裡即可。但是,假如使用的Windows系統是64位的,則需要將其中的 AdbWinApi.dll 檔案複製到 C:\Windows\SysWOW64 裡,這樣就一切正常了。

常用操作:

1.查詢版本:

開啟cmd視窗,定位到 adb.exe 所在的檔案目錄,然後輸入版號查詢指令:

shell
E:\java web\tools\adb>adb -v
Android Debug Bridge version 1.0.26

2.啟動和關閉:

  • 啟動:

    adb start-server
  • 關閉:

    adb kill-server

3.查詢連線裝置列表:

注意使用前先確保手機的USB除錯功能是開啟的狀態。設定 -> 開發者選項 -> USB除錯(勾選)

在cmd視窗輸入 adb devices 查詢裝置列表:

 C:\Users\Administrator>adb devices
List of devices attached
622123171690109874      device
  • 問題:
    假如在裝置管理器中看到裝置已經連線上:計算機管理 -> 裝置管理 -> Android Phone -> Android Composite ADB Interface -> 右鍵屬性 -> 詳細資訊

    但是,adb 查詢結果發現列表卻是空的:

    C:\Users\Administrator>adb devices
    adb server is out of date.  killing...
    * daemon started successfully *
    List of devices attached
  • 解決:
    開啟 C:\Users\Administrator\.android 目錄,修改或新建一個 adb_usb.ini 檔案,填寫內容為:0x[VID]

    這裡[VID] 其實是硬體的 id,對應的其實就是上面計算機裝置管理中的 USB\VID_2C73&PID_7029&REV_FFFF&MI_01VID_ 後面緊跟著的4位數字,這裡是 “2C73”,故最終 adb_usb.ini 檔案的內容是:0x2C73


然而,又出現瞭如下錯誤:
C:\Users\Administrator>adb devices
List of devices attached
622123171690109874      offline
網上資料說是由於:谷歌在 “Android 4.2.2“ 以後加入了驗證,需要配合使用最新的ADB工具。這裡我重新下載了 “adb 1.0.32“ 再嘗試查詢裝置列表即正常了:
F:\android-sdk\platform-tools>adb -v
Android Debug Bridge version 1.0.32

F:\android-sdk\platform-tools>adb devices
adb server is out of date.  killing...
* daemon started successfully *
List of devices attached
622123171690109874      device

下面步驟都是在查詢裝置指令執行正常的前提下進行的,否則無法正常使用。

3.列印日誌:

命令 說明 備註
adb logcat 列印log /
adb logcat -c 清除手機的log buffer 有些手機許可權控制, 不支援.
adb logcat -b 列印指定buffer的log資訊 buffer有: main(主log區,預設), events(事件相關的log), radio(射頻, telephony相關的log)
adb logcat -v 格式化輸出log 常用的用adb logcat -v time顯示時間
adb logcat -f 輸出log到指定檔案

4.安裝/解除安裝 apk:

  • 安裝:(安裝apk時指定apk file路徑)

    adb install (.apk的目錄)
  • 解除安裝:(解除安裝apk時指定包名)

    adb uninstall (apk的包名(xx.xx.com))

通常直接有兩種方式來檢視 logcat 日誌:

  • 實時cmd視窗輸出:

    adb logcat
  • 寫入到指定日誌輸出檔案:

    adb logcat -d >logcat.txt

    會在當前目錄下生成一個 logcat.txt 日誌檔案。

5.進入裝置的 shell 介面:

adb shell

小結:

總說高階的程式設計師就要做到脫離UI介面的程式設計模式,所以像這樣直接使用cmd視窗來操作使用類似 adb 這樣工具,從而完成我們功能需求,是不是看起來有點厲害的感覺呢。

參考資料: