本文面向的是开发人员,主要想通过科普让大家了解一下鸿蒙开发。接下来,我想给大家科普一下这个这么火的鸿蒙系统。
到底什么是鸿蒙 OS?
在官网上看到鸿蒙 OS 的简介是,分布式能力造就新硬件、新交互、新服务,打开焕然一新的全场景世界。以及发布会提及最多是他的万物互连,全场景,分布式,微内核,软总线。
换句话说,鸿蒙OS 是为全场景,分布式设计的,微内核,软总线是他重要的实现。
对于全场景,分布式理解,我们可以想一下华为自家的多屏协作,以及电脑,平板和手机可以很方便实现在电脑上操作平板,手机。
另外现在双 11 买到的一些新上市家电,上面可以看到鸿蒙的小 Logo,这些带上鸿蒙的家电,可以通过碰一碰无需安装 App 实现配置组网,也十分方便。
在华为开发者大会上,华为也展示了一些精彩的案例。大家有兴趣回头翻一翻。这些都是通过全场景,分布式特性做到的新交互和体验,十分让人期待。
到此应该有一个疑问,如果不用鸿蒙 OS,能不能实现以上交互?多屏协同,多设备协同?
答案是可以的,官方有提到,他们把鸿蒙 OS 一些能力,例如分布式提出来放到 EMUI 上。
我们在华为的开发平台上可以看到一些 kit 和鸿蒙有关的有设备虚拟化、HiCar、HiLink、碰一碰等。
这些 kit 是可以让设备在不上鸿蒙的情况下,实现全场景,分布式。他们做的类似做一个中间层,App 和设备端分别接入这些 kit 的 sdk。
那么和直接用鸿蒙 OS 有什么区别呢?开发会上官方给出了答案,不上鸿蒙也是可以实现的,不过鸿蒙 OS 的性能会更好一点。聊一下 kit
在聊开发之前,我想聊一下华为提供一些有意思的 kit。设备虚拟化能力(DeviceVirtualization Engine),是通过虚拟化技术将相关设备或器件打造成手机器件或能力的延伸。
它可以将家中的电视、摄像头和音箱虚拟为手机的屏幕、Camera 和 Mic/Speaker,将穿戴设备作为手机的虚拟 Sensor,实现手机为中心的全场景体验。
此处又应该有疑问,这个设备虚拟化和我们平时用的投屏,蓝牙音箱有什么区别?灵活性,投屏,蓝牙音箱,蓝牙话筒是实现单一功能设备。用户可以根据需要选择所需的设备。
应用级的,举个例子,可能开会需要,在会议 App 才需要话筒音箱。来电了依然是用手机上的话筒听筒。
可扩展性,,除了常见的多媒体。他这个还支持外接传感器,马达,消息通知等。
碰一碰能力(OneHop Engine)是通过 NFC 来解决 App 跨设备接续难、设备配网难、传输难的问题的一个方案。
他们定义了一些常见的场景下的功能方向以及两种集成方案:例如,美的电器接入碰一碰可以做到免安装配网。这点十分方便,特别是家有老人。
之前的配网流程起码分成 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 以上,这个应该是对应手机。手机的话大家都认为的意义不是很大,也不太可能成为主流,我也是这么认为。我个人认为鸿蒙的发力点应该是在电视,穿戴,车机上,以及提供极致的生态体验!!总结
短时间来构建生态,工具链,方案已经很不容易!现在这些已经比较完善了!小米,oppo,vivo,魅族手机厂商会不会加入 1+8+N 生态?海尔会不会加入 1+8+N 生态?车机会不会加入 1+8+N 生态?新来的小哥这样写代码!同事直呼“中毒了”~
我终于决定要放弃 okhttp、httpClient,选择了这个牛逼的神仙工具!贼爽
5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「2048」,即可免费获取!!微信扫描二维码,关注我的公众号
朕已阅