news 2026/10/14 9:21:08

【OpenHarmony北向开发】环境配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【OpenHarmony北向开发】环境配置

1.开源鸿蒙及鸿蒙北向的简介

在 OpenHarmony 与 HarmonyOS 的开发体系中,北向是统一概念:指代操作系统向上层应用开发者暴露的开发接口与应用框架,开发者基于北向能力编写 HAP 应用,对应的底层硬件驱动、设备树、HDF 驱动框架则称为南向。

开源鸿蒙北向,即 OpenHarmony 北向,基于开放原子开源基金会托管的 OpenHarmony 开源底座,以 ArkTS、ArkUI 声明式 UI、Stage 应用模型为核心,提供一套纯开源的应用开发 API 集合。开发者可通过北向能力实现页面搭建、业务逻辑开发,同时支持通过 NDK 桥接 HDF 框架,完成板载外设的调用,适合 RK3568、Hi3516 这类嵌入式开发板、工控设备、IoT 终端开发。OpenHarmony 北向仅包含底座原生能力,不含华为私有商业服务,SDK、系统能力由社区与芯片厂商共同维护,编译产物为 HAP 应用包,可通过 hdc 工具部署到 OpenHarmony 设备。

鸿蒙北向,即 HarmonyOS 北向,是华为商用鸿蒙(HarmonyOS NEXT)面向应用开发者提供的开发体系。它完整包含 OpenHarmony 北向全部基础 API,在此之上叠加了 HMS 华为移动服务、账号、推送、地图、端侧 AI、增强版超级终端等华为私有扩展能力,主要面向华为手机、平板、智慧屏等消费终端。

二者核心差异总结:

1、底座来源不同:OpenHarmony 北向来自开源项目;HarmonyOS 北向基于 OpenHarmony 底座,叠加华为闭源生态能力。

2、API 范围不同:仅使用 OpenHarmony 原生 API 编写的 HAP,可同时运行在 OpenHarmony 设备与 HarmonyOS NEXT 设备;一旦引入 HMS 私有接口,应用仅能在华为 HarmonyOS 设备运行,无法在原生 OpenHarmony 开发板上执行。

3、应用场景不同:OpenHarmony 北向多用于嵌入式硬件、IoT 设备开发,支持北向通过 NDK+HDF 操作 GPIO、UART 等外设;HarmonyOS 北向侧重消费端应用开发,硬件权限管控更加严格。

4、SDK 与生态:OpenHarmony 使用 OpenHarmony SDK;HarmonyOS 使用 HarmonyOS SDK,配套华为应用市场、统一签名体系。

简单来说,OpenHarmony 北向是基础通用的应用开发底座,HarmonyOS 北向是在这套底座之上,增加华为专属生态能力的商用版本。嵌入式鸿蒙开发(如 RK3568)学习时,应当选用 OpenHarmony 北向,避开 HMS 私有接口。

2.环境配置

鸿蒙开发使用的是DevEco Studio,本质是IDEA。这里跳转官网下载。

下载完成后进入安装,选择对应路径即可。

打开应用,选择对应语言。新建项目Empty Ability,点击下一步修改对应信息。

项目创建完成,初始源码加载完毕。

3.主代码结构

这里仅对entry入口下的代码进行分析。

在北向开发中主要编写的ets文件,全称 Extended TypeScript,也就是扩展版 TypeScript,专门用于编写 HAP 应用的 UI 页面、业务逻辑。

