精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

跟著小白一起學鴻蒙--簡析藍牙協議棧(十三)

系統 OpenHarmony
在開源鴻蒙的源碼里和系統功能相關的部分大多都放在foundation這個文件夾里,而通訊相關的部分則是在communication這個文件夾內。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

在《#跟著小白一起學鴻蒙# [八] 藍牙應用》我們熟悉了如何在開源鴻蒙開發藍牙應用。在《#跟著小白一起學鴻蒙# [十一] WiFi&藍牙子系統》,我們了解了各種系統內的藍牙和WiFi框架,接下來我們就深入分析下開源鴻蒙的藍牙結構和各層作用及工作內容。

概述

在開源鴻蒙的源碼里和系統功能相關的部分大多都放在foundation這個文件夾里,而通訊相關的部分則是在communication這個文件夾內。我們本篇要分析的藍牙功能就是在foundation/communication/bluetooth路徑下,具體目錄結構如下:

.
├── bundle.json
├── frameworks //框架層
├── inner
└── js
├── hisysevent.yaml
├── interfaces //接口層
├── inner_api
└── kits
├── LICENSE
├── README.md
├── README_zh.md
├── sa_profile //系統能力配置
├── 1130.xml
└── BUILD.gn
├── services //服務層
├── bluetooth
└── bluetooth_lite
└── test 測試代碼
├── example
├── fuzztest
├── moduletest
└── unittest

架構簡析

  • 根據目錄結構和內部文件及編譯框架總結架構如下:

#沖刺創作新星# #跟著小白一起學鴻蒙# [十三]簡析藍牙協議棧-開源基礎軟件社區

  • 接口層:對外提供js接口,采用d.ts定義,藍牙文件夾內位置interfaces/kits/js具體存放路徑在interface/sdk-js/api/@ohos.bluetooth.d.ts;對內提供c接口,可以供softbus,netmanager,audioframework三個子系統調用,藍牙文件夾內位置interfaces/inner_api/include。
  • 框架層:分兩個子層,NAPI框架實現層,藍牙文件夾內位置foundation/communication/bluetooth/frameworks/js/napi,實現所有js層代碼接口適配并調用innerapi的實現;藍牙接口實現層,使用IPC架構同藍牙服務層通信,將從NAPI收到的命令,或者別的子系統收到的命令經由IPC架構發送給服務層,并注冊服務層observer,收聽由服務層上報的事件。
  • 服務層:分三個子層,系統能力層,藍牙文件夾內位置foundation/communication/bluetooth/services/bluetooth/server,實現藍牙系統能力服務,接收從框架層經由IPC發送下來的命令,并收聽藍牙service傳上來的消息并回傳給藍牙框架層;藍牙服務層,藍牙文件夾內位置foundation/communication/bluetooth/services/bluetooth/service,實現不同藍牙能力的adapter(包括classic_adapter和ble_adapter),通過調用藍牙協議棧實現藍牙業務的邏輯能力;藍牙協議棧,藍牙文件夾內位置foundation/communication/bluetooth/services/bluetooth/stack,實現藍牙協議包解析,打包以及藍牙協議流程的處理,實現藍牙host,藍牙profile以及藍牙鏈路和hci接口,最后通過使用藍牙硬件驅動收發藍牙原始數據;
  • 硬件驅動:預編譯包,通過dlopen提供hci的底層接口,注冊回調以及發送數據。

功能簡析

