写点什么

解读鸿蒙系统的 2021:喧嚣褪去,生态初具规模

  • 2022-01-11
  • 本文字数:3653 字

    阅读完需:约 12 分钟

解读鸿蒙系统的2021:喧嚣褪去,生态初具规模

本文是“2021 InfoQ 年度技术盘点与展望”特别策划文章,由 InfoQ 编辑部制作呈现,聚焦 HarmonyOS(鸿蒙操作系统)在 2021 年的重要动态和进展。


“鸿蒙,成了!!”2021 年 10 月 23 日,华为常务董事、消费者业务 CEO、智能汽车解决方案 BU CEO 余承东在其个人微博上宣布道。2021 年是 HarmonyOS 自 2019 年发布以来的第三年,这一年 HarmonyOS 的舆论热度已经不比前两年,但这不是坏消息。相比起身处国与国之间技术博弈的漩涡,“韬光养晦”的时刻对 HarmonyOS 来说更具意义。


本文将带您一起回顾 2021 年 HarmonyOS 的重要动态和技术进展,并展望其 2022 年的发展。感谢多位专业人士在本文写作过程中提供了非常有价值的观点,特别致谢(排名不分先后):优酷高级无线开发专家刘洋、Cocos 引擎技术总监凌华彬、新浪微博客户端技术负责人高一航。

动态回顾

余承东口中的“鸿蒙成了”,实际上是指“鸿蒙生态已初具规模”。官方公布的最新数据显示,华为已经有 2.2 亿+设备搭载 HarmonyOS,来自生态合作伙伴的设备有 1 亿+搭载 HarmonyOS。2020 年 12 月,华为发布 HarmonyOS 2.0 手机开发者 Beta 版本,接着在半年后的 2021 年 6 月,随着 HarmonyOS 2.0 的顺利发布,到 12 月份,所有规划中机型的鸿蒙正式版的适配推送已基本完成,其中包括不少华为、荣耀的旧款手机和平板产品。


原子化服务能力是鸿蒙系统的特色,其免安装、即用即走的特性对用户更加友好,对 App 开发者来说可以提高用户活跃度。因此这一年 HarmonyOS 系统的原子化服务可以说是“野蛮生长”,点开服务中心可以看到“五花八门”的原子化卡片,覆盖各行各业,比如中国国际航空推出了“中国国航”,点击卡片即可一键进行预订机票、查看行程、办理值机等操作;广发证券推出“行情服务”、“开户服务”、“秒答服务”等等......生态中“吃螃蟹”的不仅只有互联网公司。


与此同时,HarmonyOS 社区也变得越来越热闹。市面上有越来越多的 HarmonyOS 开发类书籍,以及相关的开发者网站和公众号,开源网站上也出现不少开发者上手 HarmonyOS 的开源项目。HarmonyOS 官网近日还推出了 HarmonyOS 开发者资源中心——DevEco Marketplace,汇总了 HarmonyOS 开发相关的原生库、三方库、示例代码等各类资源。


简要回顾 2021 年,HarmonyOS 主要有以下几个重要动态:


  • 2021 年 5 月 18 日,华为宣布将“Work With HUAWEI HiLink”品牌和“Powered by HarmonyOS”品牌融合升级为“HarmonyOS Connect”品牌,即鸿蒙智联,原 HiLink 开发者平台与 HarmonyOS 认证平台统一升级至鸿蒙智联生态服务平台。同年 8 月 18 日,鸿蒙智联设备认证正式上线。

  • 2021 年 6 月 2 日,华为正式发布 HarmonyOS 2.0 以及搭载 HarmonyOS 2 的多款新产品。

  • 2021 年 10 月 22 日,华为发布 HarmonyOS 3 开发者预览版。预计 2022 年一季度,华为将发布 HarmonyOS 3 开发者 Beta 版。

  • 2021 年 12 月 23 日,华为发布鸿蒙汽车 AITO 问界 M5,搭载 HarmonyOS 座舱。

技术演进和发展方向

10 月发布的 Harmony OS 3.0.0 开发者预览版,相比起 2020 年发布的 Harmony OS 2.0 版本,在性能以及开发者体验上都有了大幅提升。


Harmony OS 3.0.0 开发者预览版围绕“弹性部署、超级终端、一次开发多端部署”继续演进。随着该版本的发布,HarmonyOS 应用与服务开发工具套件全家桶也全面升级,包含了新一代的声明式 UI 框架 ArkUI 3.0、多语言跨平台编译器 ArkCompiler 3.0、跨端开发工具 DevEco Studio3.0,以及基于 TS/JS 语言的 API 7。

方舟开发框架 3.0

“一次开发多端部署”是 Harmony OS 的主打亮点,可实现通过一套工程代码、一次开发上架,即可按需部署到不同设备。为了实现这一目标,华为主要从 Harmony 系统能力、ArkUI 3.0 框架能力和开发工具能力三个方面着手。


ArkUI 3.0(方舟开发框架 3.0)新引入了基于 TypeScript(简称 TS)扩展的声明式开发范式。“基于 TS 扩展的声明式开发范式”是方舟开发框架提供的两种开发范式之一,采用更接近自然语义的编程方式,让开发者可以直观地描述 UI 界面,不必关心框架如何实现 UI 绘制和渲染,实现简单和高效的开发。