entry/ ├── .gitignore ├── build-profile.json5 # 模块级构建配置 ├── hvigorfile.ts # Hvigor 构建脚本(HarmonyOS 构建工具) ├── obfuscation-rules.txt # 代码混淆规则 ├── oh-package.json5 # 模块包配置(名称/版本/依赖) └── src/ ├── main/ │ ├── module.json5 # 模块清单(应用核心配置) │ ├── ets/ # ArkTS 源代码 │ │ ├── entryability/EntryAbility.ets # 应用入口 Ability │ │ ├── entrybackupability/EntryBackupAbility.ets # 备份扩展能力 │ │ └── pages/Index.ets # 主页面 │ └── resources/ # 资源文件 │ ├── base/ │ │ ├── element/ # 基础元素资源 │ │ │ ├── color.json # 颜色 │ │ │ ├── string.json # 字符串 │ │ │ └── float.json # 浮点尺寸 │ │ ├── media/ # 媒体资源 │ │ │ ├── background.png / foreground.png / startIcon.png │ │ │ └── layered_image.json # 分层图标配置 │ │ └── profile/ # 配置 profile │ │ ├── backup_config.json # 备份配置 │ │ └── main_pages.json # 页面路由列表 │ └── dark/element/color.json # 深色模式颜色覆盖 ├── mock/ │ └── mock-config.json5 # 模拟(mock)数据配置 ├── ohosTest/ # OHOS 设备端 UI 测试 │ ├── module.json5 │ └── ets/test/ │ ├── Ability.test.ets │ └── List.test.ets └── test/ # 本地单元测试 ├── LocalUnit.test.ets └── List.test.ets

4.运行代码

示例代码运行在虚拟机上,操作步骤如下图所示。

打开设备管理器。

选择手机phone,下载对应sdk到自定义目录,选择最新版本。

下载完成后打开。

如何将自己编写的代码运行进虚拟机?

系统已经自动选择了对应的虚拟器,点击旁边的启动键,所写的示例就会运行在虚拟机了。模拟器不支持热加载,修改代码后需要重新部署。这里的label就是刚才所运行的程序。

编写的程序也可以运行在真机上,需要对应版本及以上的手机。详情可在网上搜索。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 9:20:59

鲜花商城(HTML 版)

鲜花商城(HTML 版) 项目简介 鲜花商城是一个面向移动端的鲜花电商前端演示项目,采用纯 HTML CSS JavaScript 实现,无需构建工具即可直接运行。项目模拟了完整的购物流程:浏览商品、查看详情、下单确认、订单管理以及…

作者头像 李华
网站建设 2026/10/14 9:20:49

多文件捆绑工具:构建可执行交付单元的工程实践

简介:本资源是一款面向软件开发者与系统集成人员的多文件捆绑工具实践包,聚焦EXE程序打包、安装包制作及分发优化场景,解决多组件协同部署复杂、用户下载体验差、版权保护薄弱等实际问题。压缩包为RAR格式,大小534KB,内…

作者头像 李华
网站建设 2026/10/14 9:20:01

四路二选一总线开关 ASL74LV3257S:把“局部断电“做成系统能力

让一组总线在两套外设之间来回切换,看起来只值一颗廉价逻辑器件。但落到星载与高可靠设备上,问题马上变多:切的是"一根线"还是"一组线"?四个位能不能同时换道?上电、断电的过渡期里开关会不会误通…

作者头像 李华
网站建设 2026/10/14 9:19:57

Python内存模型:可变与不可变对象详解

1. Python内存模型基础认知 刚接触Python时,很多人会被"可变对象"和"不可变对象"的概念困扰。我在处理一个高并发日志处理系统时,就曾因为对这两种对象的理解不足,导致程序出现难以追踪的数据污染问题。那次经历让我深刻…

作者头像 李华
网站建设 2026/10/14 9:19:38

AI模型微调与内容安全实践指南

我不能基于该标题生成博文。 原因如下: 标题中涉及具体真实人物( Geoffrey Hinton 、 Terence Tao )及未经核实的事件表述(如“Hinton首发RSI论文”“陶哲轩转AI减速派”“ChatGPT伪造漫画家签名”),…

作者头像 李华
网站建设 2026/10/14 9:19:35

Python深度学习图像上色:U-Net+LAB实现黑白图智能着色

简介:本资源是一套基于Python实现黑白图像自动上色的深度学习实践项目,面向图像处理初学者、AI入门开发者及计算机视觉爱好者,解决老照片修复、艺术创作辅助等实际场景中的色彩重建需求。压缩包共9个文件,含6个核心Python脚本&…

作者头像 李华