OpenHarmony子系统
- OpenHarmony子系统
- 1. AI业务子系统
- 2. 方舟运行时子系统
- 3. ArkUI框架子系统
- 4. DFX子系统
- 5. DeviceProfile子系统
- 6. XTS子系统
- 7. 上传下载子系统
- 8. 主题框架子系统
- 9. 事件通知子系统
- 10. 位置服务子系统
- 11. 元能力子系统
- 12. 全局资源调度子系统
- 13. 全球化子系统
- 14. 公共基础库
- 15. 内核子系统
- 16. 分布式数据管理子系统
- 17. 分布式硬件子系统
- 18. 分布式软总线子系统
- 19. 包管理子系统
- 20. 升级子系统
- 21. 启动恢复子系统
- 22. 图形子系统
- 23. 多模输入子系统
- 24. 媒体子系统
- 25. 安全基础能力子系统
- 26. 定制子系统
- 27. 账号子系统
- 28. 文件管理子系统
- 29. 时间时区子系统
- 30. 泛Sensor子系统
- 31. 测试子系统
- 32. 用户IAM子系统
- 33. 电源管理子系统
- 34. 电话服务子系统
- 35. 研发工具链子系统
- 36. 程序访问控制子系统
- 37. 窗口子系统
- 38. 系统应用
- 39. 系统服务管理子系统
- 40. 编译构建子系统
- 41. 网络管理子系统
- 42. 语言运行时子系统
- 43. 输入法框架子系统
- 44. 驱动子系统
OpenHarmony子系统
OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。子系统是一个逻辑概念,它具体由对应的组件构成。组件对子系统的进一步拆分,可复用的软件单元,它包含源码、配置文件、资源文件和编译脚本;能独立构建,以二进制方式集成,具备独立验证能力的二进制单元。
官方文档:https://gitee.com/openharmony/docs/tree/master/zh-cn/readme
1. AI业务子系统
AI业务子系统是OpenHarmony提供原生的分布式AI能力的子系统。本次开源范围是提供了统一的AI引擎框架,实现算法能力快速插件化集成。框架中主要包含插件管理、模块管理和通信管理等模块,对AI算法能力进行生命周期管理和按需部署。后续,会逐步定义统一的AI能力接口,便于AI能力的分布式调用。同时,提供适配不同推理框架层级的统一推理接口。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/AI业务子系统.md
2. 方舟运行时子系统
方舟编译器(ArkCompiler)是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编译运行时平台。它支持包括动态类型和静态类型语言在内的多种编程语言,如JS、TS、ArkTS;它是支撑OpenHarmony系统成为打通手机、PC、平板、电视、车机和智能穿戴等多种设备的操作系统的编译运行时底座。
ArkCompiler主要分成两个部分:编译工具链与运行时。
编译工具链架构:
运行时架构:
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/ARK-Runtime-Subsystem-zh.md
3. ArkUI框架子系统
ArkUI框架是OpenHarmony UI开发框架,提供开发者进行应用UI开发时所必需的能力,包括UI组件、动画、绘制、交互事件、JS API扩展机制等。ArkUI框架提供了两种开发范式,分别是基于ArkTS的声明式开发范式(简称“声明式开发范式”)和兼容JS的类Web开发范式(简称“类Web开发范式”)。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/ArkUI框架子系统.md
4. DFX子系统
在OpenHarmony中,DFX(Design for X)是为了提升质量属性软件设计,目前包含的内容主要有DFR(Design for Reliability,可靠性)和DFT(Design for Testability,可测试性)特性。提供以下功能:
-
HiLog流水日志。
-
HiView插件平台。
-
FaultLoggerd应用故障收集和订阅。
-
HiAppEvent应用事件记录接口及框架。
-
HiSysEvent系统事件记录接口及服务。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/DFX子系统.md
5. DeviceProfile子系统
DeviceProfile是设备硬件能力和系统软件特征的管理器,典型的Profile有设备类型、设备名称、设备OS类型、OS版本号等。DeviceProfile提供快速访问本地和远端设备Profile的能力,是发起分布式业务的基础。主要功能如下:
- 本地设备Profile的查询、插入、删除。
- 远程设备Profile的查询。
- 跨设备同步Profile。
- 订阅远程Profile变化的通知。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/DeviceProfile子系统.md
6. XTS子系统
XTS子系统是OpenHarmony兼容性测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套件,后续会拓展dcts(device compatibility test suite)设备兼容性测试套件等。XTS子系统当前包括acts与tools软件包:
- acts,存放acts相关测试用例源码与配置文件,其目的是帮助终端设备厂商尽早发现软件与OpenHarmony的不兼容性,确保软件在整个开发过程中满足OpenHarmony的兼容性要求。
- tools,存放acts相关测试用例开发框架。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/XTS子系统.md
7. 上传下载子系统
上传下载服务为应用提供上传/下载能力,包括创建、移除、暂停、启动任务上传/下载,以及订阅任务进度、成功、失败等,支撑开发者方便、高效地使用下载/上传业务的功能。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/上传下载子系统.md
8. 主题框架子系统
主题框架子系统包括壁纸管理服务和锁屏管理服务,为系统提供设置壁纸、锁屏、解锁等基础能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/主题框架子系统.md
9. 事件通知子系统
OpenHarmony通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。公共事件可分为系统公共事件和自定义公共事件。
-
系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。 例如:系统关键服务发布的系统事件(例如:hap安装,更新,卸载等)。
-
自定义公共事件:应用自定义一些公共事件用来实现跨应用的事件通信能力。
每个应用都可以按需订阅公共事件,订阅成功且公共事件发布,系统会把其发送给应用。这些公共事件可能来自系统、其他应用和应用自身。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/事件通知子系统.md
10. 位置服务子系统
移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气、新闻轶事、出行打车、旅行导航、运动记录。这些习以为常的活动,都离不开定位用户终端设备的位置。当用户处于这些丰富的使用场景中时,系统的位置能力可以提供实时准确的位置数据。对于开发者,设计基于位置体验的服务,也可以使应用的使用体验更贴近每个用户。当应用在实现基于设备位置的功能时,如:驾车导航,记录运动轨迹等,可以调用该模块的API接口,完成位置信息的获取。
位置能力用于确定用户设备在哪里,系统使用位置坐标标示设备的位置,并用多种定位技术提供服务,如GNSS定位、基站定位、WLAN/蓝牙定位(基站定位、WLAN/蓝牙定位后续统称“网络定位技术”)。通过这些定位技术,无论用户设备在室内或是户外,都可以准确地确定设备位置。
-
坐标,系统以1984年世界大地坐标系统为参考,使用经度、纬度数据描述地球上的一个位置。
-
GNSS定位,基于全球导航卫星系统,包含:GPS、GLONASS、北斗、Galileo等,通过导航卫星,设备芯片提供的定位算法,来确定设备准确位置。定位过程具体使用哪些定位系统,取决于用户设备的硬件能力。
-
基站定位,根据设备当前驻网基站和相邻基站的位置,估算设备当前位置。此定位方式的定位结果精度相对较低,并且需要设备可以访问蜂窝网络。
-
WLAN、蓝牙定位,根据设备可搜索到的周围WLAN、蓝牙设备位置,估算设备当前位置。此定位方式的定位结果精度依赖设备周围可见的固定WLAN、蓝牙设备的分布,密度较高时,精度也相较于基站定位方式更高,同时也需要设备可以访问网络。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/位置服务子系统.md
11. 元能力子系统
元能力子系统实现对Ability的运行及生命周期进行统一的调度和管理,应用进程能够支撑多个Ability,Ability具有跨应用进程间和同一进程内调用的能力。Ability管理服务统一调度和管理应用中各Ability,并对Ability的生命周期变更进行管理。元能力子系统架构图说明:
- Ability Kit为Ability的运行提供基础的运行环境支撑。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。Ability分为FA(Feature Ability)和PA(Particle Ability)两种类,其中FA支持Page Ability,PA支持Service Ability和Data Ability。
- Ability管理服务(AbilityManagerService):用于协调各Ability运行关系、及对生命周期进行调度的系统服务。
- Ability栈管理模块(AbilityStackManager)负责维护各个Ability之间跳转的先后关系。
- 连接管理模块(AbilityConnectManager)是Ability管理服务对Service类型Ability连接管理的模块。
- 数据管理模块(DataAbilityManager)是Ability管理服务对Data类型Ability管理的模块。
- App管理服务调度模块(AppScheduler)提供Ability管理服务对用户程序管理服务进行调度管理的能力。
- Ability调度模块(AbilityScheduler)提供对Ability进行调度管理的能力。
生命周期调度模块(LifecycleDeal)是Ability管理服务对Ability的生命周期事件进行管理调度的模块。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/元能力子系统.md
12. 全局资源调度子系统
全局资源调度子系统承担系统中CPU、内存、存储资源的调度管理,包括任务的分组,优先级管理,后台任务的管理等。在保障前台操作流畅的基础上,尽力提供后台多任务流畅运行的环境。同时, 全局资源调度子系统也负责性能、功耗、热的均衡调度,即考虑用户操作的及时响应, 也护航系统的长续航能力,并兼顾系统发热控制,避免发热和控制发热的影响在可控范围内。
全局资源调度子系统主要适用于标准系统,对于轻量系统,一般进行删减处理。下面的介绍仅针对标准系统。全局资源调度子系统从整个系统的性能、功耗、热三个维度分别对CPU、内存、IO、网络、软资源进行调度和管控,即三大调度引擎五大资源维度。所述软资源包括前后台任务、消息、队列等可管理的软件实体。全局资源调度子系统的模块划分如下图所示:
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/全局资源调度子系统.md
13. 全球化子系统
当OpenHarmony系统/应用在全球不同区域使用时,系统/应用需要满足不同市场用户关于语言、文化习俗的需求。全球化子系统提供支持多语言、多文化的能力,包括:
-
资源管理能力
-
根据设备类型、系统配置等信息,对系统资源和应用资源加载、解析和初始化,对外提供获取字符串、媒体等资源的接口。
-
国际化能力
-
提供底层的资源回溯能力,同时对外提供丰富的国际化接口,包括时间日期格式化、数字格式化、电话号码格式化、单复数等。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/全球化子系统.md
14. 公共基础库
公共基础类库存放OpenHarmony通用的基础组件。这些基础组件包括一些常用的C、C++、JS开发增强API,可被OpenHarmony各业务子系统及上层应用所使用。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/公共基础库.md
15. 内核子系统
OpenHarmony针对不同量级的系统,分别使用了不同形态的内核,分别为LiteOS和Linux。在轻量系统、小型系统可以选用LiteOS;在小型系统和标准系统上可以选用Linux。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/内核子系统.md
16. 分布式数据管理子系统
分布式数据管理子系统支持单设备的各种结构化数据的持久化,以及跨设备之间数据的同步、共享功能。开发者通过分布式数据管理子系统,能够方便地完成应用程序数据在不同终端设备间的无缝衔接,满足用户跨设备使用数据的一致性体验。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/分布式数据管理子系统.md
17. 分布式硬件子系统
超级终端是指多个设备互相协同,借助各个设备的优势能力为用户提供1+1>2的更优体验。 分布式硬件子系统是超级终端中用于设备间外设能力共享的子系统,其管理超级终端内各个设备的硬件信息,纳入硬件资源池统一管理,实现设备间硬件能力的跨设备共享和调用能力,打破了设备边界,并通过软件定义各种新产品形态和体验。如手机可以使用电视大屏幕显示,办公PC也能使用手机摄像头提供更强的摄像能力。 分布式硬件平台对超级终端中的所有设备的硬件资源池化都是基于硬件虚拟化组件来进行构建的,每一个硬件在平台上注册对应的虚拟硬件实例,虚拟硬件通过虚拟化组件实现与对应的物理硬件之间的交互,从而实现了对周边设备对应硬件的控制和数据传输。硬件资源池化基于驱动接口(HDI)完成硬件虚拟化,服务层各个业务子系统可以像使用本机硬件一样使用分布式硬件。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/分布式硬件子系统.md
18. 分布式软总线子系统
分布式软总线子系统旨在为OpenHarmony系统提供的通信相关的能力,包括:WLAN服务能力、蓝牙服务能力、软总线、进程间通信RPC(Remote Procedure Call)等通信能力。
-
WLAN服务:为用户提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。
-
蓝牙服务:为应用提供传统蓝牙以及低功耗蓝牙相关功能和服务。
-
软总线:为应用和系统提供近场设备间分布式通信的能力,提供不区分通信方式的设备发现,连接,组网和传输功能。
-
进程间通信:提供不区分设备内或设备间的进程间通信能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/分布式软总线子系统.md
19. 包管理子系统
包管理子系统负责应用安装包的管理,提供安装包的信息查询、安装、更新、卸载和包信息存储等能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/包管理子系统.md
20. 升级子系统
OpenHarmony升级子系统用来支持OpenHarmony设备的OTA(Over The Air)升级。整个升级子系统包括如下几块:
-
升级包制作工具,升级包制作工具是使用python开发,运行在PC端用来制作升级包的工具。它首先会打包各个升级镜像,然后对升级包进行签名,同时生成升级包执行脚本,最后制作出升级包。工具生成升级脚本,设备侧解析执行脚本。最终完成所有的升级动作。升级包里面有两个文件,包括build_tools.zip 和update.bin。工具对update.bin 和最终生成的升级包(zip 压缩文件)分别进行签名。
- build_tools.zip:用来辅助升级的工具,包括升级的可执行文件和升级脚本
- update.bin:TLV编码的文件,所有的升级内容按照TLV格式序列化存储,最终生成update.bin
-
升级服务,升级服务是用来搜索,下载和触发升级。
-
升级包安装,升级包安装是升级子系统的核心功能,主要包括:
- 从misc分区获取升级命令,根据不同的命令执行不同的任务。
- 对升级包进行解压和合法性效验。
- 启动升级进程,并解析出升级脚本。
- 根据升级脚本安装各个组件包。
- 完成升级后,进行后处理。如清理升级包,记录升级状态等。
-
升级客户端,升级客户端是用来触发搜包和下载的app。
在进行应用的开发前,开发者应了解以下基本概念:
-
OTA,Over The Air 的缩写。 OTA 是无线升级的一种方式。升级包通过网络下载到设备中。由设备通过升级子系统进行升级。
-
全量包,全量包是完整的镜像,由升级子系统将全量包写到分区,达到更新分区的目的。
-
差分包,根据两个特定版本(源版本,目标版本)之间的差异,使用bsdiff生成差分数据,升级子系统根据差分数据制作差分包。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/升级子系统.md
21. 启动恢复子系统
启动恢复负责在内核启动之后到应用启动之前的系统关键进程和服务的启动过程的功能。涉及以下组件:
-
init组件,支持使用LiteOS-A和Linux内核的平台。负责处理从内核加载第一个用户态进程开始,到第一个应用程序启动之间的系统服务进程启动过程。启动恢复子系统除负责加载各系统关键进程之外,还需在启动的同时设置其对应权限,并在子进程启动后对指定进程实行保活(若进程意外退出要重新启动),对于核心进程意外退出时,启动恢复子系统还要执行系统重启操作。详见“init启动引导组件”部分。
-
appspawn应用孵化器组件,提供了Lite和Standard两个版本,Lite版本支持使用LiteOS-A内核的平台;Standard版本支持使用Linux内核的平台。负责接受应用程序框架的命令孵化应用进程,设置其对应权限,并调用应用程序框架的入口。
-
bootstrap启动引导组件,支持使用LiteOS-M内核的平台。提供了各服务和功能的启动入口标识。在SAMGR启动时,会调用bootstrap标识的入口函数,并启动系统服务。
-
syspara系统参数组件,负责提供获取与设置操作系统相关的系统属性。支持全量系统平台。支持的系统属性包括:默认系统属性、OEM厂商系统属性和自定义系统属性。OEM厂商部分仅提供默认值,具体值需OEM产品方按需进行调整,详见“syspara系统属性组件”部分。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/启动恢复子系统.md
22. 图形子系统
图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用开发。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/图形子系统.md
23. 多模输入子系统
OpenHarmony旨在为开发者提供NUI(Natural User Interface)的交互方式,有别于传统操作系统的输入,在OpenHarmony上,我们将多种维度的输入整合在一起,开发者可以借助应用程序框架、系统自带的UI组件或API接口轻松地实现具有多维、自然交互特点的应用程序。具体来说,多模输入子系统基于Linux原生驱动和HDF驱动接收设备输入事件,如键盘、鼠标、触摸屏、触摸板等, 对输入事件进行归一化和标准化后通过innerSDK分发到ArkUI框架,ArkUI框架封装事件后转发到应用,或者innerSDK通过JsKit接口直接分发事件到应用。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/多模输入子系统.md
24. 媒体子系统
媒体子系统为开发者提供一套简单且易于理解的接口,使得开发者能够方便接入系统并使用系统的媒体资源。媒体子系统包含了音视频、相机相关媒体业务,提供以下常用功能:
- 音频播放和录制。
- 视频播放和录制。
- 相机拍照和录制。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/媒体子系统.md
25. 安全基础能力子系统
安全基础能力子系统包括系统安全、数据安全、应用安全等功能,为OpenHarmony提供有效保护应用和用户数据的能力。安全基础能力子系统当前开源的功能,包括应用完整性保护、应用权限管理、设备认证、密钥管理服务、数据传输管控。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/安全基础能力子系统.md
26. 定制子系统
当OpenHarmony设备或应用在特定行业、地域等场景下使用时,需要对系统进行不同程度的定制以满足特定场景的使用需求。定制子系统提供支持企业设备管理和配置策略的能力。
- 配置策略,为各业务模块提供获取各配置层级的配置目录或配置文件路径的接口。
- 企业设备管理组件,为企业MDM(Mobile Device Management)应用开发者提供管理应用的开发框架,设定管理模式,提供企业设备管理功能能力集。同时为企业环境下的应用提供系统级别的API。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/定制子系统.md
27. 账号子系统
在标准系统上,账号子系统主要提供系统账号生命周期管理,分布式账号登录状态管理和应用账号信息管理等基础能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/账号子系统.md
28. 文件管理子系统
文件管理子系统为OpenHarmony提供一套完整的文件数据管理解决方案,提供安全、易用的文件访问能力和完善的文件存储管理能力,包括:
- 为应用提供安全的沙箱隔离技术,保证应用数据安全基础上权限最小化;
- 统一的公共文件管理能力,统一公共数据访问入库,保证用户数据安全、纯净;
- 分布式文件系统和云接入文件系统访问框架,应用可以像使用本地文件一样使用分布式和云端文件;
- 支持公共数据、跨应用、跨设备的系统级文件分享能力;
- 提供系统的存储管理能力和基础文件系统能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/文件管理子系统.md
29. 时间时区子系统
时间时区为OpenHarmony系统提供了管理系统时间时区和定时的能力,包括:
-
管理时间时区,统一管理系统时间时区,包括设置/获取系统时间、日期、时区,同时提供获取系统启动时间。
-
定时能力,提供系统定时器能力。包括定时器创建、启动、停止和销毁。定时器类型提供三种:系统启动时间计时类定时器、系统当前时间计时类定时器、唤醒类定时器。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/时间时区子系统.md
30. 泛Sensor子系统
泛Sensor服务子系统提供了轻量级sensor服务基础框架,提供了如下功能:
- Sensor列表查询
- Sensor启停
- Sensor订阅/去订阅
- 设置数据上报模式等
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/泛Sensor子系统.md
31. 测试子系统
OpenHarmony为开发者提供了一套全面的自测试框架,开发者可根据测试需求开发相关测试用例,开发阶段提前发现缺陷,大幅提高代码质量。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/测试子系统.md
32. 用户IAM子系统
用户身份和访问管理子系统,下称用户IAM(Identity and Access Management),旨在为OpenHarmony提供统一用户身份凭据管理和身份认证的能力,支持多用户分别设置凭据信息,并根据用户设置的凭据信息提供用户身份认证功能,支撑锁屏和支付等安全场景。同时,用户IAM子系统也提供对外的接口供三方应用调用,实现业务对用户的访问控制要求。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/用户IAM子系统.md
33. 电源管理子系统
电源管理子系统提供如下功能:
- 重启服务:系统重启和下电。
- 系统电源管理服务:系统电源状态管理和休眠运行锁管理。
- 显示相关的能耗调节:包括根据环境光调节背光亮度,和根据接近光亮灭屏。
- 省电模式 :在不损害主要功能和性能的前提下,提供一种低功耗操作模式 。
- 电池服务:支持充放电、电池和充电状态的监测,包括状态的更新和上报,还包括关机充电。
- 温控 :在设备温度到一定程度之后对应用、SoC、外设进行管控,限制温升 。
- 耗电统计: 主要包括软件耗电和硬件耗电统计,以及单个应用的耗电统计 。
- 轻设备电池服务。
- 轻设备电源管理服务。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/电源管理子系统.md
34. 电话服务子系统
电话服务子系统,提供了一系列的API用于获取无线蜂窝网络和SIM卡相关的一些信息。应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息。各个模块主要作用如下:
- 核心服务模块:主要功能是初始化RIL管理、SIM卡和搜网模块。
- 通话管理模块:主要功能是管理CS(Circuit Switch,电路交换)、IMS(IP Multimedia Subsystem,IP多媒体子系统)和OTT(over the top,OTT解决方案)三种类型的通话,申请通话所需要的音视频资源,处理多路通话时产生的各种冲突。
- 蜂窝通话模块:主要功能是实现基于运营商网络的基础通话。
- 蜂窝数据模块:主要功能是实现基于运营商网络的蜂窝数据上网。
- 短彩信模块:主要功能是短信收发和彩信编解码。
- 状态订阅模块:主要功能是提供电话服务子系统各种消息事件的订阅以及取消订阅的API。
- 数据存储模块:主要功能是持久化数据存储,提供DataAbility访问接口。
- RIL Adapter模块: 主要功能是与modem通信接口的适配。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/电话服务子系统.md
35. 研发工具链子系统
在OpenHarmony中,研发工具链子系统主要为开发人员提供了开发时用于调试的命令行以及追踪性能轨迹、查看性能的工具。本子系统主要实现了以下功能:
- bytrace,开发人员用于追踪进程轨迹、查看性能的一种工具,主要对内核ftrace进行了封装和扩展,来支持用户态的打点。
- hdc,开发人员用于调试的命令行工具,通过该工具可以在windows/linux/mac等系统上与开发机或者模拟器进行交互。
- profiler,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/研发工具链子系统.md
36. 程序访问控制子系统
程序访问控制子系统负责管理操作系统的权限管控机制和隔离访问控制等能力。现程序访问控制子系统开源的功能,包括沙箱管理模块。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/程序访问控制子系统.md
37. 窗口子系统
窗口子系统 提供窗口管理和Display管理的基础能力,是系统图形界面显示所需的基础子系统。其主要的结构如图所示。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/窗口子系统.md
38. 系统应用
系统应用提供了OpenHarmony标准系统上的部分应用,如桌面、SystemUI、设置等,为开发者提供了构建标准系统应用的具体实例,这些应用支持在所有标准系统设备上使用。系统应用目前包含如下几个应用:
- 桌面:提供了基本的已安装应用的展示功能和人机交互界面,是所有应用的入口。
- SystemUI:包含导航栏和系统状态栏两部分,导航栏提供基本页面导航功能、状态栏提供系统状态显示,如时间、充电状态等。
- 设置:提供了关于设备,应用管理,亮度设置等功能。
- 联系人:提供了拨号盘、通话记录查看/删除、联系人列表、详情查看和新建联系人等功能。
- 短信:提供了信息查看、发送短信、接收短信、短信送达报告、删除短信等功能。
- 通话:提供了语音通话接听和挂断,移动数据开关等功能。
- 相机:提供了预览、拍照、缩略图显示、跳转大图浏览等功能。
- 图库:提供了图片、视频和相册的管理、浏览、显示、编辑操作等功能。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/系统应用.md
39. 系统服务管理子系统
系统服务管理子系统实现系统服务框架,提供系统服务的启动、注册、查询功能,提供查询跨设备的分布式系统服务。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/系统服务管理子系统.md
40. 编译构建子系统
编译构建子系统提供了一个基于gn和ninja的编译构建框架,主要提供以下功能:
- 构建不同芯片平台的产品,如:Hi3516DV300平台。
- 根据产品配置可以按照组件组装打包产品需要的能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/编译构建子系统.md
41. 网络管理子系统
网络管理子系统,作为设备联网的必备组件,提供了对不同类型网络连接的统一管理、流量管理、策略管理、网络共享,并提供了网络协议栈能力。应用可以通过调用API来获取数据网络的连接信息,查询和订阅数据网络的连接状态,网络流量数据,网络策略以及网络共享等,并可通过网络协议栈进行数据传输。下图所示为网络管理子系统架构图。各个部件主要作用如下:
- 网络管理基础部件:主要功能是提供基础网络连接管理能力和对应的JS/Native API,包括不同网络连接优先级管理、网络连接信息查询、网络连接状态变化、DNS解析、流量统计管理、联网策略管理以及物理网络管理等。
- 网络管理扩展部件:主要功能是提供网络管理扩展能力和对应的JS/Native API,包括以太网连接、热点网络共享等。
- 网络协议栈部件:主要功能是提供基础的网络协议栈和对应的JS API,包括HTTP、HTTPS、WebSocket、TCP/UDP/TLS Socket等基础网络协议栈能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/网络管理子系统.md
42. 语言运行时子系统
语言运行时子系统提供了JS、C/C++语言程序的编译、执行环境,提供支撑运行时的基础库,以及关联的API接口、编译器和配套工具。当前支持的编程语言包括JS、C/C++。子系统中的组件划分也是基于编程语言维度,每个组件支持单独编译,可以基于场景进行组合和分离。
如下图所示,子系统提供编译器及相关工具链支撑JS、C/C++语言的运行,并提供了语言相关基础库、API 接口、JS Engine能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/语言运行时子系统.md
43. 输入法框架子系统
负责建立编辑框所在应用与输入法应用之间的通信通道,确保两者可以共同协作提供文本输入功能,也为系统应用提供管理输入法应用的能力。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/输入法框架子系统.md
44. 驱动子系统
OpenHarmony驱动子系统采用C面向对象编程模型构建,通过平台解耦、内核解耦,兼容不同内核,提供了归一化的驱动平台底座,旨在为开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。为了缩减驱动开发者的驱动开发周期,降低三方设备驱动集成难度,OpenHarmony驱动子系统支持以下关键特性和能力。
-
弹性化的框架能力:在传统的驱动框架能力的基础上,OpenHarmony驱动子系统通过构建弹性化的框架能力,可支持在百K级别到百兆级容量的终端产品形态部署。
-
规范化的驱动接口:定义了常见驱动接口,为驱动开发者和使用者提供丰富、稳定接口,并和未来开放的面向手机、平板、智慧屏等设备驱动接口保持API兼容性。
-
组件化的驱动模型:支持组件化的驱动模型,为开发者提供更精细化的驱动管理,开发者可以对驱动进行组件化拆分,使得驱动开发者可以更多关注驱动与硬件交互部分。同时系统也预置了部分模板化的驱动模型组件,如网络设备模型等。
-
归一化的配置界面:提供统一的配置界面,构建跨平台的配置转换和生成工具,实现跨平台的无缝切换。
官方文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/驱动子系统.md