鸿蒙系列(02)- OpenHarmony代码结构
本文系统介绍了OpenHarmony源码目录结构,帮助开发者建立全局认知。源码主要包含应用层、框架层、内核驱动层和硬件层四个层级,以及工具和测试用例等支撑内容。重点分析了applications应用目录、arkcompiler方舟编译器、base基础服务和foundation子系统框架等核心模块的功能与作用,包括系统应用、编译工具链、底层服务、分布式架构支持等关键组件。文章为开发者提供了源码学习的
目录
本文梳理OpenHarmony源码目录结构,介绍重要目录包含的内容与作用 。OpenHarmony源码很多,模块也很多,先有个全局认识,再根据具体部分针对性学习。
1. 目录结构
下面是结合源码目录对应的系统架构,整体包括:
- 应用application层
- 框架framework层
- 内核驱动kernel/driver层
- 硬件层
- 还包括一些支撑的工具,编译脚本以及测试用例等
如果做应用开发,更多关注应用层,无需深入底层framework。 Framework核心包括base、foundation等基础服务以及各核心子系统,如:显示子系统、通信子系统、多媒体子系统等。

图1 基于目录的系统架构
下面针对源码目录来逐个分析主要目录:

图2 源码目录
下面是主要目录的解释,对于学习framework的,可以一起看看base以及foundation目录

图3 一级代码目录解释
2. 关键目录分析
2.1 应用applications
applications主要存放用户的应用程序,以及OpenHarmony 预置的系统应用程序。
Applications 包括:
- sample //示例应用,提供各种功能特性的演示和参考代码
- standard //标准的应用程序,包括UI界面、后台服务、数据存储等
Standard包括:
standard核心系统应用的集合,涵盖了从用户交互(Launcher、Settings)到安全隐私(Permission Manager、Security Center)、再到多媒体(Camera、Photos)、通信(Call、MMS)等多个方面。
- admin_provisioning
管理员配置管理;用于设备初始化、企业级设备管理(如 MDM)、批量部署配置等。支持设备出厂设置、远程配置、策略下发等。
- app_samples
应用示例模块。提供一些开发示例或模板应用,供开发者学习使用 OpenHarmony 的 API 和框架。通常不包含系统核心功能。
- applications_cangjie_wrapper
仓颉输入法封装层。为仓颉输入法(OpenHarmony 官方输入法)提供对外接口封装,可能用于适配不同设备或 UI 框架。
- auth_widget
身份验证小部件。实现生物识别(如指纹、人脸)或密码认证的 UI 组件,供其他应用调用进行身份验证。
- calendardata
日历数据服务。负责日历事件的存储、同步与管理,可能是日历应用的数据后端模块。
- call
电话拨号与通话功能。实现拨打电话、接听、通话记录等功能,属于系统级电话应用。
- camera
相机应用。提供拍照、录像等基础相机功能,集成摄像头硬件驱动与图像处理逻辑。
- contacts
联系人管理应用。展示和编辑用户联系人信息,支持导入导出、搜索等操作。
- contacts_data
联系人数据存储与管理。负责联系人数据的持久化存储(如数据库)、同步(如云同步)及权限控制。
- dlp_manager
数据防泄露管理(Data Loss Prevention)。防止敏感数据被非法复制、传输或外泄,常用于企业设备管理场景。
- filepicker
文件选择器。提供一个通用的 UI 组件,允许用户从设备中选择文件,供其他应用调用。
- hap
HAP(HarmonyOS Ability Package)相关工具或服务。可能涉及 HAP 包解析、安装、更新、签名验证等,属于系统包管理的一部分。
- launcher
桌面启动器。系统的主界面,负责显示应用图标、桌面小组件、快捷方式等,是用户与系统交互的主要入口。
- mms
彩信(Multimedia Messaging Service)。支持发送和接收包含图片、音频、视频等多媒体内容的短信。
- notes
笔记应用。提供文本笔记记录功能,支持创建、编辑、分类、搜索笔记。
- permission_manager
权限管理系统。负责应用权限申请、授权、状态查询等,确保隐私和安全。
- photos
相册应用。展示设备中的照片和视频,支持浏览、编辑、分享、删除等操作。
- printspooler
打印队列管理。管理打印任务的排队、发送、状态监控,支持无线打印等功能。
- screenlock
屏幕锁定机制。实现锁屏界面(如密码锁、图案锁),保护设备安全。
- screenshot
截屏服务。提供截屏功能,支持全屏、区域截图,并保存到相册。
- security_privacy_center
安全与隐私中心。集中管理设备的安全设置和隐私选项,如应用权限、数据加密、隐私保护策略等。
- settings
系统设置主应用。提供系统级设置菜单,包括网络、声音、显示、电池、存储等配置项。
- settings_data
设置数据存储。负责系统设置项的持久化存储,如用户偏好、配置参数等。
- systemui
系统用户界面组件。包含状态栏、通知栏、导航栏等系统级 UI 元素,是系统视觉呈现的重要部分。
- theme
主题管理。支持系统主题切换,包括壁纸、图标样式、颜色方案等个性化设置。
- user_certificate_manager
用户证书管理。管理用户的数字证书(如 SSL 证书、身份证书),用于安全通信、身份认证等场景。
2.2 方舟编译器arkcompiler
它是方舟编译器核心模块,负责将高级语言(如 JavaScript、ETS 等)编译为高效可执行的中间表示(IR)或机器码,提升应用性能和运行效率
- arkcompiler
编译器的核心逻辑和构建系统。作为整体编译器框架的组织结构,协调各子模块工作。实际开发中可能不会直接修改此目录内容,而是通过其下子模块实现具体功能。
- cangjie_ark_interop
仓颉(Cangjie)与 Ark 编译器的互操作层。“仓颉”是 OpenHarmony 官方推出的编程语言(类 C++/Java 风格)此模块提供仓颉语言与 Ark 编译器之间的接口桥接,使仓颉代码可以被 Ark 编译器处理、优化并生成目标代码。实现了从仓颉语法树到 Ark IR 的转换支持。
- ets_frontend
ETS(eTS, Enhanced TypeScript)前端解析器。ETS 是 OpenHarmony 推荐的 UI 开发语言,基于 TypeScript 扩展而来。该模块负责解析 ETS 源码,进行词法分析、语法分析,生成抽象语法树(AST),是 ETS 编程语言进入编译流程的第一步。
- ets_runtime
ETS 运行时支持库。提供 ETS 应用在设备上运行所需的运行环境。包括内存管理、对象模型、异常处理、垃圾回收机制等。支持 ETS 中的异步编程、组件生命周期管理等功能。与 JSVM 和 runtime_core 协同工作。
- jsvm
JavaScript 虚拟机(JS VM)。实现对 JavaScript 和 ETS 的解释执行能力。基于自研的虚拟机架构,支持动态类型、函数调用、闭包等特性。可能集成了 JIT(即时编译)或 AOT(预编译)技术以提升性能。支持 HarmonyOS Ability 的 JS/ETS 代码执行。
- runtime_core
运行时核心模块。是整个 Ark Compiler 的运行时基础,提供通用的运行时服务。
包括:内存分配与管理、类加载机制、方法调度(Method Invocation)、异常处理框架、线程模型
- toolchain
工具链模块。包含编译器使用的各种工具程序,例如:编译器驱动、汇编器、链接器、二进制格式生成器(如 .hap 文件打包工具)、优化工具(如 profile-guided optimization)。提供命令行接口,供开发者调用编译流程,支持跨平台编译(ARM、x86、RISC-V 等)。
2.3 基础库base
基础服务层(Base Services) 的核心组成部分,它提供了操作系统运行所依赖的底层能力、通用框架和系统级服务。这些模块通常不直接面向用户,而是为上层应用和服务提供支撑;

