如要驗證及偵錯藍牙堆疊,請使用 AOSP 提供的工具和藍牙技術聯盟 (SIG) 測試。
測試及驗證
如要測試藍牙堆疊,Android 開放原始碼計畫提供單元測試、CTS 測試,以及藍牙設定檔調整套件 (PTS) 的工具。
Android 開放原始碼計畫中的單元測試
AOSP 包含預設藍牙堆疊的功能和單元測試。這些測試位於 /packages/modules/Bluetooth/system/test/
。如要執行 Android 開放原始碼計畫測試,請按照下列步驟操作:
停止 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
。
設定檔調整套件
Bluetooth SIG 提供 Bluetooth PTS,這是用來測試通訊協定和設定檔互通性的工具。詳情請參閱 Bluetooth Profile Tuning Suite 網站。
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
:btsnooz.py BUG_REPORT.txt > BTSNOOP.log
使用記錄檔偵錯
在 Android 4.4 以上版本中,您可以手動收集 BTSnoop 記錄,這類記錄類似 RFC 1761 中的 snoop 格式。這些記錄會擷取主機控制器介面 (HCI) 封包。在大多數 Android 裝置上,記錄檔會儲存在 data/misc/bluetooth/logs
中。
基於隱私權考量,持續運作的「記憶體內」BTSnoop 只會記錄非個人資訊和事件。如要記錄所有資料,使用者必須啟用藍牙 HCI 窺探記錄,方法如下:
在裝置上啟用「開發人員選項」。
在「開發人員選項」選單中,啟用「啟用藍牙 HCI 窺探記錄」切換鈕。
重新啟動藍牙,記錄功能就會生效。