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

簡析開源鴻蒙藍牙能力

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


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

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

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

藍牙功能是無線短距的重要能力,在工作、生活中有很多藍牙設備,比如車載藍牙設備,藍牙耳機,藍牙鍵盤。1994年由電信商愛立信發展出這個技術,最初藍牙的設計是系統創建出一個RS-232數據線的無線通信技術替代版,能夠鏈接多個設備并克服同步問題。目前藍牙技術由藍牙技術聯盟(SIG Special Interest Group)來負責維護其技術標準,IEEE曾經將藍牙技術標準化為IEEE 802.15.1,但是這個標準已經不再繼續使用。接下來我們就深入分析下開源鴻蒙的藍牙結構和各層作用及工作內容。

概述

在開源鴻蒙的源碼里和系統功能相關的部分大多都放在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的底層接口,注冊回調以及發送數據。

功能簡析

簡析開源鴻蒙藍牙能力-開源基礎軟件社區

  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/。

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

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

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

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

2010-09-10 09:52:44

開源協議棧

2022-11-08 15:43:45

開源鴻蒙藍牙協議棧

2022-11-28 15:42:39

分布式軟總線鴻蒙

2022-11-22 15:15:46

Wi-Fi鴻蒙

2012-05-29 13:43:36

紫光清華掃描儀

2024-06-20 13:00:26

2011-07-12 14:04:58

2023-06-25 12:17:44

2010-09-13 16:58:13

2010-09-08 16:25:39

SIP協議棧

2009-06-08 21:25:29

Java聲音技術

2013-12-05 10:13:25

iOS圖標

2010-04-19 12:28:57

2010-04-12 15:39:37

無線接入技術應用

2010-05-07 12:39:05

SQL Server負載均衡

2010-06-21 14:05:08

Linux APM

2009-08-13 15:48:57

C#指針

2011-07-20 10:20:04

2011-07-22 11:05:15

光纖通信

2022-06-04 16:11:14

勒索軟件加密Nokoyawa
點贊
收藏

51CTO技術棧公眾號