NAPI藍牙框架藍牙系統能力藍牙功能適配藍牙協議棧藍牙驅動同進程,函數調用跨進程,IPC調用通過samgr獲取服務Proxy對象利用adapter和server調用功能c接口調用dlopen加載驅動注冊,回調observer回調observer回調observer proxy + stub注冊,回調NAPI藍牙框架藍牙系統能力藍牙功能適配藍牙協議棧藍牙驅動。

  1. NAPI功能
  • HAP應用層通過@ohos.bluetooth.d.ts引用調用藍牙接口,藍牙接口包括bluetooth接口,BLE接口,profile接口。bluetooth接口包括經典藍牙接口,BLE接口接口,和profile接口;目前支持的profile有A2dpSourceProfile,HandsFreeAudioGatewayProfile,HidHostProfile和PanProfile。
  • NAPI框架接口均通過DECLARE_NAPI_FUNCTION,js的回調也通過此接口經由傳入回調函數指針實現。
  • NAPI層通過調用藍牙框架層的BluetoothHost實現功能,通過將g_bluetoothHostObserver注冊到框架層內部實現來獲得消息回調;同時NAPI層提供g_Observer存儲js層的回調函數,在收到框架層的回調后在g_Observer里查找對應的回調函數來實現應用通知;此對象因為是map結構體,所以一個應用只能注冊一個并在應用內部自己處理。
  1. 藍牙框架功能
  • 藍牙框架提供cadapter接口和藍牙框架具體實現(藍牙NAPI層調用的BluetoothHost即在具體實現層)。
  • cadapter實現c接口,通過BluetoothHost實現功能,其他外部模塊均通過cadapter提供的c接口調用藍牙能力。
  • 藍牙框架內部實現層提供接口一一對應cadapter和NAPI接口。BluettoothHost內部通過SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager()接口得到samgr,然后通過BLUETOOTH_HOST_SYS_ABILITY_ID標識獲取藍牙服務對象,然后通過藍牙服務對象通過IPC接口調用藍牙服務功能。
  • 藍牙框架內部提供RegisterObserver方式,允許其他層應用(比如軟總線層通過調用cadapter接口GapRegisterCallbacks收聽藍牙的回調事件)收聽藍牙回調事件。
  • 藍牙框架因為是動態庫實現,所以如果有多處依賴則會生成多份實例,如NAPI和軟總線都依賴藍牙框架庫,所以在系統里會有兩份實例同時若產生藍牙通知也會有兩個進程同時收到消息。
  1. 藍牙系統能力
  • 藍牙系統能力通過繼承SystemAbility,BluetoothHostStub兩個類實現藍牙服務能力并實現IPC進行通信;IPC通信部分的代碼在藍牙文件夾foundation/communication/bluetooth/services/bluetooth/ipc內,提供proxy和stub實現,即btipc_static.a靜態庫。
  • 藍牙系統能力可視作藍牙服務進程,提供包括藍牙狀態機,藍牙adapter(classic,ble),藍牙profile服務實例。
  • 藍牙系統配置在foundation/communication/bluetooth/services/bluetooth/etc/init目錄內,此部分內容會在制作鏡像包時打包到系統文件內去;在藍牙服務啟動的時候會讀取藍牙配置(AdapterConfig::GetInstance()->Load(),ProfileConfig::GetInstance()->Load())并確定藍牙的snooplog(協議棧輸出文件)。
  • 藍牙系統能力內部使用Dispatcher模型執行任務事務,在Dispatcher對象內部它通過線程加任務隊列的方式處理多條任務命令,目前實現方法為但線程依次處理隊列內的事務。
  • 藍牙系統能力層通過permission_utils提供應用權限保護能力,服務調用功能時首先調用PermissionUtils::VerifyXXXBluetoothPermission(XXX包括,Use,Discover,Manage,Location),然后調用AuthCenter對應功能,最后調用PermissionHelper對應接口確認權限;在AuthCenter里內部定義了g_permissionAlwaysGrant全局變量,可以方便調試時擁有所有權限。
  1. 藍牙協議棧
  • 藍牙協議棧通過c接口對藍牙服務層提供接口。
  • 藍牙協議棧內部他提供任務隊列方式處理藍牙命令(GapRunTaskBlockProcess, GapRunTaskUnBlockProcess),分別對于藍牙協議棧同步接口和異步接口。
  • 藍牙協議棧內部也有層級,對上的是gap,中間是btm,對下的是hci,中間部分和其他藍牙協議站定義的內容一致,如:att,avctp,avdtp,l2cap,rfcomm,sdp,smp。
  • HCI層它通過g_hdiLib加載藍牙驅動庫libbluetooth_hdi_adapter.so,并通過加載藍牙驅動接口(HdiInit,HdiSendHciPacket,HdiClose)實現藍牙數據發送,藍牙數據接收(g_hdiCallacks)。

總結

  1. 藍牙服務的結構也是所有開源鴻蒙的結構能力,大致流程均為:NAPI框架,系統服務框架,IPC框架,Observer框架,原生driver框架(其實可以采用HDF框架);
  2. 目前開源鴻蒙用的藍牙協議站不是android,bluez,btstack這三種主流藍牙協議棧,根據注釋可得其參考《BLUETOOTH SPECIFICATION Version 5.0》實現;目前官方最新的協議棧是v5.3,參考鏈接如下:https://www.bluetooth.com/specifications/specs/core-specification-5-3/。

文章相關附件可以點擊下面的原文鏈接前往下載:

https://ost.51cto.com/resource/2381。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2023-03-30 09:19:54

SELinux安全子系統

2022-11-28 15:42:39

分布式軟總線鴻蒙

2022-12-05 15:02:14

