驗證及偵錯

如要驗證及偵錯藍牙堆疊,請使用 AOSP 和藍牙技術聯盟 (SIG) 測試中提供的工具。

測試及驗證

為了測試藍牙堆疊,Android 開放原始碼計畫提供單元測試、CTS 測試和藍牙設定檔調整套件的工具。

AOSP 中的單元測試

AOSP 包含預設藍牙堆疊的功能和單元測試。這些測試位於 /packages/modules/Bluetooth/system/test/ 中。如要執行 AOSP 測試,請執行下列操作:

  1. 停止 Android 執行階段:
    adb shell stop
  2. 如要執行特定測試或測試套件,請從測試目錄執行殼層可執行檔案,並加入選項:
    ./run_unit_tests.sh TEST_GROUP_NAME TEST_NAME OPTIONS
  3. 測試完成後,請重新啟用 Android 執行階段:
    adb shell start

您可以在 /packages/modules/Bluetooth/system/test/README.md 中找到測試名稱清單。

設定檔調整套件

Bluetooth SIG 提供 Bluetooth Profile Tuning Suite (PTS),這是一項測試工具,可測試通訊協定和設定檔的互通性。詳情請參閱 Bluetooth Profile Tuning Suite 網站。

CTS 測試

Compatibility Test Suite (CTS) 包含藍牙堆疊的測試。這些檔案位於 cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth 中。

偵錯選項

AOSP 提供多種方法,可用於偵錯裝置的藍牙堆疊,包括記錄和錯誤報告。這些方法可能無法解決無法重現的問題,或音訊問題 (可能受到平台和裝置的多個部分影響)。

使用錯誤報告進行偵錯

如要使用 dumpsys 檢查藍牙服務狀態,請使用下列指令:

adb shell dumpsys bluetooth_manager

根據預設,所有記錄訊息的追蹤層級為 2。如要進一步瞭解記錄層級,並變更不同設定檔的記錄層級,請參閱 system/bt/conf/bt_stack.conf

如要從錯誤報告中擷取窺探記錄,請使用 btsnooz 指令碼。

  1. 取得 btsnooz.py
  2. 擷取錯誤報告的文字版本。
  3. 針對錯誤回報的文字版本執行 btsnooz.py
    btsnooz.py BUG_REPORT.txt > BTSNOOP.log

使用記錄檔進行偵錯

在 Android 4.4 以上版本中,您可以手動收集 BTSnoop 記錄,這些記錄類似於 RFC 1761 中的 snoop 格式。這些記錄會擷取主機控制器介面 (HCI) 封包。對於大多數 Android 裝置,記錄會儲存在 data/misc/bluetooth/logs 中。

基於隱私權考量,一律開啟的「記憶體內」BTSnoop 只會記錄非個人資訊和事件。如要記錄所有資料,使用者必須啟用藍牙 HCI 窺探功能,方法如下:

  1. 在裝置上啟用開發人員選項
  2. 在「開發人員選項」選單中,啟用「啟用藍牙 HCI 窺探記錄」切換鈕。
  3. 重新啟動藍牙,讓記錄功能生效。