从入门到弃坑:一个后端开发到鸿蒙开发的简单尝试

举报
宇宙之一粟 发表于 2022/01/19 23:27:24 2022/01/19
【摘要】 笔者说:因为本人也从未接触 Android 开发,所以本文也是从小白入门的角度学习 HarmonyOS 开发,文中大量的内容和观点其实都可以从官方文档查阅到。写这篇文章大概也是从中精简内容,记录学习 HarmonyOS 的过程。 鸿蒙,万物之始鸿蒙者,万物之始也。鸿蒙操作系统(HarmonyOS)最初在 2019 年的华为开发者大会上发布并且宣布开源,然后鸿蒙 2.0 在 2020 推出,又...

笔者说:因为本人也从未接触 Android 开发,所以本文也是从小白入门的角度学习 HarmonyOS 开发,文中大量的内容和观点其实都可以从官方文档查阅到。写这篇文章大概也是从中精简内容,记录学习 HarmonyOS 的过程。

鸿蒙,万物之始

鸿蒙者,万物之始也

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

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

  • “1”指的是主入口手机;
  • “8”指的是智慧屏、平板、PC、音响、手表、眼镜、车机和耳机8种设备;
  • “N”则指的是泛IoT硬件构成的华为HiLink生态,其中包括移动办公、智能家居、健康生活、影音娱乐、智能出行等各大场景下的智能硬件设备。

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

微信截图_20220119162159.png

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

  • 分布式为基础的多终端屏幕共享,跨屏设计
  • 系统与硬件解耦,弹性部署
  • 应用一次开发,多端部署

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

毕竟,生态和社区还是很重要的。为此,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 和应用程序,就不得不提到这个很多书会提到的图:

unixsystem.jpg

  • 内核是操作系统的核心部分,负责 Linux 操作系统的所有主要活动。该操作系统由不同的模块组成,直接与底层硬件进行交互。内核提供所需的抽象来隐藏到系统的应用程序或低级硬件详细信息;
  • 系统库是特殊函数,用于实现操作系统的功能,不需要内核模块的代码访问权限;
  • Shell 是用户和内核之间的接口,它提供内核的服务。它来自用户的命令并执行内核的函数。Shell 以不同类型的操作系统存在,它们分为两种类型:命令行 Shell 和图形 Shell;
  • 应用程序易于执行个人和专业级别的任务,包括我们看到的图形界面、开发工具等;

HarmonyOS 系统架构

请添加链接描述来看:

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

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

0000000000011111111.20211022162222.41920125051249997841042580055016.png

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

而本文主要关注于应用层的知识,利用 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. 安装完毕后打开后的界面如下:

打开 DevEco Studio.png

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

微信截图_20220119180432.png

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

微信截图_20220119180607.png

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

使用模拟器运行 HelloWorld

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

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

微信截图_20220119220658.png

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

微信截图_20220119183940.png

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

微信截图_20220119221135.png

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

微信截图_20220119185048.png

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

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

微信截图_20220119190817.png

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

总结

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

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

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。