鸿蒙NEXT开发实战往期必看文章:
一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)
HarmonyOS NEXT应用开发案例实践总结合(持续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)
结合开源鸿蒙源码的最新版本进行了相应的调整和优化,帮助大家更好地理解和应用开源鸿蒙技术。
环境
- OpenHarmony-4.0 源码
- 九联 unionpi_whale 开发板
一、OpenHarmony源码的模块划分
1、OpenHarmony内核分类
系统分为三种不同体量的系统,本文主要讲解基于Linux的标准系统构建。
2、系统代码版本
Openharmony有主干代码与发行版代码两种,代码的获取请参考官方文档。
3、OpenHarmony源码体系
OpenHarmony的源码架构基于模块化设计,为了方便系统的功能的增加和裁剪,设计了基于GN构建的模块系统。整个模块可从大到小划分为产品(product)、领域/子系统集(domain)、子系统(sub_system)、部件(component)、模块/组件(module)、特性(feature)几个部分,这种模块化的树状编译框架,非常方便根据目标产品硬件资源的大小进行灵活的裁剪,从而实现**“统一0S,弹性部署”**的目标。
4、各部分的关系
一个产品(product)可以包含1-n个子系统(subsystem),一个子系统可以包含1-~n个部件(component),一个部件可以包含1-n个模块(modue),不同产品的中的相同部件可以编译不同的特性(feature),**子系统集(domain)**在源代码一级根目录有体现。
不同产品相同模块可以通过特性feature进行差异化定义。
5、南向开发的概念
开源鸿蒙系统的南向开发,主要是针对设备或者终端的软件开发,例如各种智能家居设备、穿戴设备等。由于这些设备种类繁多,硬件配置和操作系统都各不相同,因此需要进行适配和优化,以确保设备能够顺利地运行开源鸿蒙系统。
二、OpenHarmony源码的产品、子系统、部件、组件配置详解
1、产品
产品解决方案为基于开发板的完整产品,主要包含产品对OS的适配、部件拼装配置、启动配置和文件系统配置等。产品解决方案的源码路径规则为:vendor/{产品解决方案厂商}/{产品名称}。
vendor/company/product/config.json
config.json为编译构建的主入口,包含了开发板、OS部件和内核等配置信息。
2、领域
OpenHarmony技术架构中有四大子系统集:“系统基本能力子系统集”、“基础软件服务子系统集"、“增强软件服务子系统集"、“硬件服务子系统集”。四大子系统不会直接出现在编译选项或者参数中,而是有对应的一级源代码文件夹:“系统基本能力子系统集”对应源码foundation文件夹;“基础软件服务子系统集”和“硬件服务子系统集”对应源码base文件夹;“增强软件服务子系统集"对应源码domains文件夹。
- vendor仓:存放厂商驱动代码,配置文件
- device仓:存放硬件设备代码,板级配置和驱动代码
3、子系统
子系统是一个逻辑概念,它具体由对应的组件构成。配置规则如下:
{
"arkui": {
"path": "foundation/arkui", # 路径
"name": "arkui" # 子系统名
},
"ai": {
"path": "fo