【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 页面、业务逻辑。

XML 复制代码
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就是刚才所运行的程序。

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

相关推荐
垆边人似月.7 分钟前
华为机试题 :两数之和
c++·算法·华为
垆边人似月.19 分钟前
华为机试题 :有效的括号
c++·算法·华为
高德开放平台3 小时前
高德开放平台×华为:一句话,开启腕上打车
华为
垆边人似月.4 小时前
华为机试题 :字符串压缩
算法·华为
OH_TPC6 小时前
【鸿蒙优选三方库】@ohos/aki:一行代码让 ArkTS 调 C++
harmonyos
垆边人似月.7 小时前
华为机试题 :最长递增子序列题目
数据结构·c++·算法·华为
wenyiyiyiyiyi7 小时前
我用鸿蒙 ArkTS 写了个自己天天用的备忘录:待办、课表和长期目标,全塞进一块桌面卡片
harmonyos
承渊政道9 小时前
鸿蒙设备远控电脑实测:ToDesk蓝牙键鼠、双模式鼠标、跨端剪贴板,远控电脑更顺手了
计算机外设·电脑·harmonyos·远程工作·todesk
CV工程师丁Sir12 小时前
ArkWeb 手记 04|DevTools 调试与缓存清理
java·spring·缓存·harmonyos
程序猿追1 天前
HarmonyOS 6 上做个极简浏览器:Web 组件 + 前进后退 + 加载进度
前端·华为·harmonyos