基于M4-R1开发板的OpenHarmony开发实战丨创建第一个应用工程
前言
在万物互联的时代,设备之间的协同与智能交互已成为技术发展的必然趋势。作为面向这一未来的关键基石,OpenHarmony 应运而生。它是一个由开放原子开源基金会孵化及运营的开源项目,旨在为建设一个开放、共享的万物智联生态系统提供核心平台与能力。
一、 核心理念:开放、共享,赋能千行百业
与某些封闭的商用系统不同,OpenHarmony从诞生之初就秉持着开放开源的精神。其核心目标是打造一个面向全场景、全连接时代的智能终端设备操作系统框架。通过将项目开源,它邀请全球开发者、设备厂商和行业伙伴共同参与建设,确保技术的中立性与生态的多样性。这为各行各业,特别是智能家居、出行、教育、医疗、金融等领域,提供了一个可自由定制、安全可靠的底层软件根基。
二、 技术架构:为全场景设计,具备天生优势
OpenHarmony的技术架构是其强大能力的源泉。它采用分层设计,从下至上包括内核层、系统服务层、框架层和应用层。这套架构天生就是为了应对多样化硬件和设备间无缝协同而设计的。
硬件无关性:通过分布式软总线、分布式数据管理等关键技术,OpenHarmony实现了应用与硬件的解耦。开发者可以专注于业务逻辑,而系统能够自动发现和连接附近的设备,实现能力的自由流转。
一次开发,多端部署:开发者基于OpenHarmony编写一次业务逻辑代码,即可灵活部署在不同类型的终端设备上,极大地提升了开发效率,降低了生态构建的复杂性。
增强的安全性与可靠性:系统从内核到应用框架,都融入了多层次的安全机制,确保设备接入、数据传输和业务执行过程中的安全与隐私保护。
三、 从概念到实践:OpenHarmony在具体硬件上的落地
上述先进特性并非空中楼阁,它们最终需要通过具体的硬件载体来呈现和验证。无论是复杂的智能家居中控,还是精简的传感器模块,OpenHarmony都能通过其轻量级、可定制的特性,适配从KB到MB级别的内存设备。
为了让大家能更直观、深入地理解OpenHarmony的开发流程与特性,我们将在后续的实践教程中,以ShiMetaPi 的M4-R1开发板作为硬件平台,进行手把手的实战演示。 您将看到OpenHarmony系统如何从源码编译、如何烧录到M4-R1开发板,并如何驱动其上的各类外设,将理论知识转化为看得见、摸得着的运行效果。
四、 应用场景:超越手机,无处不在
OpenHarmony的应用范围远超传统智能手机的范畴。它的主战场是丰富的物联网设备生态。例如:
智能家居:家中的冰箱、空调、灯泡、插座等设备搭载OpenHarmony后,可以自动组网,实现统一控制与智能联动。
智能出行:车载信息娱乐系统、行车记录仪等可以与手机、手表等设备无缝连接,提供更便捷的出行体验。
工业互联与教育开发:在工业领域,各类控制器、传感器基于OpenHarmony可以构建起稳定、高效的分布式控制系统。同时,它也是极佳的教学和原型开发平台,正如我们即将使用的M4-R1开发板,便是学习和创新的理想起点。
五、详细步骤
1 、构建第一个ArkTs应用-HelloWorld
1.1 DevEco Studio 创建工程
1)双击打开桌面的 DevEco Studio 快捷方式图标
2)然后就会进入下图界面,创建一个工程,进入工程界面
3)选择 Application 应用开发(本文以应用开发为例,Atomic Service 对应为原子化服务开发),选择模板 "Empty Ability",点击 Next 进行下一步配置

4)进入配置工程界面,修改一下工程存放路径,工程名字,和兼容 SDK 版本,其他参数保持默认设置即可,点击 Finish 创建工程 注意:M4-R1 开发板的板端 API 版本为 API 12,故 Compatible SDK 选择 5.0.0(12)

5)工程初始化界面如下,等到下方Build状态栏中输出红框内语句,即表示初始化结束:

1.2 DevEco Studio 配置 SDK
1)在菜单栏选择 File -> Settings

2)进入 Settings 窗口,选择 OpenHarmony SDK,选择 SDK 安装位置,然后勾选 API Version 12,下载关于 API Version 12 的所有相关内容,再点击【Apply】进行下载。

因为我们已经下载过 API Version 12 所以用 API Version 11为例
注意:
如果和上述界面一样已经下载过 API 12 可以跳过配置SDK步骤

3)点击【Apply】后会跳出 Confirm Change 弹窗,点击【OK】

4)等待 SDK 下载完成

5)当【Finish】变亮时,证明下载完成,点击【Finish】

1.3 将程序烧录到板卡中
1.3.1 默认程序功能介绍
工程同步完成后,在 "Project" 窗口,点击 "entry > src > main > ets > pages" ,打开 "Index.ets" 文件,可以看到应用工程的默认程序页面由 Text 组件组成。 该应用实现的功能为:点击 Hello World 文本组件就会切换为 Welcome。 "Index.ets" 文件的示例如下:
@Entry@Componentstruct Index { @State message: string = 'Hello World'; build() { RelativeContainer() { Text(this.message) .id('HelloWorld') .fontSize($r('app.float.page_text_font_size')) .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign.Center } }) .onClick(() => { this.message = 'Welcome'; }) } .height('100%') .width('100%') }}
1.3.2 签名文件配置
1)将搭载 OpenHarmony 系统的真机 M4-R1 与电脑通过 USB 转 Type-C 线与 OTG 口连接(设备默认为调试模式) 查看工具界面会显示连接设备 M4-R1 的序列号,如下图所示:
2)打开工程级 build-profile.json5,修改里面的 products 为以下代码:
"products": [ { "name": "default", "signingConfig": "default", "compileSdkVersion": 12, "compatibleSdkVersion": 12, "targetSdkVersion": 12, "runtimeOS": "OpenHarmony", "buildOption": { "strictMode": { "caseSensitiveCheck": true, "useNormalizedOHMUrl": true } } }]
修改后出现下方的蓝色提示栏,点击提示栏中的 "Sync Now",同步工程。
同步如果遇到下图 Sync Check 弹窗提示,点击 Yes 即可。

Sync Now 完成时下方Build状态栏显示下图信息。

在菜单栏选择 File > Project Structure,在弹出窗口选择Signing Configs,进行签名
如图,因为 M4-R1 开发版是 OpenHarmony 系统,所以勾选 Automatically generate signature,不勾选Support HarmonyOS,进行自动签名。

如下图出现签名信息后,点击 OK,签名内容signingConfigs会被写入工程级build-profile.json5中。

等待同步完成。

1.3.3 运行应用
返回 DevEco Studio 项目工程界面,点击工具栏的 Run 'entry',运行应用到开发板中。

M4-R1 真机效果如图:

总结
总而言之,OpenHarmony 并非一个孤立的操作系统产品,而是一个面向未来的、开放的生态系统基础。它通过其先进的技术架构和开源模式,为万物智联世界提供了坚实的“数字底座”。
完整教程:https://forum.shimetapi.cn/wiki/zh/shimeta-pi/M4-R1/application-development/First-APP/ch01-first-arkts-app.html#_1-3-3-%E8%BF%90%E8%A1%8C%E5%BA%94%E7%94%A8
M4-R1开发板:https://item.taobao.com/item.htm?id=968190685726&skuId=6114038999470&spm=a1z10.1-c-s.w4004-25910609206.12.3a934a18YS57cZ
