在官网上看到鸿蒙 OS 的简介是,分布式能力造就新硬件、新交互、新服务,打开焕然一新的全场景世界。以及发布会提及最多是他的万物互连,全场景,分布式,微内核,软总线。
换句话说,鸿蒙OS 是为全场景,分布式设计的,微内核,软总线是他重要的实现。
对于全场景,分布式理解,我们可以想一下华为自家的多屏协作,以及电脑,平板和手机可以很方便实现在电脑上操作平板,手机。
另外买到的一些新上市家电,上面可以看到鸿蒙的小 Logo,这些带上鸿蒙的家电,可以通过碰一碰无需安装 App 实现配置组网,也十分方便。
在华为开发者大会上,华为也展示了一些精彩的案例。大家有兴趣回头翻一翻。这些都是通过全场景,分布式特性做到的新交互和体验,十分让人期待。
到此应该有一个疑问,如果不用鸿蒙 OS,能不能实现以上交互?多屏协同,多设备协同?
答案是可以的,官方有提到,他们把鸿蒙 OS 一些能力,例如分布式提出来放到 EMUI 上。
我们在华为的开发平台上可以看到一些 kit 和鸿蒙有关的有设备虚拟化、HiCar、HiLink、碰一碰等。
这些 kit 是可以让设备在不上鸿蒙的情况下,实现全场景,分布式。他们做的类似做一个中间层,App 和设备端分别接入这些 kit 的 sdk。
那么和直接用鸿蒙 OS 有什么区别呢?开发会上官方给出了答案,不上鸿蒙也是可以实现的,不过鸿蒙 OS 的性能会更好一点。
聊一下 kit
在聊开发之前,我想聊一下华为提供一些有意思的 kit。
例如,美的电器接入碰一碰可以做到免安装配网。这点十分方便,特别是家有老人。
之前的配网流程起码分成 3 步,安装 App,扫码,配置。而这套方案就只要 3 秒。
应用开发
鸿蒙 OS 目前开放了应用开发和设备开发。应用开发是我们的重头戏,可以为搭载鸿蒙的智慧屏,手表,车机开发应用。
通过华为提供的 DevEco IDE 建立应用开发项目,具体开发步骤有比较多的教程就不细说了。
开发可以使用 Java 和 JS 语言。Java 开发的话,跟 Android 开发差不多。
这里注意的是通过 JS 开发的话,但是通过 Htm 并非 html 来写 UI。在语法上类似 vue。
JS 引擎是 JerryScript,能够在内存少于 64KB 的设备上执行 ECMAScript 5.1 源代码。
那实际上下面要提到的设备开发逻辑是也可以部分用 JS 实现的。不过官方文档比较少,也没有 demo 提供。但个 js runtime 是可以作为组件一起编译烧录的。
应用开发中,我比较感兴趣的是跨设备调用,下面这个例子是从智慧屏 App 上调用其他设备页面的。
这里可以看到优点十分明显,在这里我们开发无需关心通信,以及传输安全问题。
在智慧屏上这么写,在手表上也是这么写。也就是他们说的一次开发多端部署,提供成熟方案,不用放更多精力在安全机制,组网连接和基础通信上。聚焦业务,快速完成原型开发。
但也有一些约束与限制:
支持主设备侧远程启动从设备侧 FA,不支持从设备远程启动主设备 FA。
需要同一局域网内。
需要认证,当前只支持拥有共同公钥信息的主从设备间 FA(即主从设备的 FA 使用相同华为证书)的拉起。
工具链还需完善,如果选择智能手表和智慧屏这两个平台进行 App 的开发,目前华为还没有开放基于 X86 的本地模拟器。
因此,需要将编译后安装到远程的 ARM 处理器以运行代码,在本机上只能预览运行结果,而无法在本机上运行和调试代码。开发效率相对慢一点,相信华为后面应该会补齐。
设备开发
针对设备开发者,OpenHarmony 采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。
可运行在百 K 级别的资源受限设备和穿戴类设备,也可运行在百 M 级别的智能家用摄像头/行车记录仪等相对资源丰富的设备。
我先讲一下设备开发的限制,目前开源的仅支持 128k~128M 设备。而电视的运行内存一般在 2G 以上,普遍 3~4G。那实际上可以满足除了电视,手表 wear,手机的大部分设备。
开发流程是源码获取/组件管理→编码实现逻辑→编译→烧录,按官网教程走一遍就能在开发板板上跑起来了。
前面说到的一些 kit , 设备虚拟化和碰一碰也是可以用在设备开发上的。不过设备虚拟化,DVKit SDK 预计 2020 年 12 月底才提供。
还有碰一碰,以下是官方提供的一个打印机通过碰一碰实现文件传输的例子:
接下来聊一下华为的鸿蒙发布计划:明年中发布 4G 以下,4G 以下应该对应车机和 wear。
年底发布 4G 以上,这个应该是对应手机。手机的话大家都认为的意义不是很大,也不太可能成为主流,我也是这么认为。
我个人认为鸿蒙的发力点应该是在电视,穿戴,车机上,以及提供极致的生态体验!