OpenHarmony开发实战:基于M4-R1开发板的应用工程详解

物联网方案 96 次阅读

前言

在万物互联的时代,设备之间的协同与智能交互已成为技术发展的必然趋势。作为面向这一未来的关键基石,OpenHarmony 应运而生。它是一个由开放原子开源基金会孵化及运营的开源项目,旨在为建设一个开放、共享的万物智联生态系统提供核心平台与能力。


一、核心理念:开放、共享,赋能千行百业

与某些封闭的商用系统不同,OpenHarmony从诞生之初就秉持着开放开源的精神。其核心目标是打造一个面向全场景、全连接时代的智能终端设备操作系统框架。通过将项目开源,它邀请全球开发者、设备厂商和行业伙伴共同参与建设,确保技术的中立性与生态的多样性。这为各行各业,特别是智能家居、出行、教育、医疗、金融等领域,提供了一个可自由定制、安全可靠的底层软件根基。

二、技术架构:为全场景设计,具备天生优势

OpenHarmony的技术架构是其强大能力的源泉。它采用分层设计,从下至上包括内核层、系统服务层、框架层和应用层。这套架构天生就是为了应对多样化硬件和设备间无缝协同而设计的。

硬件无关性

通过分布式软总线、分布式数据管理等关键技术,OpenHarmony实现了应用与硬件的解耦。开发者可以专注于业务逻辑,而系统能够自动发现和连接附近的设备,实现能力的自由流转。

一次开发,多端部署

开发者基于OpenHarmony编写一次业务逻辑代码,即可灵活部署在不同类型的终端设备上,极大地提升了开发效率,降低了生态构建的复杂性。

增强的安全性与可靠性

系统从内核到应用框架,都融入了多层次的安全机制,确保设备接入、数据传输和业务执行过程中的安全与隐私保护。

三、 从概念到实践:OpenHarmony在具体硬件上的落地

上述先进特性并非空中楼阁,它们最终需要通过具体的硬件载体来呈现和验证。无论是复杂的智能家居中控,还是精简的传感器模块,OpenHarmony都能通过其轻量级、可定制的特性,适配从KB到MB级别的内存设备。

为了让大家能更直观、深入地理解OpenHarmony的开发流程与特性,我们将在后续的实践教程中,以【ShiMetaPi】的M4-R1开发板作为硬件平台,进行手把手的实战演示。

wKgZPGll72SAa7XJAB-vkk1x4V8644.png

您将看到OpenHarmony系统如何从源码编译、如何烧录到M4-R1开发板,并如何驱动其上的各类外设,将理论知识转化为看得见、摸得着的运行效果。

四、 应用场景:超越手机,无处不在

OpenHarmony的应用范围远超传统智能手机的范畴。它的主战场是丰富的物联网设备生态。例如:

智能家居

家中的冰箱、空调、灯泡、插座等设备搭载OpenHarmony后,可以自动组网,实现统一控制与智能联动。

智能出行

车载信息娱乐系统、行车记录仪等可以与手机、手表等设备无缝连接,提供更便捷的出行体验。

工业互联与教育开发

在工业领域,各类控制器、传感器基于OpenHarmony可以构建起稳定、高效的分布式控制系统。同时,它也是极佳的教学和原型开发平台,正如我们即将使用的M4-R1开发板,便是学习和创新的理想起点。

五、详细步骤

1. 构建第一个ArkTs应用-HelloWorld

1.1 DevEco Studio 创建工程

  1. 1. 双击打开桌面的 DevEco Studio 快捷方式图标
  2. 2. 然后就会进入下图界面,创建一个工程,进入工程界面
  3. 3. 选择 Application 应用开发(本文以应用开发为例,Atomic Service 对应为原子化服务开发),选择模板 "Empty Ability",点击 Next 进行下一步配置
wKgZPGll75mAew9NAAJwFxn8930904.png

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

wKgZPGll76eANtyuAAH8cbD-uwU035.png

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

wKgZO2ll77uABnhGAAfJyGPyMwA273.png

1.2 DevEco Studio 配置 SDK

  1. 1. 在菜单栏选择 File -> Settings
wKgZPGll78KAYV6FAASAt266BWY024.png

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

wKgZPGll79aASQsMAASSnePZepc642.png

以我们已经下载过 API Version 12 所以用 API Version 11为例

注意:
如果和上述界面一样已经下载过 API 12 可以跳过配置SDK步骤

wKgZPGll7_SAOoQxAARcgUx-DNc209.png

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

wKgZO2ll8AiAJtaIAADXnIudjN8095.png

4. 等待 SDK 下载完成

wKgZPGll8BmAQKlcAAKLXRP3k4E921.png

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

wKgZPGll8CmAUl61AASmDJyBWMk659.png

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. 1. 将搭载 OpenHarmony 系统的真机 M4-R1 与电脑通过 USB 转 Type-C 线与 OTG 口连接(设备默认为调试模式) 查看工具界面会显示连接设备 M4-R1 的序列号,如下图所示:
  2. 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 即可。

wKgZO2ll8GiAQ76yAAFEeoorhiA808.png

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

wKgZO2ll8HKAeXTIAAF1PGD0IXk508.png

在菜单栏选择 File > Project Structure,在弹出窗口选择Signing Configs,进行签名

如图,因为 M4-R1 开发版是 OpenHarmony 系统,所以勾选 Automatically generate signature,不勾选Support HarmonyOS,进行自动签名。

wKgZPGll8ICAF8GQAAP4xNPYxD0117.png

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

wKgZPGll8ICAF8GQAAP4xNPYxD0117.png

等待同步完成。

wKgZO2ll8HKAeXTIAAF1PGD0IXk508.png

1.3.3 运行应用

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

wKgZO2ll8KqAYlXoAACDEDZLS8o569.png

M4-R1 真机效果如图:

wKgZPGll8LOAGIIEAAWbuUIRVBk001.png

总结

总而言之,OpenHarmony 并非一个孤立的操作系统产品,而是一个面向未来的、开放的生态系统基础。它通过其先进的技术架构和开源模式,为万物智联世界提供了坚实的"数字底座"。

评论区

登录后即可参与讨论

立即登录