您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
一个后端开发到鸿蒙开发的简单尝试
 
作者:宇宙之一粟
   次浏览      
 2022-4-26
 
编辑推荐:
本文也是从小白入门的角度学习 HarmonyOS 开发,记录学习 HarmonyOS 的过程。希望对您的学习有所帮助。
本文来自于InfoQ ,由火龙果软件Linda编辑、推荐。

鸿蒙,万物之始

鸿蒙者,万物之始也。

鸿蒙操作系统(HarmonyOS)最初在 2019 年的华为开发者大会上发布并且宣布开源,然后鸿蒙 2.0 在 2020 推出,又吸引了众多开发者的眼球。这是一款面向全场景分布式操作系统,开启万物智联新模式。这是一款跨平台开发的操作系统,兼容多种设备。按照官网的介绍:

HarmonyOS 主打的是 “1+8+N” 的全场景体验,如何解释呢?

“1”指的是主入口手机;

“8”指的是智慧屏、平板、PC、音响、手表、眼镜、车机和耳机 8 种设备;

“N”则指的是泛 IoT 硬件构成的华为 HiLink 生态,其中包括移动办公、智能家居、健康生活、影音娱乐、智能出行等各大场景下的智能硬件设备。

鸿蒙的英文名,之前为拼音 " HongMeng",后又 改为 Harmony ,有和谐,协调之义。更能体现鸿蒙 OS 的特点,比拼音更国际化了。

讲特点都是虚的,但也是需要讲的。鸿蒙的特点:

分布式为基础的多终端屏幕共享,跨屏设计

系统与硬件解耦,弹性部署

应用一次开发,多端部署

但我们开发者的角度更多关心的是:如何开发?用什么语言开发?

毕竟,生态和社区还是很重要的。为此,Harmony 官方也给了一套完整的解决方案。

HarmonyOS 概述

想要学习鸿蒙系统开发,就不得不先从操作系统本身开始学习,了解鸿蒙操作系统到底是什么。

官方的定位是:

HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS 提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。

HarmonyOS 提供了支持多种开发语言的 API,供开发者进行应用开发。支持的开发语言包括 Java、XML(Extensible Markup Language)、C/C++ 、 JS(JavaScript)、CSS(Cascading Style Sheets)和 HML(HarmonyOS Markup Language)。

对比 IOS 开发限于 SWIFT/Object-C,Android 开发使用 Kotlin/JAVA,鸿蒙就已经领先于市场上许多传统操作系统。

技术架构

层次结构的思想还是很重要的,类似其他操作系统的分层结构,。Harmony 脱胎于 Linux,HarmonyOS 也不例外采取了分层架构。

Linux 的系统结构

先让我们看一下 Linux 的系统结构,Linux 操作系统的架构主要有以下组件:内核、硬件层、系统库、Shell 和应用程序,就不得不提到这个很多书会提到的图:

内核是操作系统的核心部分,负责 Linux 操作系统的所有主要活动。该操作系统由不同的模块组成,直接与底层硬件进行交互。内核提供所需的抽象来隐藏到系统的应用程序或低级硬件详细信息;

系统库是特殊函数,用于实现操作系统的功能,不需要内核模块的代码访问权限;

Shell 是用户和内核之间的接口,它提供内核的服务。它来自用户的命令并执行内核的函数。Shell 以不同类型的操作系统存在,它们分为两种类型:命令行 Shell 和图形 Shell;

应用程序易于执行个人和专业级别的任务,包括我们看到的图形界面、开发工具等;

HarmonyOS 系统架构

从文档来看:

HarmonyOS 与 Linux 类似,整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。

系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS 技术架构如下所示。

感兴趣的朋友可以去读一下官方文档,仔细了解一下每层主要实现的功能。

而本文主要关注于应用层的知识,利用 HarmonyOS 进行应用开发,所以直接往下走。

HarmonyOS 应用开发

用户应用程序泛指运行在设备的操作系统之上,为用户提供特定服务的程序,简称“应用”。在 HarmonyOS 上运行的应用,有两种形态:

传统方式的需要安装的应用。

提供特定功能,免安装的应用(即原子化服务)。

