关注+星标公众号,不错过精彩内容 来源 | GitHub科技 “ 本文面向的是开发人员,主要想通过科普让大家了解一下鸿蒙开发。 到底什么是鸿蒙 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 上调用其他设备页面的。 这里可以看到优点十分明显,在这里我们开发无需关心通信,以及传输安全问题。 在智慧屏上这么写,在手表上也是这么写。也就是他们说的一次开发多端部署,提供成熟方案,不用放更多精力在安全机制,组网连接和基础通信上。聚焦业务,快速完成原型开发。…