安卓BLE开发教程(一) BLE基础
我試圖以一種簡單的方式去把重要的事情講清楚。目的是希望BLE協議棧和基礎概念簡單化,讓自己及類似的安卓開發者可以在較短的時間內把握住BLE的核心及使用方法。BLE本身很復雜,但對于安卓開發而言只要抓住一些核心點,便已足夠。如果你想全面了解BLE協議棧,包括分層及每層功能,那么你從這里可能得不到答案。
1、BLE協議棧層次
然而,安卓BLE開發不用理解如此復雜的分層結構。因為我們不是在開發BLE協議棧,只是使用上層的安卓API和BLE設備進行通訊。因此我們只需要關注ATT和GATT層即可。
2、屬性協議層(ATT)與通用屬性配置文件層(GATT)的關系
一句話總結,ATT定義了GATT的實現所需要的基礎。也即“一切皆屬性”。
3、屬性協議層(ATT)
GATT層的實現均基于ATT層的“屬性”概念,屬性是一塊特定的數據,用于向其他設備展示。展示或者擁有“屬性”的設備稱為服務器,與之配對的設備稱為客戶端。
4、通用屬性配置文件層(GATT)
定義了使用ATT的服務框架,GATT規定了配置文件(profile)的結構。簡單的包含關系:
Profile包含Service,Service包含Chracteristic,Service和Chracteristic都以屬性的方式存儲在Profile中。
GATT服務器上的Chracteristic及其內容和描述符均存儲于屬性表中(ATT Table)。屬性表可以理解為一個數據庫,包含了稱為屬性的小塊數據。除了值本身,每個屬性包含下列屬性:
Handle—屬性在列表中的地址
Type—說明代表什么數據,可以是SIG分配或自定義UUID
Permissons—權限,定義了client是否可以訪問屬性的值,以及特定的訪問方式
5、GATT層中的關鍵詞
(1)Profile
Profile可以理解為一種規范、一種標準的通信協議(SIG規定了一系列標準Profile),profile存在于從機中。每個Profile中會包含多個Service,每個Service代表從機的一種能力。
(2)Service
Service可以理解為一個服務,在BLE從機中,通常有多個服務,每個Service里又包含了多個Chracteristic特征值。
(3)Chracteristic
Chracteristic也稱為“特性”或“特征值”,BLE的主從機通信均是通過Chracteristic來實現。
下圖為GATT Profile 層級
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的安卓BLE开发教程(一) BLE基础的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 数字图像处理第四版更新内容
 - 下一篇: Spring MVC实现文件下载