Android 4.2 中的Bluetooth 協議棧


Android 4.2之前,Google一直使用的是Linux官方藍牙協議棧,即知名老牌開源項目BlueZBlueZ實際上是由高通公司在20015月基於GPL協議發佈的一個開源項目,該項目僅發佈一個月後就被Linux之父Linux Torvalds納入了Linux內核,並做爲Linux 2.4.6內核的官方藍牙協議棧。隨着Android設備的流行,BlueZ也得到了極大的完善和擴展。例如Android 4.1BlueZ的版本升級爲4.93,它支持藍牙核心規範4.0,並實現了絕大部分的Profiles

BlueZ現在正處於其巔峯時期,但好景不長。從Android 4.2Jelly Bean開始,Google便在Android源碼中推出了它和博通公司一起開發的BlueDroid以替代BlueZ。雖然因爲時間及成熟度的原因,大部分手機廠商在Android 4.2中仍繼續使用BlueZ。但據筆者瞭解,BlueZ的創始者,高通公司也將在基於其芯片的Android參考設計中去除BlueZ,並僅支持BlueDroid

BlueZ的未來如何筆者姑且不論。不過,能讓高通改弦易轍,BlueDroid自有其合理之處。相比BlueZBlueDroid最值得稱道的地方就是其框架結構變得更爲簡潔和清晰。另外,藉助HALHardware Abstraction Layer,硬件抽象層),BlueDroid終於不再和dbus有任何瓜葛。圖8所示爲Android 4.2BlueDroid的框架結構圖[④]

8  Android 4.2BlueDroid框架結構圖

由圖8可知,Android4.2BlueDroid框架包括以下幾個部分:

  • 應用程序通過android.bluetooth package下的API來調用系統的Bluetooth功能。
  • 應用層空間增加了一個名爲Bluetooth的App。它做爲系統的bluetooth核心進程而存在。其內部將通過JNI來調用Bluetooth HAL層以完成各種藍牙請求。
  • Bluetooth HAL也屬於Android 4.2新增模塊,它由藍牙核心規範硬件抽象層和藍牙應用規範硬件抽象層組成。由於HAL層的隔離作用,上層代碼可輕鬆移植到不同芯片平臺。
  • 作爲整個藍牙服務的核心,Bluetooth Stack模塊則由Bluetooth Application Layer(縮寫爲BTA)和Bluetooth Embedded System(縮寫爲BTE)兩大部分組成。BTA實現了藍牙設備管理、狀態管理及一些應用規範。而BTE則通過HCI與廠商藍牙芯片交互以實現了藍牙協議棧的通用功能和相關協議。另外,BTE還包括一個統一內核接口(GKI),藍牙芯片廠商可藉助GKI快速輕鬆得移植藍牙協議棧到其他操作系統或手機平臺上。
  • Vendor Extentions(廠商擴展):開發者可以添加自定義擴展以實現廠商特定的模塊和組件。

除了BlueDroid外,在今年的Google I/O大會,谷歌公司還宣佈將於與蘋果、微軟和黑莓等公司共同支持Bluetooth Smart ReadyBSR,藍牙智能就緒)和Bluetooth SmartBS,藍牙智能)技術。這項技術使藍牙設備或應用可以非常容易地連接全球成千上萬的藍牙設備,藍牙使用者的生活也因此變得更加簡單。BSRBS都是建立在藍牙核心規範4.0GATT應用規範。即將發佈的Android 4.3MR2)支持BSR技術,使得BS的開發者可以輕易地將其設備和應用與Android BSR設備進行連接和發佈。藍牙使用者運用BS的智能應用配件(如健康監控或醫療設備)收集數據,再傳送到支持BSR設備(如智能手機或平板)上。

另外,藍牙SIG也正在研發工具Bluetooth Application Accelerator(藍牙應用加速器)。據可靠消息,該工具將隨Android 4.3發佈,並將幫助開發者在Android 4.3上快速開發藍牙應用,從而加快相關產品的研發時間。

  總結

本文對藍牙核心規範、藍牙應用規範以及Android 4.2中的藍牙協議棧BlueDroid進行了一些簡單介紹。

從筆者瞭解的情況來看,BlueDroid雖然對BlueZ大有取而代之的趨勢,但現在它對藍牙應用規範的支持還不夠完善。例如BlueDroid僅支持AVRCP 1.0,而非最新的AVRCP 1.5。所以,國內某些芯片或手機廠商若能及早完成BlueZ相關模塊到BlueDroid的移植工作,相信能幫助它們在競爭日趨白日化的移動世界中拔得先機。

另外,作爲一種成熟、低功耗無線通信技術的先鋒,藍牙未來在可穿戴設備領域中也將扮演越來越重要的作用。那時,藍牙或許就會真正像“牙齒”一樣成爲各種設備中不可或缺的一部分了。








發佈了369 篇原創文章 · 獲贊 587 · 訪問量 533萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章