当前位置: 首页 > news >正文

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

http://www.dtcms.com/a/536107.html

相关文章:

  • 【计算机视觉】Python 验证码图片分割:基于 OpenCV 的字符区域提取实现
  • 时序论文速递:覆盖时间序列预测、分类、异常检测及交叉应用!(10.20-10.24)
  • wordpress 建视频网站福步外贸论坛怎样注册
  • 没有网站可以做的广告联盟家居企业网站建设精英
  • navicat11不支持mysql8.0的加密方式
  • 程序综合实践第五次DP1
  • 架构论文《论系统超融合架构的设计与应用》
  • PCB行业数字化转型样本:兴森科技携手盘古信息MOM系统,实现生产效率跃升
  • ESP32-C3赋能物联网设备,开启产品智能化,乐鑫代理商飞睿科技
  • 奥比中光相机pythonAPI color.py运行报错 (-5:Bad argument) in function ‘cvtColor‘
  • 南和网站建设公司建筑设计网课
  • 网站建设与管理 自考网络营销的四大基础理论
  • 毫秒级自动对焦,超高景深液态镜头在机器视觉检测中的应用
  • 了解一下攻击树(从攻击者的视角审视自身系统)
  • 【MySQL体系】第7篇:MySQL锁机制深度解析与实战
  • 【代码随想录算法训练营——Day50(Day49周日休息)】图论——98.所有可达路径
  • 基于Django的医疗电子仪器系统
  • Django 用户认证流程详解:从原理到实现
  • 新版 vscode 去除快捷键 Ctrl+I 显示 Copilot 的 AI 对话框
  • 工业智能车载台应用在什么场景?有什么功能?
  • ES7243E ADC模拟音频转i2S到 BES I2S1 Master输出播放到SPK精准分析
  • Oracle 19c 归档日志挖掘(Log Mining)完全指南
  • MediSec首批参会名单 | 301医院、西门子、联影、GE、阿斯利康等20多家医疗机构安全人员齐聚!
  • 顺义手机网站建设锦州网站建设更好
  • 成都私人网站制作公司好看的网页设计代码
  • Vue3小兔鲜-(二)
  • 2025全面评测:企业培训课件制作软件哪个好一点呢
  • C++与边缘AI:在资源荒漠中部署智能的工程艺术
  • 高并发编程之MapMaker
  • PCIe协议之复位篇之 PERST# 信号(二)