0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【鸿蒙】OpenHarmony 4.0蓝牙代码结构简析

王程 来源:jf_75796907 作者:jf_75796907 2024-02-26 16:08 次阅读

OpenHarmony 4.0蓝牙代码结构简析前言

OpenHarmony 4.0上蓝牙仓和目录结构进行一次较大整改,本文基于4.0以上版本对蓝牙代码进行分析,便于读者快速了解和学习OpenHarmony蓝牙模块

代码仓和目录结构

当前蓝牙完整的代码涉及多个代码仓
代码路径
说明

应用接口https://gitee.com/openharmony/interface_sdk-js/tree/master/api当前所有应用层接口统一归并到interface仓;api 10中蓝牙接口按照profile拆分了多个d.ts文件

框架层https://gitee.com/openharmony/communication_bluetooth该仓之前包含框架层和系统服务层代码;架构拆分后只保留框架层代码

系统服务层https://gitee.com/openharmony/communication_bluetooth_service

驱动https://gitee.com/openharmony/drivers_peripheral/bluetoothIDL模式,蓝牙驱动接口实现;接口定义在https://gitee.com/openharmony/drivers_interface/bluetooth;完整的代码还应该包括vendor(蓝牙芯片)代码,如dayu200的vendor代码在https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568

系统服务层代码仓目录相对较多,目录划分原则和功能描述如下

wKgZomXcRo6AFtQ8AAIhJd6EgqI689.png

架构及进程部

wKgZomXcRpaAdtGNAADRUxpX_CU918.png


1、蓝牙模块按照OpenHarmony系统架构分层原则进行分层
2、框架层分为JSAPI和NativeAPI,JSAPI用于用户APP调用;NativeAPI生成btframework.so,供其它系统服务(net_manager…)调用;部署在调用者进程
3、系统服务层内部分为5层,分别对应目录结构中描述的5个目录;部署在蓝牙系统服务进程
4、驱动进程中部署Hdi和Vendor模块;和蓝牙芯片对接,在蓝牙系统服务进程和蓝牙芯片间处理报文收发

版本间差异

1、原来蓝牙框架层和系统服务层都在bluetooth代码仓,现在拆分成了bluetooth和bluetooth_service两个仓;主要理念是考虑可以方便替换或升级蓝牙系统服务层的实现;比如厂商可以使用私有的蓝牙协议实现,只需要框架层接口保持一致即可
2、为了减少应用程序的运行内存和程序加载速度,JSAPI按照profile拆分出了多个so;应用程序可以按需最小引用蓝牙模块功能

总结

本文基于OpenHarmony 4.0版本对蓝牙代码架构/目录分层原则做了简单分析,同时分析了4.0版本的重要改动点

为了能让大家更好的学习鸿蒙 (OpenHarmony) 开发技术,这边特意整理了《鸿蒙 (OpenHarmony)开发学习手册》,希望对大家有所帮助:

《鸿蒙(Harmony OS)开发学习手册》

入门必看:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.应用开发导读(ArKTS)
2.……

wKgaomXW6N2AJp9uAAQXRxEAprs547.png

HarmonyOS概念:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.系统定义
2.技术框架
3.技术特性
4.系统安全

wKgaomXW6OSAFcCRAAV2zd2X_1s891.png

快速入门:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.基本概念
2.构建第一个ArkTS应用
3.…

wKgZomXW6PuAA7wEAAKx6By_2Z8377.png

开发基础知识:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS
9…

wKgZomXW6QaAM4niAAQzrXUUPik914.png

基于ArkTS 开发:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16………

wKgZomXW6RKATahiAAKz-zSMnR4040.png


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    114

    文章

    5825

    浏览量

    170368
  • 鸿蒙
    +关注

    关注

    57

    文章

    2355

    浏览量

    42867
  • OpenHarmony
    +关注

    关注

    25

    文章

    3723

    浏览量

    16329