目前,HarmonyOS 提供两种 UI 框架、三种开发范式。


新的 ArkUI 3.0 框架,除了引入新一代声明式 UI 开发范式,还设计了统一的前后端扁平化渲染机制,进一步提升 UI 渲染的性能并降低内存消耗,并深度结合 ArkCompiler 3.0 的方舟编译器和方舟运行时,提升语言的执行性能和跨语言通信能力。在工具方面,针对新一代的声明式 UI 开发范式构建了新的编译工具链和预览引擎,提供所见即所得的实时预览机制。



另外,在 ArkUI 3.0 框架中,类 Web 范式会继续保留,即类 Web 范式和新一代的声明式 UI 范式都可以支持,可以各自独立使用,但不能混用


UI 编程框架在应用开发中起了至关重要的作用。目前,拥有新开发范式的 ArkUI 3.0 走出了坚实的第一步,并已开始支撑更多的关键应用。接下来,除了基础设施的持续完善,HarmonyOS 将会重点支持生态扩展,主要包括高级 UI 能力的提升,比如三方地图、游戏的融合以及 Web 能力增强等。

方舟编译器 3.0

HarmonyOS 3.0.0 提供 ArkCompiler 3.0(方舟编译器 3.0),用于应用的编译构建。ArkCompiler 是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,其目标是提供一个语言可插拔、组件可配置的多语言编译器运行时。


  • 语言可插拔:设计架构上支持多种语言接入,ArkCompiler 有能力提供具有高效执行性能且具有跨语言优势的多语言运行时,也可以在小设备上提供高效轻量的单一语言运行时。

  • 组件可配置:ArkCompiler 具有丰富的编译器运行时组件系统。通过定制化配置编译运行时的语言和组件,以支持手机、PC、平板、电视、汽车和智能穿戴等多种设备上不同的性能和内存需求。目前,ArkCompiler 3.0 主要支持的语言是 JavaScript、TypeScript 和 Java。未来,ArkCompiler 在持续优化基础体验的同时,更会进一步结合 HarmonyOS 万物互联的需求,在跨端迁移、多端协同等创新场景,从编译器和运行时等方面提供底层的解决方案和优化机制,提升分布式应用的开发和运行体验。

DevEco Studio 3.0

HUAWEI DevEco Studio 是开发 HarmonyOS 应用和原子化服务的一站式集成开发环境(IDE)。2021 年的最后一天,官方发布了 DevEco Studio 3.0 Beta2 版本。


在 HarmonyOS 3.0.0 开发者预览版发布的时候,开发者 IDE 工具已经可以升级到 3.0 Beta1 版本。其关键特性包括:支持 ArkUI 3.0 框架低代码开发功能提升(新增支持 Tablet 设备开发、面向不同尺寸界面设计效果可自动适配的原子布局能力,以及多设备开发切换功能)、新增 Scoring Tool 评测工具(开发者可以通过 DevEco Studio 连接本地设备或远程真机,自主遍历 HarmonyOS 应用或原子化服务的功能,快速进行自测试)等。


3.0 Beta1 版本已经支持用方舟编译器编译由 eTS 语言开发的应用,本次升级新增相应的工程调试功能,进一步支撑使用方舟编译器的 eTS 工程开发。

当前存在的问题

毕竟是操作系统界的后来者,发展初期 HarmonyOS 的开发体验还不够完善,比如存在由于开发环境迭代较快导致出现 bug 的问题,其他问题还有 IDE 体验不够好、部分文档写得不够详细、所提供的 demo 还不够完善等等。


同时也有人疑惑,HarmonyOS 同时存在 JS 框架、Java 框架,究竟华为未来会主推哪一种开发框架,目前似乎还没有明确的结论。


长远地看,目前 HarmonyOS 可以兼容 Android 应用,那未来是否一直会支持下去?而开发者开发纯鸿蒙 App 的必要性究竟有多大?对于很多 App 来说,开发纯鸿蒙 App 并不现实,毕竟大量的移动中间件还未适配鸿蒙。


另外,由于众所周知的问题,华为当前在推出新机上遇到非常大的困难,随着未来旧机器逐渐退役,HarmonyOS 的保有量是否能维持在一个高位?未来又是否会有别的手机厂商采用 HarmonyOS?华为是 HarmonyOS 的开发者和维护者,也是手机市场的重要玩家,华为是否能保持平台的中立性,对可能的其他 HarmonyOS 采用者一视同仁?


以上这些问题是当前 HarmonyOS 在发展途中遇到的常见和比较棘手的问题。技术问题终究可以被解决,而关于长期发展的问题,或许还得靠开源(OpenHarmony)才能破解。

写在最后

展望 2022 年,我们期待 HarmonyOS 生态得到进一步完善和丰富,有更多的非华为终端设备开始使用 HarmonyOS,以及跟 HarmonyOS 联动,也期待能有更多的纯鸿蒙 App 推向市场,这需要华为持续提供更多的服务和开放更多的能力。另外,方舟开发框架、方舟编译器的发展也很值得关注。按照官方说法,TS/JS 语言将在 HarmonyOS 应用开发中越来越重要。


