准备在内部做个鸿蒙的科普,打稿如下.望指正一下疏漏.如果可以提供科普相关内容更好啦.
面向是开发人员,主要想通过科普让大家了解一下鸿蒙开发
接下来,我想给大家科普一下这个这么火的鸿蒙系统。
到底什么是鸿蒙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 . 能够在内存少于 64 KB 的设备上执行 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生态?
作者:JackChen2020
想了解更多内容,请访问:
51CTO和华为官方战略合作共建的鸿蒙技术社区
https://harmonyos.51cto.com#jssq