图4 base目录各功能目录
- accesscontrol
访问控制管理。实现权限检查与策略执行机制。控制应用对敏感资源(如相机、位置、联系人)的访问权限。
- account
账户管理系统。管理本地和远程用户账户(如华为账号、第三方账号)。支持多用户切换、账户同步、身份认证等功能。提供统一的身份标识接口。
- customization
系统定制化支持。允许厂商或运营商对系统进行个性化配置(如品牌Logo、启动画面、默认应用等)。提供接口用于动态加载定制内容。
- global
全局系统服务与配置。包含系统级别的公共组件、常量定义、全局状态管理。
- hiviewdfx
HiView DFX(Diagnosis, Fault Finding, and Experience)。提供系统诊断、日志收集、性能监控和异常分析工具。支持崩溃报告、卡顿检测、内存泄漏分析等。是 OpenHarmony 的“健康监测”系统。
- inputmethod
输入法框架。提供软键盘输入的支持,包括中文输入、语音输入、手写识别等。支持多种输入方式的插件化接入。
- iothardware
物联网硬件抽象层。面向 IoT 设备的硬件驱动封装(如传感器、执行器、通信模块)。提供统一接口供上层应用调用,实现“一次开发,多端部署”。
- location
位置服务。提供 GPS、Wi-Fi 定位、基站定位等能力。支持高精度定位、地理围栏、位置更新订阅。
- msdp
Multi-Device Service Protocol(多设备服务协议)。实现设备间的数据传输与服务协同。支持跨设备文件同步、任务迁移、设备发现等。
- notification
通知中心服务。管理来自应用的通知消息(如来电、短信、应用提醒)。提供通知显示、声音、震动、优先级设置等功能。
- powermgr
电源管理。控制设备的功耗行为,如屏幕亮度调节、休眠唤醒、CPU 节能模式。
打印服务。提供文档打印、PDF 输出、无线打印(如蓝牙/网络打印机)支持。
- request
请求管理服务。处理系统内部的异步请求调度,如定时任务、事件回调、服务调用。
- security
安全框架。提供加密算法、数字证书、密钥管理、安全存储等基础安全能力;是 user_certificate_manager 和 tee 的底层支撑。
- sensors
传感器服务。管理各类传感器(加速度计、陀螺仪、光线、接近、气压等)。提供传感器数据采集、滤波、事件分发。
- startup
系统启动流程。负责系统开机后的初始化顺序,如加载关键服务、启动守护进程。包括引导程序、系统服务注册、依赖关系解析。
- tee
可信执行环境(Trusted Execution Environment)。提供一个隔离的安全区域,用于执行敏感操作(如生物识别、支付验证)。
- telephony
电话通信服务。实现蜂窝网络相关的功能:拨号、通话、短信、SIM 卡管理、信号强度查询等。
- theme
主题服务。管理系统主题(颜色、字体、图标风格)的切换与应用。与 systemui 和 settings 协作。
- time
时间服务。管理系统时间和时区设置。提供时间戳生成、闹钟、定时器等接口。
- update
系统更新服务。支持 OTA(Over-The-Air)升级、差分包安装、回滚机制。提供版本校验、下载进度、安装调度等功能。
- usb
USB 服务。管理 USB 设备连接、枚举、通信协议(如 MTP、ADB、充电模式)。
- useriam
用户身份与访问管理(User Identity and Access Management)。管理用户身份信息、登录凭证、会话状态。与 account 和 security 协同。
- web
Web 浏览器相关服务。提供 WebKit 或自研浏览器内核的集成支持。支持网页渲染、JavaScript 执行、网络请求等。
2.4 foundation子系统框架
系统基础框架层(Foundation Framework) 的核心部分,它提供了操作系统运行所需的通用能力、分布式架构支持和核心服务。它是“能力底座”,支撑上层应用和服务的开发与运行。