需要安装的用户应用程序包以 APP Pack(Application Package)形式发布,它是由一个或多个 HAP(HarmonyOS Ability Package)以及描述每个 HAP 属性的 pack.info 组成。HAP 是 Ability 的部署包,HarmonyOS 应用代码围绕 Ability 组件展开。App 的逻辑视图如下:

开发准备

本文以 Java 开发为例,

下载 HUAWEI DevEco Studio,这个开发工具是基于 IntelliJ IDEA Community 开源版本打造,面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等 E2E 的 HarmonyOS 应用/服务开发。

安装完毕后打开后的界面如下:

点击 Create HarmonyOS Project,选择一个合适的 ability 模板,此处选择 Empty Ability(Java),如下图:

点击 next,然后配置我们的项目,比如取一个名字为 HelloWrold ,DevEco Studio 集成了 Phone、Tablet、TV、Wearable、LiteWearable 等设备的典型场景模板。此处设备我选择 Phone :

点击完成,然后等待 Gradle 编译完成,自动进行工程的同步。

使用模拟器运行 HelloWorld

DevEco Studio 提供远程模拟器和本地模拟器,本文以远程模拟器为例进行说明。

首先需要华为开发者授权,在 在 DevEco Studio 菜单栏,点击 Tools > Device Manager。

在 Remote Emulator 页签中点击 Login,然后会在默认浏览器中弹出华为开发者联盟帐号登录界面,请输入已实名认证的华为开发者联盟帐号的用户名和密码进行登录。登录完成后可以看到下图:

登陆成功后,点击界面的允许按钮进行授权。返回在设备列表中,选择 Phone -> P40,并点击 绿色的三角形 按钮,运行模拟器。

就可以连接上一个远程的 P40 界面:

点击 DevEco Studio 工具栏中的按钮运行工程,或使用默认快捷键 Shift+F10 运行该项目。

等候一会,我们就能不写一句代码就得到我们每个入门者梦寐以求的结果:“你好,世界”,如下:

恭喜我们,我们已经完成了一大壮举,没有写一句代码就实现了面向 HelloWorld 编程。

总结

如果你能看到此处,说明你也是一个跟我一样入门移动端开发的小白,说实话,这篇文章目前没有什么技术含量,但不能阻碍我去学习 HarmonyOS,写下这篇文章。

万丈高楼平地起,只有先从自己快速能动手实践,才有动力继续学下去。如果你也跟我一样是 Java 使用者,还没有 Android 开发基础,我认为是可以动手学习更多关于鸿蒙开发的知识的。毕竟,目前相关文章和书籍还是比较少的,多探索还是有一定必要的。

 

   
次浏览       
相关文章

一文了解汽车嵌入式AUTOSAR架构
嵌入式Linux系统移植的四大步骤
嵌入式中设计模式的艺术
嵌入式软件架构设计 模块化 & 分层设计
相关文档

企点嵌入式PHP的探索实践
ARM与STM简介
ARM架构详解
华为鸿蒙深度研究
相关课程

嵌入式C高质量编程
嵌入式操作系统组件及BSP裁剪与测试
基于VxWorks的嵌入式开发、调试与测试
嵌入式单元测试最佳实践

最新活动计划
C++高级编程 12-25 [线上]
白盒测试技术与工具实践 12-24[线上]
LLM大模型应用与项目构建 12-26[特惠]
需求分析最佳实践与沙盘演练 1-6[线上]
SysML建模专家 1-16[北京]
UAF架构体系与实践 1-22[北京]
 
 
最新文章
基于FPGA的异构计算在多媒体中的应用
深入Linux内核架构——简介与概述
Linux内核系统架构介绍
浅析嵌入式C优化技巧
进程间通信(IPC)介绍
最新课程
嵌入式Linux驱动开发
代码整洁之道-态度、技艺与习惯
嵌入式软件测试
嵌入式C高质量编程
嵌入式软件可靠性设计
成功案例
某军工所 嵌入式软件架构
中航工业某研究所 嵌入式软件开发指南
某轨道交通 嵌入式软件高级设计实践
深圳 嵌入式软件架构设计—高级实践
某企业 基于IPD的嵌入式软件开发
更多...