5

一个后端开发到鸿蒙开发的简单尝试

 2 years ago
source link: https://xie.infoq.cn/article/99207db9d3c37d907d33a77af
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

笔者说:因为本人也从未接触 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 开发为例,

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

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

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

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

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

使用模拟器运行 HelloWorld

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

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

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

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

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

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

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

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

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

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

最后,打个预告,下一篇将从 Java 开发的角度去体验更多 HarmonyOS 开发的乐趣,希望你也能看到。让我们下一篇文章再见!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK