《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS产生的背景

简介: HarmonyOS是华为自主研发的分布式操作系统,旨在应对美国“实体清单”带来的技术封锁。2019年首次亮相,它不仅支持手机、平板等多终端设备,还通过统一的软件系统解决了不同设备间的体验割裂问题。HarmonyOS强调全场景智能互联,提升设备间的安全性和协同能力。其商用版本基于OpenHarmony开源项目开发,而HarmonyOS NEXT则是去除了AOSP代码的纯自研版本,代表了未来发展方向。

1.1 HarmonyOS产生的背景

2024年4月17日,第21届华为分析师大会在深圳开幕。华为副董事长、轮值董事长徐直军在大会上透露,华为希望通过2024年一年的时间,先在中国市场把智能手机上使用超过99%时间的5000个应用全面迁移到鸿蒙原生操作系统上,真正实现操作系统和应用生态的统一,“当把这5000个应用以及其它成千上万的应用都从安卓生态迁移到鸿蒙操作系统上时,我们的鸿蒙操作系统就真正完成了打造,并真正成为除了苹果iOS和谷歌安卓外的全球第三个移动操作系统。”

那么到底什么是HarmonyOS?为什么需要HarmonyOS?

1.1.1 为什么需要HarmonyOS

2019年5月15日,美国商务部宣布,把华为及70家关联企业列入其所谓的“实体清单”(Entities List)。这意味着,今后如果没有美国政府的批准,华为将无法向美国企业购买元器件和购买技术。“实体清单”是美国为维护其国家安全利益而设立的出口管制条例。在未得到许可证前,美国各出口商不得帮助这些名单上的企业获取受本条例管辖的任何物项。简单地说,“实体清单”就是一份“黑名单”,一旦进入此榜单实际上是剥夺了相关企业在美国的贸易机会。

随着中国国力的崛起,美国的“实体清单”不断扩容,体现了美国对中国高科技企业的限制升级,科技再次成为中美博弈的核心领域。

作为中国科技领域的头部企业,华为首当其冲。华为虽然早就建立了自己的芯片企业——海思。但海思生产的芯片还不能完全覆盖自己的产品线,华为依然需要直接采购美国芯片厂商的产品。受到“实体清单”的影响,美国全面封锁华为在全球的芯片采购,直接导致了华为忍痛出售旗下手机品牌——荣耀。

不光是芯片等硬件产品,在“实体清单”的限制下,软件等技术同样受到限制。谷歌已暂停与华为的部分合作,包括软件和技术服务的转让。华为在国外市场面临着升级Android版本、搭载谷歌服务等方面遇到困境。华为智能手机业务在海外市场占有率明显下降。

早在1999年,中国科技部原部长徐冠华曾说,“中国信息产业缺芯少魂。”其中的芯指的是芯片,而魂则是指操作系统。当时,中国曾大力扶持国产芯片和操作系统,也曾诞生过一些亮眼的产品,比如红旗Linux、龙芯等。然而,20多年过去了,中国依然是缺芯少魂,这次美国对华为的封杀,第一个禁的是芯片,第二个禁的就是操作系统。

为了避免被人“卡脖子”,华为展开了自救和反击。2019年5月17日凌晨2点,华为海思总裁何庭波发表致员工的一封信,信中称,“公司多年前做出了极限生存的假设,预计有一天,所有美国的先进芯片和技术将不可获得”,而华为“为了这个以为永远不会发生的假设,数千海思儿女,走上了科技史上最为悲壮的长征,为公司的生存打造 ‘备胎’”。信中称,“今天,命运的年轮转到这个极限而黑暗的时刻,超级大国毫不留情地中断全球合作的技术与产业体系,做出了最疯狂的决定,在毫无依据的条件下,把华为公司放入了实体名单。”信中还称:“今后的路,不会再有另一个10年来打造备胎然后再换胎了,缓冲区已经消失,每一个新产品一出生,将必须同步 ‘科技自立’ 的方案。”

因此,在这个背景下,除了加大海思的研发投入之外,华为推出了自己的操作系统——HarmonyOS。正如其中文“鸿蒙”的寓意,意味着这个HarmonyOS将会开启一个开天辟地的时代。HarmonyOS在2019年8月9日华为开发者大会上首次公开亮相。

1.1.2 HarmonyOS概述

HarmonyOS在2019年8月9日华为开发者大会上首次公开亮相,华为余承东进行主题演讲。在演讲中,余承东正式公开了HarmonyOS。

HarmonyOS也称为鸿蒙、鸿蒙系统,或者鸿蒙OS,是一个全新的面向全场景的分布式操作系统。HarmonyOS以人为中心,将人、设备、场景有机地联系在一起,尤其是面向IoT(Internet of Things,物联网)领域,将多种智能设备的体验进行系统级融合,使得人、设备、场景不再是孤立的存在,为用户适应不同场景带来最佳体验。

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