图5 foundation下各功能目录
- ability
Ability(能力)框架。实现 OpenHarmony 的核心应用模型——Ability(包括 FA 和 PA)。管理 Ability 的生命周期、启动、调度、数据传递。支持跨设备调用 Ability(分布式能力)。
- ai
人工智能(AI)框架。提供 AI 推理引擎、模型加载、神经网络计算支持。支持轻量级 AI 模型(如 TensorFlow Lite、ONNX)在边缘设备上的部署。
- arkui
ArkUI 框架(声明式 UI 框架)。是 OpenHarmony 官方推荐的 UI 开发框架,基于 ETS/JS。提供组件化 UI 构建能力(如 Button、List、Text)。
- barrierfree
无障碍访问(Accessibility)。为视障、听障等用户提供辅助功能支持。包括屏幕朗读、手势导航、高对比度模式等。提供 API 供开发者实现无障碍兼容。
- bundlemanager
应用包管理器。负责 HAP(HarmonyOS Ability Package)的安装、卸载、更新、签名验证。管理应用元数据(如权限、依赖)、版本控制。
- CastEngine
投屏引擎。实现设备间的无线投屏(如手机投电视、平板投显示器)。支持 Miracast、DLNA、AirPlay 等协议。提供音视频流传输、画面同步、延迟优化。
- communication
通信框架。提供进程间通信(IPC)、消息传递、事件总线等机制。支持本地与远程服务之间的数据交换,是 Ability 之间通信的核心通道。
- deviceprofile
设备配置档案。存储设备的硬件信息、软件版本、功能特性(如是否支持 NFC、蓝牙)。用于判断设备能力,实现“按需加载”或“兼容性适配”。
- distributeddatamgr
分布式数据管理。实现跨设备的数据同步与共享(如联系人、日历、文件)。提供统一的数据访问接口,屏蔽底层存储差异。
- distributedhardware
分布式硬件管理。实现设备间硬件资源共享(如手机摄像头给平板用、耳机共享)。管理硬件连接、权限分配、状态同步。
- filemanagement
文件管理系统。提供文件的创建、读写、删除、复制、移动等操作。提供安全访问控制(如权限检查)。
- graphic
图形系统。提供 2D/3D 渲染引擎、Surface 管理、GPU 加速支持。支持 OpenGL ES、Vulkan、Skia 等图形 API。是 UI 绘制、动画、视频播放的基础。
- multimedia
多媒体框架。支持音频、视频编解码、播放、录制、编辑。提供媒体源管理、音效处理、混音、DRM(数字版权管理)。
- multimodalinput
多模态输入。集成多种用户输入方式:语音、手势、触控、视觉、体感等。
- resourceschedule
资源调度管理。管理 CPU、内存、网络、I/O 等系统资源的分配与调度。实现优先级策略、负载均衡、节能优化。
- systemabilitymgr
系统 Ability 管理器。管理系统级 Ability(如设置、通知中心、权限管理),负责系统服务的注册、启动、生命周期控制,是系统服务的“总调度中心”。
- window
窗口管理。管理应用窗口的创建、显示、隐藏、层级关系、动画效果。支持悬浮窗、全屏、分屏、自由拖拽等。提供窗口属性控制(透明度、大小、位置)。
更多推荐




所有评论(0)