若要驗證和偵錯藍牙堆疊,請使用 AOSP 和藍牙特別興趣組 (SIG) 測試中提供的工具。
測試和驗證
為了測試藍牙堆疊,AOSP 提供了單元測試、CTS 測試和藍牙設定檔調整套件工具的組合。
AOSP 中的單元測試
AOSP 包括預設藍牙堆疊的功能和單元測試。這些測試位於/packages/modules/Bluetooth/system/test/
中。若要執行 AOSP 測試,請執行下列操作:
- 停止 Android 運行時:
adb shell stop
- 從測試目錄中執行 shell 可執行文件,如果要執行特定測試或測試套件,請包含選項:
./run_unit_tests.sh TEST_GROUP_NAME TEST_NAME OPTIONS
- 測試完成後,重新啟用 Android 執行時間:
adb shell start
測試名稱清單可以在/packages/modules/Bluetooth/system/test/README.md
中找到。
Android 通訊測試套件
Android 通訊測試套件 (ACTS) 對連線堆疊(例如 Wi-Fi、藍牙和蜂窩服務)執行自動測試。測試工具需要 adb 和 python,可以在tools/test/connectivity/acts
中找到。
藍牙和低功耗藍牙的 ACTS 測試分別位於tools/test/connectivity/acts_tests/tests/google/bt/
和tools/test/connectivity/acts_tests/tests/google/ble/
中。
設定檔調整套件
藍牙 SIG 提供藍牙設定檔調整套件 (PTS),這是用於協定和設定檔互通性的測試工具。有關詳細信息,請參閱藍牙設定檔調整套件網站。
AOSP 提供了額外的工具來補充藍牙 PTS。這些工具位於tools/test/connectivity/acts_tests/tests/google/bt/pts/
。
CTS 測試
相容性測試套件(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
腳本。
- 取得
btsnooz.py
。 - 提取錯誤報告的文字版本。
- 在
btsnooz.py BUG_REPORT.txt > BTSNOOP.log
報告的文字版本上執行btsnooz.py
使用日誌進行調試
在 Android 4.4 及更高版本中,您可以手動收集 BTSnoop 日誌,類似於 RFC 1761 中的 snoop 格式。這些日誌會擷取主機控制器介面 (HCI) 封包。對於大多數 Android 設備,日誌儲存在data/misc/bluetooth/logs
中。
出於隱私原因,始終在線的「內存中」BTSnoop 僅記錄非個人資訊和事件。要記錄所有數據,使用者需要透過執行以下操作來啟用藍牙 HCI 監聽:
- 在裝置上啟用開發者選項。
- 在開發人員選項選單中,啟動啟用藍牙 HCI 監聽日誌開關。
- 重啟藍牙使日誌記錄生效。