收藏 人收藏

    评论

    相关推荐

    OpenHarmony源码编译后烧录镜像教程,RK3566鸿蒙开发板演示

    本文介绍瑞芯微主板/开发板编译OpenHarmony源码后烧录镜像的教程,触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持开源鸿蒙O
    的头像 发表于 12-30 10:08 30次阅读
    <b class='flag-5'>OpenHarmony</b>源码编译后烧录镜像教程,RK3566<b class='flag-5'>鸿蒙</b>开发板演示

    OpenHarmony怎么修改DPI密度值?触觉智能RK3566鸿蒙开发板演示

    开源鸿蒙OpenHarmony系统下,修改DPI密度值的方法,触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,Laval鸿蒙社区推荐开发板,已适配全
    的头像 发表于 12-24 11:46 174次阅读
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?触觉智能RK3566<b class='flag-5'>鸿蒙</b>开发板演示

    OpenHarmony属性信息怎么修改?触觉智能RK3566鸿蒙开发板来演示

    本文介绍开源鸿蒙OpenHarmony系统下,修改产品属性信息的方法,触觉智能Purple Pi OH鸿蒙开发板演示,已适配全新OpenHarmony5.0 Release系统!
    的头像 发表于 11-27 09:31 175次阅读
    <b class='flag-5'>OpenHarmony</b>属性信息怎么修改?触觉智能RK3566<b class='flag-5'>鸿蒙</b>开发板来演示

    如何在开源鸿蒙OpenHarmony开启SELinux模式?RK3566鸿蒙开发板演示

    本文介绍开源鸿蒙OpenHarmony系统下,开启/关闭SELinux权限的方法,触觉智能Purple Pi OH鸿蒙开发板演示,已适配全新OpenHarmony5.0 Release
    的头像 发表于 11-18 19:03 333次阅读
    如何在开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>开启SELinux模式?RK3566<b class='flag-5'>鸿蒙</b>开发板演示

    OpenHamrony4.0去除锁屏是一种什么体验?触觉智能给你支支招

    本文介绍开源鸿蒙OpenHarmony 4.0系统下,去除锁屏开机后直接进入界面的方法,触觉智能Purple Pi OH鸿蒙开发板演示,已适配全新O
    的头像 发表于 11-13 10:37 251次阅读
    OpenHamrony<b class='flag-5'>4.0</b>去除锁屏是一种什么体验?触觉智能给你支支招

    OpenHarmony4.0系统修改屏幕旋转方法,RK3566鸿蒙开发板备战第九届华为ICT大赛

    本文提供OpenHarmony4.0系统竖屏修改为旋转时的操作方法,本次使用了触觉智能的Purple Pi OH鸿蒙开源主板,搭载了瑞芯微RK3566,Laval官方社区主荐的一款鸿蒙开发主板,近期第九届华为ICT大赛,有竞赛需
    的头像 发表于 09-25 00:29 498次阅读
    <b class='flag-5'>OpenHarmony4.0</b>系统修改屏幕旋转方法,RK3566<b class='flag-5'>鸿蒙</b>开发板备战第九届华为ICT大赛

    深耕鸿蒙生态,国科微旗舰芯片获“鸿蒙4.0”首款认证

    7月9日,国科微宣布旗下超高清视频解码及商显芯片通过OpenHarmony4.0版本兼容性测评,获颁鸿蒙生态产品兼容性证书。其中,国科微GK6323V100C是业界首款通过鸿蒙4.0
    的头像 发表于 07-10 13:10 474次阅读
    深耕<b class='flag-5'>鸿蒙</b>生态,国科微旗舰芯片获“<b class='flag-5'>鸿蒙</b><b class='flag-5'>4.0</b>”首款认证

    鸿蒙开发:【OpenHarmony 4.0 Release指导】

    OpenHarmony 4.0版本如期而至,开发套件同步升级到API 10。相比3.2 Release版本,新增4000多个API,应用开发能力更加丰富;HDF新增200多个HDI接口,硬件适配更加便捷;我们持续优化图形框架和方舟编译器(ArkCompiler)
    的头像 发表于 05-14 09:59 1484次阅读
    <b class='flag-5'>鸿蒙</b>开发:【<b class='flag-5'>OpenHarmony</b> <b class='flag-5'>4.0</b> Release指导】

    岩土工程监测中振弦采集仪的布设方案及实施步骤

    岩土工程监测中振弦采集仪的布设方案及实施步骤 岩土工程监测中,河北稳控科技振弦采集仪是一种常用的地下水位和土层压缩性监测工具。它通过采集振弦的振动信号来确定地下水位和土层的压缩性,为岩土
    的头像 发表于 05-06 13:25 257次阅读
    岩土工程监测中振弦采集仪的布设方案及实施步骤<b class='flag-5'>简</b><b class='flag-5'>析</b>

    【开源鸿蒙】下载OpenHarmony 4.1 Release源代码

    本文介绍了如何下载开源鸿蒙OpenHarmony)操作系统 4.1 Release版本的源代码,该方法同样可以用于下载OpenHarmony最新开发版本(master分支)或者
    的头像 发表于 04-27 23:16 934次阅读
    【开源<b class='flag-5'>鸿蒙</b>】下载<b class='flag-5'>OpenHarmony</b> 4.1 Release源<b class='flag-5'>代码</b>

    鸿蒙OpenHarmony开发实战:【MiniCanvas】

    基于OpenHarmony的Cavas组件封装了一版极操作的MiniCanvas,屏蔽了原有Canvas内部复杂的调用流程,支持一个API就可以实现相应的绘制能力,该库还在继续完善中,也欢迎PR。
    的头像 发表于 03-23 20:43 363次阅读

    鸿蒙开发学习:【OpenHarmony HAR】

    OpenHarmony js/ts三方库使用的是OpenHarmony静态共享包,即HAR(Harmony Archive),可以包含js/ts代码、c++库、资源和配置文件。通过HAR,可以实现
    的头像 发表于 03-18 16:27 754次阅读

    2024款鸿蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    Next_HarmonyOS4.0系列教程由业内大神录制于2024年,包括:HarmonyOS ArkTs、ArkUI、ArkTs Api、ArkTs Native、OpenHarmony ArkUI-X跨平台的基本用法以及项目
    发表于 02-28 10:29

    [鸿蒙]OpenHarmony4.0的Rust开发

    OpenHarmony 为了集成 C/C++ 代码和提升编译速度,使用了 GN + Ninja 的编译构建系统。GN 的构建语言简洁易读,Ninja 的汇编级编译规则直接高效。 为了在 OpenHarmony
    的头像 发表于 02-26 17:28 897次阅读
    [<b class='flag-5'>鸿蒙</b>]<b class='flag-5'>OpenHarmony4.0</b>的Rust开发

    鸿蒙开发OpenHarmony组件复用案例

    ) } }, item => item) } } } 本文主要是对鸿蒙开发基础当中的OpenHarmony技术组件复用示例, 更多鸿蒙开发OpenHarmony技术可以在主页
    发表于 01-15 17:37