天天看點

Android BlueDroid(一):BlueDroid概述 【轉】

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

關鍵詞:bluedroid bluez

作者:xubin341719(歡迎轉載,請注明作者,請尊重版權,謝謝!)

歡迎指正錯誤,共同學習、共同進步!!

一、名詞解釋:(有用資訊增加中……)

BTI F: Bluetooth Interface

BTU : Bluetooth Upper Layer

BTM: Bluetooth Manager 

BTE  :Bluetooth embedded system

BTA  :Blueetooth application layer

CO: call out\CI: call in

HF : Handsfree Profile

HH: HID Host Profile

HL: Health Device Profile

AV:audio\vidio

ag: audio gateway 

ar: audio/video registration

gattc: GATT client

BLE:

二、       BlueDroid  &&  BlueZ

2.4.6核心的官方藍牙協定棧。随着Android裝置的流行,BlueZ也得到了極大的完善和擴充。例如Android

4.1中BlueZ的版本更新為4.93,它支援藍牙核心規範4.0,并實作了絕大部分的Profiles。

從Android 4.2開始,Google便在Android源碼中推出了它和博通公司一起開發的BlueDroid以替代BlueZ。BlueZ的創始者,高通公司也将在基于其晶片的Android參考設計中去除BlueZ,支援BlueDroid。

1、Android 4.2中BlueDroid的架構結構圖:(Google官方提供)。

Android BlueDroid(一):BlueDroid概述 【轉】

(1)、應用程式通過android.bluetooth package下的API來調用系統的Bluetooth功能。

(2)、應用層空間增加了一個名為Bluetooth的App。它做為系統的bluetooth核心程序而存在。其内部将通過JNI來調用Bluetooth HAL層以完成各種藍牙請求。

(3)、Bluetooth HAL也屬于Android 4.2新增子產品,它由藍牙核心規範硬體抽象層和藍牙應用規範硬體抽象層組成。由于HAL層的隔離作用,上層代碼可輕松移植到不同晶片平台。

(4)、作為整個藍牙服務的核心,Bluetooth

Stack子產品則由Bluetooth Application Layer(縮寫為BTA)和Bluetooth Embedded

(5)、Vendor Extentions(廠商擴充):開發者可以添加自定義擴充以實作廠商特定的子產品群組件。

(6)、bluedroid 整體協定棧架構:

Android BlueDroid(一):BlueDroid概述 【轉】

整個系統的架構很簡單,因為大多的事情都是在Bluedroid層裡面做的,上層隻管去Call和Callback就是了,這部分我們在後面分析代碼做詳細分析。

2、BlueZ 代碼架構

和Bluedroid類似,BlueZ也是按照标準流程從應用一直走下來,不過兩者唯一的差別是BlueZ的DBUS。blueDroid中取出DBUS是代碼結構變的更加清晰,看起來跟順暢。如下圖藍牙代碼架構(Google官方提供):

Android BlueDroid(一):BlueDroid概述 【轉】

3、BlueDrod  PK  BlueZ    

BlueDroid雖然對BlueZ大有取而代之的趨勢,但現在它對藍牙應用規範的支援還不夠完善。例如BlueDroid僅支援AVRCP

1.0,而非最新的AVRCP

1.5。是以,國内某些晶片或手機廠商若能及早完成BlueZ相關子產品到BlueDroid的移植工作,相信能幫助它們在競争日趨白日化的移動世界中拔得先機。另外,作為一種成熟、低功耗無線通信技術的先鋒,藍牙未來在可穿戴裝置領域中也将扮演越來越重要的作用。

【新浪微網誌】 張昺華--sky

【twitter】 @sky2030_

【facebook】 張昺華 zhangbinghua

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利.

繼續閱讀