笔者说:因为本人也从未接触 Android 开发,所以本文也是从小白入门的角度学习 HarmonyOS 开发,文中大量的内容和观点其实都可以从官方文档查阅到。写这篇文章大概也是从中精简内容,记录学习 HarmonyOS 的过程。
鸿蒙,万物之始
鸿蒙者,万物之始也。
鸿蒙操作系统(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 开发基础,我认为是可以动手学习更多关于鸿蒙开发的知识的。毕竟,目前相关文章和书籍还是比较少的,多探索还是有一定必要的。
最后,打个预告,下一篇将从 Java 开发的角度去体验更多 HarmonyOS 开发的乐趣,希望你也能看到。让我们下一篇文章再见!