要驗證和調試藍牙堆棧,請使用 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/run_unit_tests.sh
中找到。
Android 通訊測試套件
Android Comms Test Suite (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 監聽日誌切換。
- 重啟藍牙使日誌生效。
要驗證和調試藍牙堆棧,請使用 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/run_unit_tests.sh
中找到。
Android 通訊測試套件
Android Comms Test Suite (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 監聽日誌切換。
- 重啟藍牙使日誌生效。