最后,笔者还想提下 2021 年 HarmonyOS 的一个动态,那就是和欧拉开源操作系统的“互通”。


在 2021 年 9 月举办的华为全连接大会上,华为宣布欧拉和鸿蒙已经实现了内核技术共享,未来计划将鸿蒙的分布式软总线能力移植到欧拉,让搭载欧拉操作系统的设备可以自动识别和连接鸿蒙终端。后续进一步在安全 OS、设备驱动框架、以及新编程语言等方面实现共享。当时还提到,2022 年华为将发布名为“仓颉”的应用编程语言,鸿蒙和欧拉会基于同样的编程语言开发,如此一来,就能更好地完成应用的迁移和实现生态互通的目标。


不管是 HarmonyOS、方舟编译器或是未来的仓颉语言,均是华为在基础软件做全方位布局的体现,我们或许还可以期待 2022 年华为在根技术方面的更多突破。


参考资料来源:


HDC2021 HarmonyOS技术论坛


华为鸿蒙应用开发官网

2022-01-11 11:2011374
用户头像
罗燕珊 AI practitioner | Tech media

发布了 544 篇内容, 共 414.7 次阅读, 收获喜欢 855 次。

关注

评论 3 条评论

发布
用户头像
新语言对标rust还是kotlin?
2022-01-12 12:29
回复
应该是kotlin
2022-01-13 20:56
回复
带GC的,不过融入一部分Rust的特性
2022-01-24 12:17
回复
没有更多了
发现更多内容

直播预告|MobTech携手中国信通院共话数据治理建设实践

MobTech袤博科技

数据安全 火山引擎 信通院 MobTech袤博科技

微信朋友券的高性能复杂度

CityAnimal

架构实战营 #架构实战营 「架构实战营」

10个商品图策略,引导亚马逊卖家提升客户购物体验

龙国富

电商 商品 亚马逊 客户体验

企业知识管理的解决方案

小炮

知识管理 企业知识管理 企业知识管理工具

超nei卷!连黑客勒索软件团伙都开始谈客户体验…

龙国富

黑客 客户体验 drakside 客户至上

微信朋友圈的高性能复杂度

大眼喵

「架构实战营」

自己动手写Docker系列 -- 5.5实现容器停止

Go Docker 4月月更

13个问题帮你选型 “客户体验管理SaaS平台”

龙国富

SaaS 选型 客户体验 CEM CXM

架构实战营-模块二作业

,lazy

#架构实战营 「架构实战营」

快速尝鲜:RabbitMQ 搭建完就得用起来

阿Q说代码

RabbitMQ springboot 4月月更 消息确认机制

都2022年了,HDFS为何还如此能战

华为云开发者联盟

大数据 hadoop hdfs 分布式文件系统 大数据存储

Go服务错误堆栈收集降频策略

SFLYQ

后端 高并发 Go 语言 日志采集

华为云GaussDB(for Influx)揭秘第五期:最佳实践之子查询

华为云开发者联盟

数据库 华为云 GaussDB(for Influx) 子查询 InfluxQL

状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02

vivo互联网技术

服务器 状态机

Linux驱动开发-编写PCF8591(ADC)芯片驱动

DS小龙哥

4月月更

使用和风天气 API 10分钟搭建天气预报数据看板

蒋川

API 天气api

《手写Mybatis》第4章:Mapper XML的解析和注册使用

小傅哥

小傅哥 mybatis 工厂模式 建造者

为啥JS/TS里都会有"use strict"

华为云开发者联盟

js ts 严格模式 use strcit 使用严格

净推荐值(NPS)完整行动指南

龙国富

客户体验 NPS 净推荐值 北极星指标 客户忠诚度

Test

haibin369

架构实战营作业 - 模块二

haibin369

「架构实战营」

B 端 SaaS 产品自动化事件设计 - 规则表达式

龙国富

自动化 SaaS 正则 B端 规则表达式

不写代码,带你徒手开发一个健康打卡应用

华为云开发者联盟

无代码 AppCube 应用开发 健康打卡 可视化编排

java培训关闭流方法有顺序吗

@零度

JAVA开发 包装流

一文了解垃圾回收算法中的引用计数算法

宇宙之一粟

垃圾回收算法 引用计数 4月月更

Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

xuri

golang Excel Apache POI Go 语言 Excelize

spring-cloud 链路追踪

Rubble

4月日更

模块二:微信朋友圈高性能复杂度分析

jiaoxn

「架构实战营」

十年磨一剑,墨菲安全正式发布开源项目murphysec

墨菲安全

开源安全

脉冲能量|Committer 专访——李理:Apache Pulsar 项目“体验师”

Apache Pulsar

开源 云原生 Apache Pulsar Apache Pulsar 社区 运维‘

模块二作业:微信朋友圈高性能复杂度分析

杨波

「架构实战营」

解读鸿蒙系统的2021:喧嚣褪去,生态初具规模_语言 & 开发_罗燕珊_InfoQ精选文章