鴻蒙用戶鑒權

2022-11-22 15:15:46

Wi-Fi鴻蒙

2022-10-10 14:47:04

藍牙應用鴻蒙

2023-02-27 16:30:32

鴻蒙開源協議分析

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-02 14:20:09

Tetris鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發畫布功能

2022-10-31 15:35:02

Wi-Fi藍牙子系統

2022-08-19 19:02:20

開源鴻蒙操作系統

2023-04-04 09:24:11

鴻蒙HiDumper

2022-11-25 16:48:54

鴻蒙Stage HAP

2023-01-03 15:09:10

鴻蒙常用工具

2022-12-06 15:39:16

鴻蒙主干代碼

2022-11-24 14:34:41

Hap程序鴻蒙

2023-03-15 16:19:03

BinderIPC工具

2022-10-20 16:40:16

JS應用控制LED鴻蒙

2022-10-09 15:05:50

NAPI框架鴻蒙
點贊
收藏

51CTO技術棧公眾號

欧美亚洲国产成人| 精品一区二区日本| 天天看片中文字幕| 日韩一区二区三区精品视频第3页 日韩一区二区三区精品 | www.成人影院| 国产亚洲视频系列| 国产在线高清精品| 久久99久久久| 美女久久99 | 黄色一区二区视频| 自拍日韩欧美| 亚洲国产精品一区二区三区| 韩国一区二区av| 欧美激情午夜| 成人一级黄色片| 国产不卡视频在线| 亚洲二区在线播放| 欧美网色网址| 欧美乱妇23p| 给我免费播放片在线观看| 岛国在线视频| 成人动漫一区二区三区| 国产精品嫩草影院一区二区| 亚洲国产精品久| 女厕嘘嘘一区二区在线播放 | 日韩免费电影| 亚洲色图在线播放| 蜜桃网站成人| 国产毛片在线视频| 国产亚洲精品自拍| 久久综合九色九九| www.av天天| 亚洲精品在线国产| 欧美亚洲动漫精品| 少妇高潮毛片色欲ava片| 中文日本在线观看| 成人av先锋影音| 91久久精品国产| 国产精品一区无码| 亚洲午夜一区| www.久久撸.com| 人妻精品久久久久中文字幕| 91嫩草精品| 无吗不卡中文字幕| 欧美性猛交内射兽交老熟妇| 3p视频在线观看| 久久先锋影音av| 999热视频| 国产精品视频第一页| 日韩在线a电影| 91po在线观看91精品国产性色| 波多野结衣家庭教师| 日本一区二区免费高清| 亚洲视频网站在线观看| 日韩av手机在线播放| 一区中文字幕| 欧美一区二区三区免费| 两性午夜免费视频| 成人在线视频免费| 欧日韩精品视频| 国产成人a亚洲精v品无码| 狂野欧美性猛交xxxxx视频| 国产精品久久久久国产精品日日| 日韩资源av在线| 美女做暖暖视频免费在线观看全部网址91| 成人高清视频免费观看| 国产激情一区二区三区在线观看 | 日韩欧美中文字幕公布| 欧洲在线免费视频| 国产亚洲字幕| 日韩色视频在线观看| 拔插拔插华人永久免费| 北岛玲精品视频在线观看| 欧美日韩在线一区二区| 一级黄色在线播放| www久久久| 日韩一区二区三区四区五区六区| 四虎成人在线播放| 亚洲成人偷拍| 亚洲精品久久久久国产| 国产呦小j女精品视频| 亚洲精品**不卡在线播he| 亚洲欧美在线看| 少妇精品久久久| 欧美激情视频一区二区三区在线播放 | 成人资源www网在线最新版| 久久久精品国产免大香伊 | 国产一区二区区别| 在线电影欧美日韩一区二区私密| 美国黄色特级片| 日韩精品免费| 久久综合久久美利坚合众国| 国产一国产二国产三| 亚洲视频播放| 国产精品av网站| 亚洲视频一区在线播放| 国产一区二区福利视频| 国产精品一区在线观看| 蜜芽tv福利在线视频| 中文字幕亚洲综合久久菠萝蜜| 日韩国产精品毛片| 亚洲美女尤物影院| 在线观看91av| www.17c.com喷水少妇| 国产欧美一区二区三区精品观看| 日韩在线资源网| 免费在线视频一区二区| 麻豆成人在线| 91色琪琪电影亚洲精品久久| 国产又爽又黄网站亚洲视频123| 亚洲国产精品av| 免费人成在线观看视频播放| 依依综合在线| 欧美一级高清片| 无码人妻精品一区二区三应用大全| 色综合天天爱| 97视频免费观看| 亚洲中文字幕在线一区| 波多野结衣中文字幕一区| 四虎永久在线精品免费一区二区| 久久免费电影| 欧美日韩免费在线视频| 西西大胆午夜视频| 欧美黄色精品| 国产精品爱啪在线线免费观看| 亚洲国产一二三区| 欧美激情在线看| 日韩激情视频一区二区| 99久久亚洲国产日韩美女| 精品国产乱码久久久久久闺蜜| jizz日本在线播放| 男女av一区三区二区色多| 3d蒂法精品啪啪一区二区免费| 男操女在线观看| 亚洲h在线观看| 日本一本在线视频| 成人亚洲一区| 人九九综合九九宗合| 精品人妻久久久久一区二区三区| 欧美国产丝袜视频| 国产极品尤物在线| 麻豆国产一区| 色狠狠久久aa北条麻妃| 区一区二在线观看| bt7086福利一区国产| 99re6这里有精品热视频| 男女啪啪999亚洲精品| 亚洲精品一区二区久| 国产中文字幕免费| 国产成人h网站| 亚洲精品偷拍视频| 国产亚洲精品精品国产亚洲综合| 亚洲精品美女在线| 欧美亚洲天堂网| 国产精品自拍网站| 国产树林野战在线播放| 3d动漫一区二区三区在线观看| 一本一道久久a久久精品逆3p| 国产一级18片视频| 91在线看国产| 69堂免费视频| 图片婷婷一区| 欧美一级片免费在线| 偷拍自拍在线| 色婷婷av一区二区三区软件 | 一区二区视频在线观看| 久久爱.com| 伊人久久久久久久久久| 中文字幕第2页| 国产精品福利av| 一女二男3p波多野结衣| 色婷婷一区二区三区在线观看| 欧美性爽视频| 日韩视频免费直播| 国产乡下妇女做爰视频| 91麻豆.com| 人人爽人人av| 国产精品久久久久一区二区三区厕所| 成人午夜一级二级三级| 182tv在线播放| 欧美va亚洲va| 国产欧美日韩另类| 久久亚洲精华国产精华液 | 亚洲超碰精品一区二区| 中文字幕在线永久| 男女精品视频| 一区二区在线观| 在线综合色站| 2019亚洲日韩新视频| 国产综合在线观看| 在线不卡中文字幕播放| 免费毛片在线播放免费 | 国产精品欧美激情| 国产不卡在线| 精品美女一区二区三区| 国产日产精品一区二区三区| 国产性做久久久久久| 色18美女社区| 一本色道久久| 性欧美18一19内谢| 精品国产乱子伦一区二区| 国产成人久久久精品一区| 老司机精品影院| 亚洲激情久久久| 中文字幕在线观看欧美| 亚洲国产一区二区在线播放| 国产肥白大熟妇bbbb视频| 国产一区久久久| 凹凸国产熟女精品视频| 99久久.com| 黄色99视频| 亚洲免费资源| 97成人在线视频| www.亚洲资源| 精品成人免费观看| 夜夜躁很很躁日日躁麻豆| 亚洲国产一区二区在线播放| 激情无码人妻又粗又大| bt7086福利一区国产| 中文字幕12页| 久久久久国产精品一区二区| 日本免费黄色小视频| 国产免费av一区二区三区| 国产超碰91| 精品久久99| 欧美专区在线视频| 欧美aaaaaaa| 丝袜美腿亚洲一区二区| 四虎影视精品成人| 精品三级在线观看| 97人妻精品一区二区三区软件| 欧美三级免费观看| 国产无遮挡aaa片爽爽| 亚洲天堂久久久久久久| 欧美大波大乳巨大乳| 成人av电影免费在线播放| 99精品999| 蜜桃精品在线观看| 国产精品99久久免费黑人人妻| 国户精品久久久久久久久久久不卡| 亚洲日本欧美在线| 欧美中文字幕一区二区| 麻豆精品传媒视频| 国产丝袜一区| 国产精品v欧美精品v日韩精品| 国产精品igao视频网网址不卡日韩| 国产精品高潮呻吟视频| videos性欧美另类高清| 8x拔播拔播x8国产精品| 91资源在线观看| 久久久伊人日本| 久草在线资源站资源站| 欧美另类69精品久久久久9999| 日本在线看片免费人成视1000| 在线观看日韩欧美| 国产youjizz在线| 亚洲免费精彩视频| 精品美女视频在线观看免费软件| 日韩成人免费视频| 天堂a中文在线| 日韩美女av在线| 桃花色综合影院| 亚洲男人天堂2019| 免费观看成年在线视频网站| 亚洲欧美日韩国产成人| 精品欧美不卡一区二区在线观看 | 一区二区在线视频| 日韩av中文| 久久综合久中文字幕青草 | 久久久久久成人| 美洲精品一卡2卡三卡4卡四卡| 欧美激情视频一区二区| 黄视频在线免费看| 2019亚洲男人天堂| 国产在线|日韩| 国产一区二区在线播放| 国产精品日韩精品在线播放| 成人动漫视频在线观看完整版| 999精品视频在这里| 美脚丝袜一区二区三区在线观看| 国产成人ay| 一级一片免费播放| 国产精品激情| 欧美日韩国产精品激情在线播放| 可以看av的网站久久看| 亚洲xxx在线观看| 国产精品99久久不卡二区| 久久久久亚洲av无码专区首jn| 99精品视频在线播放观看| www在线观看免费视频| 中文字幕一区二区在线观看| 久久久精品91| 色综合天天做天天爱| 91欧美日韩麻豆精品| 精品国产一区二区在线观看| 男同在线观看| 久久亚洲国产精品| 欧产日产国产精品视频| 国产日韩精品在线| 韩国精品福利一区二区三区| 日本精品视频一区| 欧美日韩伊人| 久久精品.com| 黑人精品欧美一区二区蜜桃| 无码国产精品一区二区免费式直播| 99re6这里只有精品视频在线观看| 51妺嘿嘿午夜福利| 亚洲宅男天堂在线观看无病毒| 综合网在线观看| 日韩一区二区三区视频在线| 青春草在线观看| 久久综合免费视频| 国产 日韩 欧美一区| caoporn国产精品免费公开| 国产真实有声精品录音| 欧美一级免费播放| 国产真实乱偷精品视频免| 法国伦理少妇愉情| 亚洲一二三四久久| 一起草av在线| 亚洲天堂av图片| 成年人视频免费在线播放| 国产精品在线看| 亚洲精品白浆高清| www.日本少妇| 激情欧美一区二区三区在线观看| 草草影院第一页| 亚洲午夜精品一区二区三区他趣| 真实的国产乱xxxx在线91| 日韩成人激情视频| 国产丝袜精品丝袜| 亚洲一区二区免费| 日韩欧美精品| 国产极品美女高潮无套久久久| 国产盗摄女厕一区二区三区| 综合 欧美 亚洲日本| 色88888久久久久久影院按摩| 男人天堂网在线视频| 操日韩av在线电影| 国产精品亲子伦av一区二区三区| 精品一区二区日本| 99精品国产福利在线观看免费| 精品国产午夜福利在线观看| 日韩一区有码在线| 一本到在线视频| 国产亚洲欧美另类中文| 天堂中文av在线资源库| 国外成人在线视频网站| 合欧美一区二区三区| 亚洲熟女乱综合一区二区| 亚洲同性同志一二三专区| 亚洲综合精品视频| 色吧影院999| 在线免费观看亚洲| 精品国产无码在线| 国产在线精品一区二区| 国产福利视频网站| 欧美精品久久天天躁| 麻豆免费在线视频| 成人激情视频在线播放| 四虎8848精品成人免费网站| 欧美成年人视频在线观看| 欧美激情一区二区三区在线| 中文无码av一区二区三区| 亚洲最新av在线网站| a∨色狠狠一区二区三区| 亚洲精品一区二| 麻豆91精品视频| 波多野结衣亚洲一区二区| 日韩小视频在线观看专区| 午夜在线激情影院| 国产精品视频一区二区三区经| 亚洲视频日本| 人人妻人人澡人人爽人人精品 | 蜜桃一区二区三区在线观看| 九九热久久免费视频| 4438x成人网最大色成网站| 怡红院在线观看| 国产伦精品一区二区三区四区免费 | 亚洲欧美国产不卡| 国产成人自拍网| 人人干人人干人人干| 国产一区二区三区欧美| 日韩成人免费av| 800av在线免费观看| 91视频国产观看| 中文字幕网址在线| 久久国产精品首页| 加勒比久久高清| 天天碰免费视频| 亚洲免费在线视频一区 二区| 丰满少妇一级片| 日本精品免费观看| 亚洲免费二区| 欲求不满的岳中文字幕| 欧美日韩中文另类| 国精产品一区一区三区mba下载| 欧美午夜欧美| 国产精品一区二区久激情瑜伽| 日韩av黄色片|