本文是“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技术论坛
华为鸿蒙应用开发官网