2022年华为开发者大会(HDC.Together)于11月4日在东莞松山湖揭开帷幕,带来了鸿蒙生态的最新成果,展示了鸿蒙生态的全新格局。在大会主题演讲中,华为带来了多种令人震撼的技术成果,如分布式能力、原子化服务、AI、AR、地图、游戏、音视频、隐私安全、HarmonyOS座舱等。同时鸿蒙开发套件推出了升级的ArkTS、ArkUI、ArkCompiler等技术,通过这些技术的加持,让HarmonyOS App从开发、到布局,再到性能,都得到了质的飞跃。从而全面加速推进HarmonyOS应用生态。
下面就向各位展示一下鸿蒙开发套件以及其他炫酷的技术:
1. 全场景分布式系统
自从HarmonyOS在2020年9月份发布以来,就确认了HarmonyOS发展的总策略,要成为全场景的分布式系统。所谓全场景主要体现在无处不在。现在各种类型的电子设备已经填满了我们生活和工作的每一个角落,闹钟、手机、平板电脑、微波炉、电磁炉、热水器、耳机、电视、电脑、电动汽车、手表、智能手环、吸尘器、电冰箱、洗衣机,这些都是我们生活中常见的电子设备,如果要让它们单独运作再容易不过了,不过HarmonyOS的目的是让这些设备组成一个整体,就是组成人体的每一个器官,在需要的时候,会有合适的器官完成特定的工作,以形成一个超级终端,对,这就是HarmonyOS的最终目的。HarmonyOS会隐藏在背后完成所有的工作,包括处理特定的任务,协调各种电子设备,数据同步等,而用户并不会感知HarmonyOS的存在,真正做到无影无形,无处不在。
HarmonyOS要想达到这个目的,拥有强大的开发套件以及灵活的特性是必备技能。而一次开发,多端部署,可分可合、自由流转,统一生态,原生智能正是HarmonyOS的最高指导原则。为了实现这些原则,HarmonyOS逐渐支持了多种技术(如ArkUI、ArkTS、ArkCompiler、原子化服务等),并提出了Stage等开发模式。下面将为大家逐一解锁这些新技能。
2. HarmonyOS的超能力:ArkTS API万箭齐发
不管是任何类型的编程语言或是具有开发能力的平台,都需要提供大量可供用户操控的接口,也称为API。ArkTS随着几年的发展,已经提供了海量的API可供用户使用,到目前为止,HarmonyOS 3.1中的ArkTS API已经有超过10000个,能力覆盖了方方面面。例如,用于设计UI的声明式布局API、Web相关的API、多媒体相关的API、网络相关的API等,总之,ArkTS目前支持的API足够开发出非常强大的HarmonyOS App。
3.解锁“鸿蒙开发套件”的新技能
有一套好的开发工具,会让你的开发效率倍增,出错率显著下降,最关键的一点可以让你心情更好,防止脱发。
华为最新推出的DevEco Studio 3.1堪称是目前为止最强大的HarmonyOS App开发套件。新版的DevEco Studio支持大量的新特性,以便让我们在开发HarmonyOS App时感觉更爽,例如,通过强大的智能代码编辑器可以更快速,更准确定位错误,增量编译可以让我们在编译的过程中不再闲得无聊。
(1) 智能代码编辑器
人类进入智能代码编辑器时代是从微软的Visual Studio开始的,不过当时的编辑器相当简陋,或者说是原始。随着时代的发展,代码编辑器开始变得智能,甚至成为开发工具的标配。
最初的智能代码编辑器只是可以列出类或对象的成员,以及参数等。不过随着API数量的大量增加,语法变得越来越复杂,代码编辑器就需要可以帮助开发人员快速编写代码,
这一点从DevEco Studio代码智能补齐功能就可以看出,输入某些特定的语法结构(如循环、条件、lambda表达式等),编辑器会为我们生成这些语法结构的默认形式,即使我们忘记了具体的语法也无关紧要,只需要在默认语法形式的基础上照猫画虎即可,这项功能大大增加了开发工具的可用性。
如果代码比较多,每次需要对全部代码进行校验,会大量消耗CPU的资源,可能还会出现卡顿的现象,DevEco Studio为了解决这个问题,提供了代码增量校验的特性,在大多数时候,只针对新增加或修改的代码进行校验,这样可以大大提升IDE的性能。
(2)Hvigor编译构建
对于一个大型的项目,编译简直就是噩梦。我曾经有一个非常大的项目,编译一次竟然要20多分钟,所以提高编译速度是开发工具必须要改进的方向之一。
DevEco Studio利用Hvigor构建工具可以明显地提升编译HarmonyOS App工程的效率。Hvigor可以通过多种技术提升编译性能,例如,通过多线程并行编译,可以在多核、多CPU的环境下大幅度提升编译效率。还可以通过增量编译技术,只编译增加或修改的部分,这样也可以在一定程度上提升整体的编译效率。
(3)热重载:向看直播一样查看运行结果
“写代码 -> 编译 ->运行 ->查看结果”,这是大多数开发工具的日常。不过DevEco Studio可不需要这么麻烦,“保存 -> 展示”是DevEco Studio最炫酷的特性之一。写完代码,不再需要漫长的编译和运行过程,只要将代码保存,就可以立刻看到代码运行的效果,简直酷毙了。这个特性被称为:热更新。
不仅如此,如果当时正处于运行状态,这时修改代码,仍然会热重载,而且设置的断点并不需要重新设置。也就是说,DevEco Studio支持编辑状态和运行状态的热重载。
(4)跨语言调试,打通多种语言之间的虫洞
在很多场景下,一个App会由多种编程语言共同实现,这就会带来一个棘手的问题:跨语言调试。通常的做法是只在调用者语言中调试,而被调用语言或者通过输出日志调试,或者通过函数向调用者返回值的方式调试。不管是哪种调试方式,都非常不方便,尤其是定位跨语言的错误,更是费劲。
为了解决这个问题,最新版的DevEco Studio允许ArkTS和C 混合开发,并且支持跨语言调试,也就是说,在ArkTS中设置断点,一直可以跟踪到C
代码中,这样非常方便定位错误。
(5)场景化性能调优工具:DevEco Insight
DevEco Insight可以根据典型性能问题提炼场景化调优模板,结合实时性能监控智能推荐分析模板。还可以关联分析多维度性能数据,性能问题可以定位到具体的代码行。
(6)云端一体化开发
DevEco Studio为了解决开发Serverless不方便的问题,支持直接在DevEco Studio中建立云函数文件,也就是端云融合,统一技术栈。当编写完云函数后,可以一键发布到服务的,以便端侧调用。
4. 新形态UI
HarmonyOS 3有2个重要理念:
(1)超级设备(ONE SUPER DEVICE,协同高效体验)
(2)灵活可定制(如通过万能卡片定制各种各样的服务)
超级设备会带给我们非常炫酷的理念,其中的超级桌面允许在智能座舱、智慧屏中打开手机上的应用,并且所有的UI都可以自动适配。还支持在不同设备之间拖拽文本、图标篇,以及超级文件中转站,并且支持语音操控。这一切无不体现着创新形态,创新体验,创新设计。
由于HarmonyOS需要在不同设备上运行,这些设备的屏幕尺寸千差万别,要想适应尽可能多的屏幕尺寸,华为推出了自适应UI引擎。
自适应UI引擎可以根据屏幕尺寸的大小,自动调整布局。例如,手机屏幕较小,所以水平方向只会显示2个图像,在平板电脑上,水平方向可能会显示4个图像。这些都是UI引擎自动调整的。而且UI引擎还可以根据不同的设备,将UI组件映射到不同的设备上(跨平台渲染和多端部署能力)。例如,手表、手机、智能电视的屏幕尺寸和组件样式有很大差异,UI引擎在渲染组件时会根据具体的设备,将组件渲染成设备特有的样式。
5. 轻量化并发
并发一直是提升运行效率的重要手段,不过并发也会带来一些麻烦。例如,多线程共享数据,有可能会造成脏数据,虽然可以利用线程锁(线程同步技术)解决脏数据的问题,但线程锁如果使用不当,还会造成死锁,而且多线程引发的bug并不好调试。
为了解决以上问题,HarmonyOS推出了轻量级并发技术,通过LiteActor,可以将每一个线程都放到Actor中,然后由主线程循环执行。由于LiteActor目前不支持线程锁,以及共享可写数据,所以并不会引发传统线程的各种问题。当然,在未来的HarmonyOS中,LiteActor也会通过某些手段支持共享可写数据,就让我们拭目以待吧。
6. ArkUI全新开发模型:Stage模式
Stage模型主要是为了解决FA模型无法解决的开发场景问题,方便开发者更加方便地开发出分布式环境下的复杂应用。
Stage模型的设计思想如下图所示:
Stage模型的设计基于如下3个出发点:
(1)应用的能力与系统总体功能和功耗的平衡。在系统运行过程中,前台应用的资源占用会被优先保障,与此同时由于应用能力不同而产生的功耗,也需要符合系统整体功耗的要求。Stage模型通过Ability与UI分离、严格的后台管控、基于场景的服务机制及单进程模型来达成这种应用能力与整体系统功耗的平衡。
(2)原生支持组件级的迁移与协同。OpenHarmony是原生支持分布式的操作系统,应用框架需要从架构设计上使得组件更易于实现迁移和协同。Stage模型通过Ability与UI分离及UI展示与服务能力合一等模型特性,实现这一设计目标。
(3)支持多设备和多窗口形态的特点。为了支持多种设备形态和更易于实现多种不同的窗口形态,需要组件管理服务和窗口管理服务在架构层面上是解耦的,从而方便裁剪,更有利于定制不同的窗口形态。Stage模型通过重新定义了Ability生命周期定义和设计组件管理服务和窗口管理服务的单向依赖解决这一问题。
7. HMS Core集成
鸿蒙开发套件本身的能力有限,但可以通过HMS Core增强HarmonyOS App的能力。
HMS Core包含众多服务,这些服务有的需要网络连接(如账号与应用内支付服务、AI等),有的可以本地操作(如手写服务等)。用户可以通过简单的配置和几行代码,将HMS Core的相关功能集成到HarmonyOS App中。
经过前面的体验和分析,HarmonyOS 3从用户体验到开发体验,都得到了明显的增强。在大会上也出现了很多第三方厂商利用华为技术开发的产品,如Bilibili、润和、支付宝等。希望HarmonyOS的生态越来越强大。