对消费者而言,HarmonyOS用一个统一的软件系统,从根本上解决了消费者使用大量终端体验割裂的问题。HarmonyOS能够将生活场景中的各类终端进行能力整合,可以实现不同的终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备,为消费者提供统一、便利、安全、智慧化的全场景体验。

对应用开发者而言,HarmonyOS采用了多种分布式技术,整合各种终端硬件能力,形成一个虚拟的“超级终端”。开发者可以基于“超级终端”进行应用开发,使得应用程序的开发实现与不同终端设备的形态差异无关。这能够让开发者聚焦上层业务逻辑,而无须关注硬件差异,更加便捷、高效地开发应用。

对设备开发者而言,HarmonyOS采用了组件化的设计方案,可以按需调用“超级终端”能力,带来“超级终端”的创新体验。HarmonyOS根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。

举例来说,当用户走进厨房,用HarmonyOS手机一接触微波炉,就能实现设备极速联网;用HarmonyOS手机接触一下豆浆机,立刻就能实现无屏变有屏。

HarmonyOS能够把手机的内核级安全能力扩展到其他终端,进而提升全场景设备的安全性,通过设备能力互助,共同抵御攻击,保障智能家居网络安全;HarmonyOS通过定义数据和设备的安全级别,对数据和设备都进行了分类分级保护,确保数据流通安全可信。

1.1.3 OpenHarmony、HarmonyOS、HarmonyOS NEXT与鸿蒙的联系与区别

1、OpenHarmony

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。开放原子开源基金会由华为、阿里、腾讯、百度、浪潮、招商银行、360等十家互联网企业共同发起组建。

OpenHarmony暂时还没有中文名字,业界一般俗称为“开源鸿蒙”。

OpenHarmony开源项目主要包括两部分:一是华为捐献的“鸿蒙操作系统”的基础能力;二是其他参与者的贡献。因此,OpenHarmony是“鸿蒙操作系统”的核心底座。

2、HarmonyOS

HarmonyOS就是“鸿蒙操作系统”,或者简称为“鸿蒙OS”,是基于OpenHarmony、AOSP等开源项目的商用版本。

这里需要注意:

  • 一是HarmonyOS不是开源项目,而是商用版本。
  • 二是HarmonyOS手机和平板之所以能运行Android应用,是因为HarmonyOS实现了现有Android生态应用(即AOSP)的运行。

3、HarmonyOS NEXT

2023年8月4日,在华为开发者大会上,华为发布HarmonyOS Next开发者预览版本。据介绍,HarmonyOS NEXT系统底座全线自研,去掉了传统的AOSP代码,不再兼容安卓开源应用,仅支持鸿蒙内核和系统的应用,因此也被称为“纯血鸿蒙”。

HarmonyOS NEXT可以理解为HarmonyOS面向未来的、自研程度更高的下一代鸿蒙系统。

4、鸿蒙生态

鸿蒙生态包括OpenHarmony、HarmonyOS和HarmonyOS NEXT,当然还包括开发工具以周边的一些开发库。当我们在说“鸿蒙”的时候,也许就是指鸿蒙生态。

1.1.4 HarmonyOS应用开发

为了进一步扩大HarmonyOS的生态圈,面对广大的硬件设备厂商,HarmonyOS通过SDK(Software Development Kit,软件开发工具包)、源代码、开发板/模组和HUAWEI DevEco Studio等装备共同构成了完备的开发平台与工具链,让HarmonyOS设备开发易如反掌。

应用创新是一款操作系统发展的关键,应用开发体验更是如此。一条完整的应用开发生态中,应用框架、编译器、IDE(Intergeated Development Environment,集成开发环境)、API(Application Program Interface,应用程序接口)、SDK都是必不可少的。为了赋能开发者,HarmonyOS提供了一系列构建全场景应用的完整平台工具链与生态体系,助力开发者,让应用能力可分可合可流转,轻松构筑全场景创新体验。

本书就是介绍如何针对HarmonyOS进行应用的开发。可以预见的是,HarmonyOS必将是近些年的热门话题。对于能在早期投身于HarmonyOS开发的技术人员而言,其意义不亚于当年Android的开发,HarmonyOS必将带给开发者广阔的前景。同时,基于HarmonyOS提供的完善的平台工具链与生态体系,笔者相信广大的读者一定也能轻松入门HarmonyOS。

