編輯:關於Android編程
關鍵詞: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
Android 4.2之前,Google一直使用的是Linux官方藍牙協議棧BlueZ。BlueZ實際上是由高通公司在2001年5月基於GPL協議發布的一個開源項目,做為Linux 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。
相比BlueZ,BlueDroid最值得稱道的地方就是其框架結構變得更為簡潔和清晰。對我們工程師來說這也是個不錯的福利,清晰、簡潔的架構使我們在debug過程中思路更清晰;
1、Android 4.2中BlueDroid的框架結構圖:(Google官方提供)。
vcbky/uy2df3z7XNs7vyyta7+sa9zKjJz6GjPGJyIC8+o6ijtaOpoaJWZW5kb3IgRXh0ZW50aW9uc6Oos6fJzMCp1bmjqaO6v6q3otXfv8nS1MztvNPX1Lao0uXAqdW50tTKtc/Ws6fJzMzYtqi1xMSjv+m6zdfpvP6hozxiciAvPqOoo7ajqaGiYmx1ZWRyb2lkINX7zOXQrdLp1bu83Lm5o7o8L3A+PHA+PGltZyBzcmM9"/uploadfile/Collfiles/20141023/2014102308595729.jpg" alt="\" />
整個系統的架構很簡單,因為大多的事情都是在Bluedroid層裡面做的,上層只管去Call和Callback就是了,這部分我們在後面分析代碼做詳細分析。
2、BlueZ 代碼架構
和Bluedroid類似,BlueZ也是按照標准流程從應用一直走下來,不過兩者唯一的區別是BlueZ的DBUS。blueDroid中取出DBUS是代碼結構變的更加清晰,看起來跟順暢。如下圖藍牙代碼架構(Google官方提供):
3、BlueDrod PK BlueZ
BlueDroid雖然對BlueZ大有取而代之的趨勢,但現在它對藍牙應用規范的支持還不夠完善。例如BlueDroid僅支持AVRCP 1.0,而非最新的AVRCP 1.5。所以,國內某些芯片或手機廠商若能及早完成BlueZ相關模塊到BlueDroid的移植工作,相信能幫助它們在競爭日趨白日化的移動世界中拔得先機。另外,作為一種成熟、低功耗無線通信技術的先鋒,藍牙未來在可穿戴設備領域中也將扮演越來越重要的作用。
OPPO R9是OPPO發布的最新款手機,對於它的操作使用,還有人不大清楚,如oppo r9怎麼截圖?下面小編就跟大家介紹一下oppo r9截圖方法,有需要
首先,定義TabHost的布局文件:復制代碼 代碼如下:<?xml version=1.0 encoding=utf-8?><TabHost xmlns
Android Studio怎麼查看程序安全碼獲取SHA1值? Android Studio程序安全碼怎麼用?我們使用百度地圖SDK進行Android開發,
自定義view練習 仿支付寶芝麻信用的儀表盤對比圖:首先是自定義一些屬性,可自己再添加,挺基礎的,上代碼<?xml version=1.0 encoding