基于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

相关推荐
m0_555762907 小时前
STM32 的“内存划分”
stm32·单片机·嵌入式硬件
RT-Thread物联网操作系统7 小时前
RT-Thread Studio 正式支持GD32H7高性能系列MCU | 技术集结
驱动开发·单片机·嵌入式硬件
蓬荜生灰8 小时前
第6章—手动移植创建STM32工程
stm32·单片机·嵌入式硬件
GalaxySpaceX9 小时前
STM32-SPI协议
stm32·单片机·嵌入式硬件·1024程序员节
单片机专业性9 小时前
硬件电路LRC串联谐振分析
单片机·嵌入式硬件·电路设计
hazy1k9 小时前
51单片机基础-I²C通信与EEPROM读写
c语言·stm32·单片机·嵌入式硬件·51单片机·1024程序员节
小莞尔10 小时前
【51单片机】【protues仿真】基于51单片机热敏电阻数字温度计数码管系统
c语言·stm32·单片机·嵌入式硬件·物联网·51单片机
Hero_112711 小时前
STM32标准外设软件库
stm32·单片机·嵌入式硬件
许商11 小时前
【stm32】【Freertos】config详解(2)
stm32·单片机·嵌入式硬件