5G网络准备就绪,物联网产业链也已经渐趋成熟,在物联网即将爆发的前夜,正亟须一套专为物联网准备的操作系统,而华为的HarmonyOS正逢其时。Windows成就了微软,Android成就了谷歌,HarmonyOS是否能成就华为,让我们拭目以待。

参考资料

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
16天前
|
移动开发 JavaScript 前端开发
HarmonyOS鸿蒙应用开发——探索原生与H5通信框架DSBridge
HarmonyOS版DSBridge是一个桥梁库,允许鸿蒙原生环境与JavaScript交互。它兼容Android和iOS的第三方DSBridge核心功能,支持同步和异步调用、命名空间API管理、进度回调及页面关闭监听等功能。主要特性包括适配鸿蒙NEXT版本、支持串行异步并发任务、兼容DSBridge 2.0与3.0版本JS脚本,并提供类形式集中管理API及自定义页面组件注册。源码仓库:HarmonyOS版 - DSBridge-HarmonyOS。安装命令为`ohpm install @hzw/ohos-dsbridge`。通过该库,开发者可以方便地在鸿蒙系统中实现原生与JS的高效交互。
89 1
|
10天前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
128 81
|
4天前
|
人工智能 安全 JavaScript
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS纯血鸿蒙新特性
HarmonyOS 3.1引入了Stage模型,增强ArkTS语言、应用程序框架、Web、ArkUI等子系统能力。新增功能包括Ability框架的Stage开发模型、ArkUI组件能力提升、应用包管理接口、公共基础类库支持Buffer读写、Web服务文档预览及编辑、图形图像编解码支持等。从API 9开始,Stage模型成为主要开发模型,支持更灵活的应用生命周期管理和窗口调度,提供更好的组件与窗口弱耦合体验。此外,HarmonyOS NEXT开发者预览版实现了全面自研,被称为“纯血鸿蒙”,具备自主可控、高度弹性、更强的安全性和隐私保护特性。
50 21
|
14天前
|
编解码 人工智能 开发框架
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS技术理念
HarmonyOS在万物智联时代提出了三大技术理念:一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。通过多端开发环境、多端开发能力和多端分发机制,HarmonyOS显著降低了开发成本,提升了开发效率。开发者只需一套工程即可实现多设备应用的高效开发与部署。元服务作为轻量化程序实体,支持跨设备无缝流转,提供便捷服务。同时,HarmonyOS内置强大的AI能力,助力开发者快速实现应用智能化。
76 16
|
9天前
|
存储 人工智能 JavaScript
Harmony OS开发-ArkTS语言速成二
本文介绍了ArkTS基础语法,包括三种基本数据类型(string、number、boolean)和变量的使用。重点讲解了let、const和var的区别,涵盖作用域、变量提升、重新赋值及初始化等方面。期待与你共同进步!
68 47
Harmony OS开发-ArkTS语言速成二
|
11天前
|
API 索引
鸿蒙开发:实现一个超简单的网格拖拽
实现拖拽,最重要的三个方法就是,打开编辑状态editMode,实现onItemDragStart和onItemDrop,设置拖拽移动动画和交换数据,如果想到开启补位动画,还需要实现supportAnimation方法。
70 13
鸿蒙开发:实现一个超简单的网格拖拽
|
10天前
|
索引 API
鸿蒙开发:自定义一个股票代码选择键盘
金融类的软件,特别是股票基金类的应用,在查找股票的时候,都会有一个区别于正常键盘的键盘,也就是股票代码键盘,和普通键盘的区别就是,除了常见的数字之外,也有一些常见的股票代码前缀按钮,方便在查找股票的时候,更加方便的进行检索。
鸿蒙开发:自定义一个股票代码选择键盘
|
10天前
|
API
鸿蒙开发:自定义一个英文键盘
实现方式呢,有很多种,目前采用了比较简单的一种,如果大家采用网格Grid组件实现方式,也是可以的,但是需要考虑每行的边距以及数据,还有最后两行的格子占位问题。
鸿蒙开发:自定义一个英文键盘
|
11天前
|
存储 JSON 数据库
鸿蒙元服务项目实战:备忘录内容编辑开发
富文本内容编辑我们直接使用RichEditor组件即可,最重要的就是参数,value: RichEditorOptions,通过它,我们可以用来设置样式,和获取最后的富文本内容,这一点是很重要的。
鸿蒙元服务项目实战:备忘录内容编辑开发
|
10天前
|
前端开发 API 数据库
鸿蒙开发:异步并发操作
在结合async/await进行使用的时候,有一点需要注意,await关键字必须结合async,这两个是搭配使用的,缺一不可,同步风格在使用的时候,如何获取到错误呢,毕竟没有catch方法,其实,我们可以自己创建try/catch来捕获异常。
鸿蒙开发:异步并发操作