国产精品一区二区免费| 中文字幕精品久久久久| 好吊妞无缓冲视频观看| 色视频在线观看| 美女在线视频一区| 欧美肥臀大乳一区二区免费视频| 污污网站免费看| 青春草视频在线观看| 久久一区二区视频| 91精品在线一区| 欧美黑人一区二区| 一级欧洲+日本+国产| 日韩hd视频在线观看| 亚洲人视频在线| 黑森林国产精品av| 国产精品久久三| 精品免费视频123区| 在线播放一级片| 99国产精品久久久久久久| 中文字幕亚洲一区二区三区| 国产av一区二区三区传媒| 日韩不卡免费高清视频| 亚洲自拍偷拍图区| 色一情一乱一伦一区二区三区| 在线亚洲欧美日韩| 亚洲欧美bt| 欧美贵妇videos办公室| 久久久视频6r| 全国精品免费看| 欧美精选一区二区| 老司机午夜av| 天堂中文最新版在线中文| 亚洲女同女同女同女同女同69| 精品国产一区二区三区日日嗨| 伊人久久亚洲综合| 日日夜夜免费精品| 91干在线观看| 久久久久久久伊人| 欧美精品自拍| 久久久91精品| 精品视频第一页| 欧美视频免费| 亚洲天堂av网| 91网站免费视频| 天堂综合网久久| 亚洲精品xxxx| 久久久久麻豆v国产精华液好用吗| 亚洲免费一区| 欧美日韩国产乱码电影| 欧美婷婷精品激情| 成人黄色毛片| 欧美性大战久久久久久久 | 日韩免费看片| 亚洲深夜福利视频| 人妻精品久久久久中文字幕 | 国产一区二区自拍| 好吊视频一二三区| 成人黄色国产精品网站大全在线免费观看 | 国产a级片免费观看| 91在线超碰| 性做久久久久久久免费看| 国产精彩视频一区二区| 17videosex性欧美| 亚洲一区二区在线免费观看视频| 国产经典久久久| 在线中文免费视频| 亚洲成av人**亚洲成av**| 国产3p露脸普通话对白| 自拍在线观看| 欧美中文字幕亚洲一区二区va在线 | 欧美日韩免费在线观看| 免费国产a级片| 在线看片福利| 欧美在线制服丝袜| 日本在线观看视频一区| 亚洲精品国产九九九| 亚洲国产高潮在线观看| 亚洲欧美在线不卡| 欧美日韩水蜜桃| 久久夜色精品国产欧美乱| 国产免费无码一区二区视频| 精品999成人| 日本中文字幕成人| 91麻豆成人精品国产| 国产91丝袜在线18| 免费av一区二区三区| 成人免费黄色网页| 亚洲精品视频观看| 自慰无码一区二区三区| 97欧美成人| 欧美大片拔萝卜| 免费在线观看你懂的| 四季av一区二区凹凸精品| 久久99精品视频一区97| 亚洲婷婷综合网| 精品一区二区在线播放| 国产伦精品一区二区三区在线| 四虎精品在线| 国产精品乱人伦| 六月婷婷在线视频| 综合久草视频| 亚洲人成电影网站色…| 精品一区在线观看视频| 久久av一区| 成人91视频| yourporn在线观看中文站| 亚洲一区在线视频| 欧美精品久久久久久久久25p| 年轻的保姆91精品| 亚洲日韩中文字幕在线播放| 国产女片a归国片aa| 国产麻豆综合| 99r国产精品视频| 97超碰人人在线| 欧美日韩午夜视频在线观看| 中文字幕第六页| 欧美一级精品片在线看| 97视频在线观看网址| 国产美女裸体无遮挡免费视频| www.在线欧美| 欧美视频在线第一页| 欧洲亚洲精品| 影音先锋日韩有码| 欧美国产成人精品一区二区三区| 国产一区二区在线看| 天堂社区 天堂综合网 天堂资源最新版| 亚洲精品白浆| 51久久夜色精品国产麻豆| 在哪里可以看毛片| 国产日韩精品视频一区二区三区| 91中文字幕在线观看| 91亚洲欧美| 色拍拍在线精品视频8848| 日韩www视频| 亚洲国产午夜| 国产精选一区二区| 欧美理论片在线播放| 制服丝袜中文字幕亚洲| 日本黄区免费视频观看| 免费黄网站欧美| 手机看片福利永久国产日韩| 亚洲永久av| 亚洲伦理中文字幕| 亚洲第一在线播放| 成人18视频在线播放| 久久精品xxx| 北条麻妃一区二区三区在线观看 | 午夜成年人在线免费视频| 5月丁香婷婷综合| 亚洲波多野结衣| 国产麻豆91精品| 国产91视频一区| 综合激情久久| 韩国福利视频一区| 五月婷婷六月色| 欧美性色视频在线| 亚洲人成人无码网www国产| 久久久久网站| 天天爽天天狠久久久| 高清在线一区| 久热精品在线视频| 午夜免费福利视频| 亚洲成av人片在线观看| 国产伦精品一区二区三区妓女| 国自产拍偷拍福利精品免费一| 91传媒视频在线观看| 青草青在线视频| 亚洲精品美女久久久| 黄色片中文字幕| 亚洲国产精品成人久久综合一区| 青青草精品视频在线观看| 欧美超碰在线| 成人区精品一区二区| 女海盗2成人h版中文字幕| 亚洲欧洲在线视频| 亚洲综合精品在线| 一二三区精品福利视频| jizz日本免费| 日本美女视频一区二区| 裸体裸乳免费看| 久9re热视频这里只有精品| 日韩av色综合| a视频在线观看| 亚洲精品美女在线| 在线观看国产精品视频| 亚洲香肠在线观看| 手机毛片在线观看| 国产不卡在线播放| 97在线免费公开视频| 五月婷婷六月综合| 免费在线一区二区| 欧美久久亚洲| 奇米四色中文综合久久| av色综合久久天堂av色综合在| 欧美大片拔萝卜| 国产美女www爽爽爽| 亚洲精品国久久99热| japanese中文字幕| 国产成人av电影在线观看| www.日日操| 亚洲人成毛片在线播放女女| 亚洲精品电影在线一区| 都市激情亚洲| 成人乱色短篇合集| 精品91久久| 欧美激情视频网址| 蜜桃视频网站在线观看| 亚洲精品一区二区网址| 精品欧美一区二区精品少妇| 在线视频欧美区| 日韩大片免费在线观看| 国产精品高清亚洲| 国产女主播喷水高潮网红在线| 国精品**一区二区三区在线蜜桃 | 都市激情久久综合| 日韩网站免费观看| 日本啊v在线| 亚洲成年人在线播放| 亚洲在线观看av| 污片视频在线免费观看| 亚洲人妖在线| 国产一区高清视频| 95精品视频| 国产精品盗摄久久久| h片在线观看| 久久成人av网站| 午夜视频在线看| 亚洲欧美日韩久久久久久| 内射后入在线观看一区| 欧美一级国产精品| 国产精品久久影视| 欧美色区777第一页| 在线观看污污网站| 一本色道**综合亚洲精品蜜桃冫| 99久久久免费精品| 日韩一区有码在线| 久久成人小视频| 国产精品三级电影| 亚洲午夜久久久久久久国产| 久久欧美中文字幕| 国产美女免费无遮挡| 久久一二三国产| 国产制服丝袜在线| 91丨porny丨户外露出| 黄色免费视频网站| www.久久精品| 在线天堂www在线国语对白| 波多野结衣中文字幕一区二区三区| 奇米影音第四色| 六月婷婷色综合| 午夜精品免费看| 精品在线观看视频| 日韩精品在线播放视频| 国产精品18久久久久久久久| 污免费在线观看| 成人晚上爱看视频| 成人在线视频免费播放| 久久亚洲二区三区| 一级黄色片网址| 国产精品久久精品日日| 日韩一区二区三区四区视频| 中文字幕在线不卡一区| 蜜臀久久精品久久久用户群体| 成人免费在线视频观看| 欧美日韩免费一区二区| 亚洲高清免费视频| 国内自拍视频在线播放| 在线观看日韩高清av| 国产一区二区三区三州| 欧美岛国在线观看| 青草久久伊人| 日韩中文字幕精品| 成人影音在线| 国产成人亚洲精品| 91嫩草国产线观看亚洲一区二区| 91传媒免费看| 久久99国产精品视频| 一区二区三区四区五区精品| 这里只有精品在线| 日本免费黄视频| 久久国产成人午夜av影院| 性感美女一区二区三区| 91麻豆福利精品推荐| 婷婷国产成人精品视频| 亚洲一区二区三区四区五区黄| 国产一级片免费看| 在线观看91视频| www.中文字幕| 亚洲人成在线一二| 2024最新电影免费在线观看| 国产91精品久久久久| 国产精品久一| 欧美亚洲免费在线| 欧美99久久| 九一精品在线观看| 成人免费看的视频| 日韩av网站在线播放| 精品日韩美女的视频高清| 97成人在线观看| 亚洲毛片在线免费观看| 中文在线字幕免费观看| 国产成人精品视| 成人涩涩网站| 在线视频欧美一区| 亚洲影院在线| 韩国三级hd中文字幕有哪些| 国产欧美精品一区| 人人干人人干人人干| 欧美一区二区三区小说| 深夜福利免费在线观看| 九色精品美女在线| 亚洲精品毛片| 秋霞久久久久久一区二区| 好看不卡的中文字幕| 国产三级精品三级在线| 国产丝袜在线精品| 狠狠躁夜夜躁人人爽天天高潮| 欧美在线观看视频一区二区| 天天操天天干天天操| 欧美乱妇40p| 先锋影音网一区二区| 日韩av一区二区三区美女毛片| 欧美午夜在线| 在线a免费观看| 国产精品美日韩| 中文字幕 人妻熟女| 亚洲女在线观看| 国模精品视频| 狠狠色综合一区二区| 国内精品美女在线观看| 在线观看av免费观看| 国产精品欧美一级免费| 免费视频网站在线观看入口| 日韩精品在线视频美女| free性欧美16hd| 国产欧美日韩综合一区在线观看| 欧美超碰在线| 成年人三级黄色片| 国产精品九色蝌蚪自拍| 一本大道伊人av久久综合| 最近2019中文字幕大全第二页| 肉色欧美久久久久久久免费看| 国内一区二区三区在线视频| 伊人天天综合| 朝桐光av一区二区三区| 欧美性生活大片免费观看网址| 天天干,夜夜操| 91精品国产色综合| 日韩丝袜视频| 日韩 欧美 高清| 久久女同精品一区二区| 国产伦精品一区二区三区视频我| 日韩精品高清在线| 亚洲校园激情春色| 视频一区二区三区在线观看| 九九久久精品视频| 18岁成人毛片| 精品福利一区二区三区免费视频| 人人超在线公开视频| 国产精品手机在线| 亚洲综合精品四区| 微拍福利一区二区| 欧美精品在线视频| 国产在线拍揄自揄拍视频| 精品一区二区日本| 日本亚洲视频在线| 男的操女的网站| 亚洲国产精品人久久电影| 韩国美女久久| 最新欧美日韩亚洲| 成人综合婷婷国产精品久久 | 五月婷婷狠狠干| 国产成人精品日本亚洲专区61 | 伊人精品久久久久7777| 国产美女一区二区三区| 日本少妇在线观看| 国产亚洲精品美女| 精品一区二区三区亚洲| 久久黄色片视频| 国产精品传媒在线| 五月婷婷六月色| 成人夜晚看av| 国产视频一区欧美| 男人在线观看视频| 精品国产成人在线影院| 一呦二呦三呦精品国产| 日本三级中文字幕在线观看| av成人动漫在线观看| 中文在线观看av| 久久免费国产视频| 日韩欧美精品一区| 人体私拍套图hdxxxx| 欧美日韩精品一区二区天天拍小说 | 热久久国产精品| 永久免费看黄网站| 亚洲精品综合精品自拍| 久久久精品区| 国产无套粉嫩白浆内谢的出处| 综合欧美亚洲日本| 久草福利在线视频|