TA的每日心情 | 无聊 昨天 17:04 |
---|
签到天数: 86 天 [LV.6]常住居民II
三级逆天
- 积分
- 53653
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
虽说此前我们谈HarmonyOS 2.0系统的文章都反复提到,这是个面向“全场景”的操作系统,而不单是手机。毋庸置疑的是,HarmonyOS究竟何时登陆手机,恐怕是最多人关心的话题。
昨天华为在北京召开了一场HarmonyOS 2.0手机开发者Beta活动,用华为消费者BG软件部副总裁杨海松的一句话来回答,手机何时能用上HarmonyOS的问题最合适,那就是:“面向开发者的beta,不就是面向消费者鸿蒙系统手机的前奏吗?”
昨天电子工程专辑已经发布了有关HarmonyOS 2.0手机应用开发者Beta版的新闻,本文就尝试勾勒一下这个所谓的手机开发者Beta版,对于北向开发者而言,究竟意味着什么,有哪些改进。
广告
在阅读本文前,建议阅读我们此前对HarmonyOS 2.0系统的更多详细报道,包括九月份华为在HDC 2020开发者大会上发布的HarmonyOS 2.0系统究竟是个什么样的系统,这将更有助于各位理解覆盖“全场景”,以及“分布式技术”究竟是怎么回事。文章链接附在本文文末。
本文篇幅较长,共分成4部分:
[li]回顾分布式技术是什么?对开发者有什么价值?[/li][li]HarmonyOS 2.0手机开发者Beta版,有哪些变化?[/li][li]再谈分布式软总线。[/li][li]HarmonyOS生态构建成绩如何?开发者大赛正在进行。[/li] 读者可选择自己感兴趣的部分阅读。
分布式技术,对开发者有何价值
这里再略花点笔墨做些前情提要,毕竟长期的手机操作系统式思维,在iOS和Android统领市场这么多年,还是需要市场的反复教育,才能够让一般人转变思维的。
在活动下午场的技术分享上,华为消费者业务OS平台首席架构师[w(1] 分享了来自IoT-Analytics的一组数据,到2020年每个人持有的IoT设备数量(包括手机、PC、平板以及其他IoT设备)大约是6.57部。这个数字预计到2025年会推升至9.27部。
但事实上,直到目前为止,每个人手头的这些设备其实都无法做到真正的有效协同——它们绝大部分是孤立工作的。而HarmonyOS本质上就是将这些原本孤立的设备,通过“分布式软总线”串联起来,并藉由“分布式数据管理”“分布式任务调度”等能力,将所有IoT设备抽象成一个整体。
数据在这个整体的硬件上自由流转——用户不需要在意某个文件,究竟是在手机上、PC上、大屏电视上,还是哪个硬件上;各种任务负载,在各种设备抽象的“超级终端”上,由最适合的物理硬件去完成,甚至协同完成。前述架构师总结HarmonyOS是“重新定位人-设备-场景的关系”。
其一是“新硬件”,即将原本孤立的终端打造为一个超级终端,“通过软件定义了新的硬件形式,硬件设备物理上存在的形态不重要了。”对于上层应用而言,所有设备都是抽象、单一的硬件。当以手机为中心时,智能摄像头可以是手机的摄像头,4K电视成为手机的虚拟屏幕,车载GPS也成为手机的定位能力,运动手表则成为手机的外置生物特征传感器。
其二是“新交互”,基于所有设备的连接,开发的业务“展现出新的交互模式”,“人可以选择最方便的交互模式,用最人性化的交互模式来交互。改变既有硬件不同特点的交互模式,最终构成复合型交互模式。”比如说手机上接收到一份工作文档,由于键盘、鼠标才是编辑文档最高效的交互方式;又由于分布式技术的存在,不需要像传统系统那样,把手机上的文档传输给PC,就能直接在PC上用键盘和鼠标直接编辑文档,也不需要回传至手机,手机就能打开或发出该文档。
其三“新服务”,一个服务存在于多个终端上,既可以在一个终端上,也可以是多个终端的场景组合,构成更好的用户体验。比如京东购物可以同时在手机、冰箱、大屏电视上进行,手机冰箱碰一碰就完成按需的流转;再比如手机、大屏电视同时运行视频app,电视负责播放节目,而手机则用于显示额外信息,例如可查询目前正播放电视剧中某个演员的资料,甚至综艺节目中,在电视上单独呈现某个明星专门的镜头。
简单地说,对用户而言,是用一个鸿蒙操作系统,来解决IoT的所有问题。对应用开发者而言,这些改变又意味着什么呢?
首先,在技术上,用华为消费者业务软件部总裁王成录博士的话来说,“写一次代码,应用就能运行在所有设备上,生态在所有设备上共享。”如此一来,开发者就能占领更多的硬件设备入口。前文提到京东的例子,就让京东app“从手机单一平台解放出来,应用入口扩展到更多带屏设备,甚至是音箱设备,这些设备都成为京东的潜在入口”;“让上亿家居设备成为京东购物的入口”。
其次,从用户体验的角度来说,开发的应用可脱离单设备的限制,硬件资源可组合利用,又能分别运行,应用体验得到提升。“喜马拉雅在车机上,以及所有有扬声器和麦克风的设备上运行,”不仅有更多入口,而且也有更合适、方便的入口促成app使用体验的提升。”
王成录博士援引了一组数据,从2018年开始,手机出货量、移动App数量,以及消费者在手机上消耗的时间就不怎么增长了。“手机生态来到一个临界点,”“没有持续的增长,产业就会进入到下滑阶段。”IoT显然能抑制这种下滑,而HarmonyOS则让应用,从单一的手机上,扩展到更多的IoT设备上。所以用大白话来说HarmonyOS为开发者带来了什么:
1.更多机会,更赚钱;2.开发过程更简单。
“华为在和南向硬件厂商合作,更多的硬件厂家加入到鸿蒙生态体系中来,你的应用有机会运行在这些设备上,占领更多的入口,成为大家努力创新的更好的突破口和出发点。”这其实也是HarmonyOS生态能否吸引开发者的一部分。
手机开发者Beta版,为开发者带来了什么
此前我们发布有关鸿蒙系统的文章,大多还是在讲概念。未来我们会有更多的机会去深入到HarmonyOS系统内部,从开发者,以及系统底层的角度来探讨HarmonyOS系统本身。这次,我们尝试从北向开发者的角度来谈谈,HarmonyOS 2.0手机应用Beta版本究竟能带来些什么。
从大方向来看,系统服务层面抽象封装了包括分布式软总线、分布式数据管理等在内的各种具体实现。这些对于开发者而言都是隐藏的。开发者因此只需要关注业务逻辑即可,很多复杂的分布式技术,是交由下层框架去解决的。
面向开发者的是分布式框架。这次发布的两个重点是分布式应用框架,与分布式UI框架。此外DevEco IDE也有了更新。
(1)分布式应用框架
这些框架令开发者不需要为不同的设备,做app的重复开发,是实现一次开发多端部署的基础。
这里HarmonyOS引入了一个“元能力”(Ability)的概念,元能力是“实现应用跨端部署的基础单元”,应用由元能力“灵活组装,可大可小,可分可合,可流转”。用王成录博士的话来说,“元能力相当于鸿蒙应用里建筑材料的最小单元,可以单独运行在小设备上,又可以根据能力的不同,不同的FA(Feature Ability)在不同的设备上运行。”“这个能力,是我们能够做到一次业务代码的书写,就让应用跑在不同设备上的重要基础。”
从华为开发者文档来看,这里的“Ability”是HarmonyOS引入的一种应用可提供功能的抽象,Ability类是HarmonyOS应用的基础组件,是不同设备间系统最小迁移单元,Ability可彼此间联合或者单独部署。
华为将其称作程序的“原子化”。前述架构师也提到FA(Feature Ability,元程序,有UI界面)和PA(Particle Ability,元服务,无UI界面)是超级终端的基础应用结构——超级终端前文已经提过了,这是个抽象多设备后的整体。不同的FA和PA,完成单一功能用户程序,基于这样的用户程序可在多设备间调度、流转、可分可合。这两种类型的Ability,为开发者提供不同的模板,实现不同的业务功能。
FA、PA由系统统一调度,并可被其他第三方程序调用集成。FA/PA这种元能力的存在,对于HarmonyOS和开发者而言,实现了接口功能的规范化,“调用能力傻瓜化”。FA/PA的关键特征,前述架构师列出的是“支持不同设备的Profile,不常驻;业务逻辑与数据、显示两两分离;支持可重入和远端执行”。
上面这张图对比了,若要实现app在不同设备上的互通,传统Android开发需要从底层到上层的各部分适配,各层都需要做修改。而HarmonyOS将UI往下的基础服务做了全部的封装,这对开发者而言就轻松了很多。
王成录博士举了京东开发直播购物跨端功能的例子,即手机上的京东转到电视大屏,手机可以用来执行其他操作——这在活动现场也有专门的演示。据说开发这样一个特性,只需要一天时间。“基于编程框架,一个人一天就能做这样一个很好的应用体验。”王成录表示,“对开发者而言,四条语句,调几个函数,就能完成这样的功能了。”
(2)分布式UI框架
分布式UI框架,是用于解决在应用开发过程中,针对不同形状、尺寸、分辨率屏幕显示,以及交互适配困难的问题的。很多应用开发,UI的工作量经常占到一半以上。不同显示尺寸的适配问题要占用开发者大量的时间和经历。这次的Beta版,面向开发者提供了分布式UI框架,“各种自适应,封装成一个个可调用的模块,适配不同尺寸、分辨率的屏幕。”
从针对分布式应用开发的实例演示来看,这一版系统提供了7类自适应布局能力:包括拉伸、缩放、隐藏、拆行、均分、占比、延伸等。“所有界面元素都做了架构上的解耦,解耦到最小粒度,这样就能根据硬件尺寸来做调整。”
除了显示以外,在交互方面,新版系统引入了一种“归一设计”。隐藏不同输入方式的差异,组件针对不同输入进行差异化反馈,一致化交互事件接口。比如针对一张图片,触摸屏是双指捏合实现缩放,PC则通过Ctrl+鼠标滚轮,还有触控板双指捏合,手表上则可能是通过表冠旋转。所以HarmonyOS现在做了“交互事件归一”,开发者只需要关注交互本身。
分布式UI框架实现的,一句话也就是“一次开发,适配不同显示介面”,以及节省UI开发的时间。
(3)DevEco Studio 2.0 Beta3
DevEco Studio是华为官方所推的IDE。这次IDE的更新主要有四点。第一是提供了9套“手机应用模板”,比如新闻、购物类app,开发者可以直接套用,部分减少了app开发工作量。
第二,IDE中加入了多端界面预览、实时反馈。这次似乎主要是多加了对手机界面的预览。实现效果如下图。
第三,分布式调试。这一点是很值得一提的。因为当开发是跨终端的,而且开发过程对开发者还隐藏了大量实现细节,做了高层次的抽象,那么IDE中调试功能的开发会成为难点——或者说调试本身也需要做到高层调试。这一点相信华为在其中也投入了大量工作,这次更新中提到的是“一个断点,调跨端代码”,即调试过程只需要在一个设备上打断点。
即便该设备同时连多设备,在所谓的“分布式”概念下,令其处于调试状态下,则相当于一个设备的一个进程要“穿越”到另外一个设备的另一个进程中。即便是这样,“一个断点就够了”。[w(2]
第四,模拟仿真无限接近真机。就是在不需要真机的情况下,在云端进行模拟,并实时看到开发应用模拟运行的效果。华为部署的云模拟器是基于ARM架构服务器的,“逼近真机”。这项特性在此前DevEco Studio的介绍中就看到过,这次可能是做了进一步的完善。
包括“支持20+种器件及传感器逼真模拟:连续导航,连续计步,以及移动网络(接收短信/来电)等场景”。
再谈谈分布式软总线
以上这些就是相较今年9月HarmonyOS 2.0刚刚问世时,其手机开发者Beta版的一些主要改进项目了。从这些面向开发者的改进,实则就不难发现HarmonyOS处在功能完善阶段:尤其是据更早提出这个系统的目标,包括分布式技术这个看起来需要相当投入的目标——尤其为了上层应用开发的便利,还要对众多开发者隐藏分布式技术的实现细节。
针对这一点,我们尝试再来简单看看分布式软总线这项技术。华为2012实验室计算机网络与协议实验室主任提到[w(3] ,之所以称其为“软总线”,是因为“计算机里头,总线操作对软件是不可见的。我们希望HarmonyOS的通信能力对应用而言,就像总线一样,不需要开发者去关心物理通道实现”。
分布式软总线的概念,此前我已经在好几篇文章中提过了,它是分布式技术的基础之一。即“超级终端”的形成,是需要这根“线”把所有物理设备串联起来,才能实现分布式数据管理、分布式任务调度的。此前我们知道了,分布式软总线具备“自发现、自连接”“高带宽”“低时延”“高可靠”以及“融合组网”等特点。
对于分布式软总线本身的实现,我们还是知之甚少的。分布式软总线在实现上,至少需要解决网络技术基础问题、配置与安全认证问题、性能调优问题等。这次郑凯提到了分布式软总线的“极简通信协议”技术,将OSI网络模型中的3-7层(网络层、传输层、会话层、表示层、应用层)精简为一层,就叫“近场极简通信协议栈”。
“因为OSI是针对广域网,东西很全,但我们要实现业务直达,做精简抽象”…“多层协议流程打通,剪除很多不必要的环节”,以及“避免层间调用和工程开销”。郑凯说。
另外还要做到“多元化协议与算法,智能感知和决策”——“我们需要让协议、软总线,因时因地在繁复庞大的知识库里,找到最优路径,这就要求协议栈模块化,成为智能感知、智能决策、具体执行这样一个完整的系统。”不知道到目前为止,华为是否已经在HarmonyOS上实现了以上这个大工程。
除了传输,华为还需要解决这条“软总线”在网络发现、连接,以及组网方面的问题。比如发现与连接,HarmonyOS期望做到“智能自发现”的“多通路并发优选”;认证阶段,则采用华为账号一站式认证,非首次连接则做了认证过程的简化;连接过程,则有“多路连接通道按需连接”这样的设定。
而在组网相关的部分——因为“分布式软总线”宣传的一个重点,就是蓝牙、WiFi的“异构融合组网”。虽然实现细节仍然很不清楚,不过郑凯这次大致提到了“多协议IP化、动态转换,组件异构融合自组网”;“自协商:网络自构建,协议自协商”;“广覆盖:多协议组网,联通资源孤岛”;“共标准:统一互通标准,促进生态融合”;“强互补:多协议、多介质物理特性互补”。以及涉及整个已组建网络的“多跳自组网”,要做到快速收敛一张“无环网”,并且还有设计冗余链路、多路径传输。
其实开发者不需要关注这些实现细节和过程。在开发demo中,很容易了解到网络的发现过程,是由软总线自动完成;组网过程,开发者也不需要关心组网协议,软总线跨物理介质互通;软总线还隐藏了复杂文件传输实现,开发者不需要关注I/O、协议、平台迁移、性能基线等。
上面这张图是手机与大屏传文件的第三步,传输过程。开发者调用文件传输接口,发送文件,定义文件meta信息的一行代码,软总线底层隐藏逻辑包含的内容也可从图中一目了然。
就华为这一侧来看,仅是分布式软总线上述的这些设计目标,似乎就涉及到极为庞大的工程量。这可能与华为此前在网络通讯技术上的积累有很大的关系。
分布式软总线的这个例子其实很能反映HarmonyOS最终目标的工程量有多浩大。如果从更高层级来看这套系统,这里还可以再举个例子。HarmonyOS采用多内核设计,针对不同设备、应用场景,可以选择不同的系统内核。这其实也是HarmonyOS可覆盖下至几百KB RAM,上至GB级别RAM设备的重要原因。
上面这张图可见,内核层可选Linux Kernel,或者是LiteOS——LiteOS是一个轻量化的更适用于小型IoT设备的内核,而且它还支持MMU,内核/app空间隔离,以及支持POSIX接口,所以许多开源软件可以在LiteOS上直接使用。为了实现多内核的设计,其上需要有一个KAL抽象层,隐藏内核实施细节,面向上层提供基础内核能力,包括进程、线程管理,内存管理,文件系统,网络管理等。
这也是HarmonyOS真正做到“全场景”覆盖的最底层基础。不过其实现难度似乎也相当之大。这些都只是HarmonyOS的组成部分,这张图上其实也能看到上层的各种分布式能力。
其实在活动下午场HarmonyOS 2.0架构、关键技术解读中,还涉及HarmonyOS应用程序框架、应用开发平台,以及的更多讲解。鉴于篇幅的关系,这里就不再展开了。但总体可总结的是,和分布式软总线的那些关键技术一样,为开发者提供的便利,也就意味着是华为需要海量投入去完成的——这个过程恐怕不是短时间内可达到的。
生态构建3个月的成果,和开发者大赛
实际上9月份HDC2020华为开发者大会上,HarmonyOS 2.0问世至今也不过区区3个月时间,似乎华为对生态构建的成绩汇报是以月为单位的,这也表明华为在HarmonyOS生态构建上还是有信心。以下是杨海松在采访中提供的一些数字和信息:
[li]HDC发布会后,鸿蒙成为中国最热的开源项目,没有之一;我们聚集了10万以上的开发者人才生态圈——而且是真正有效的开发者,包括下载鸿蒙源代码、下载过IDE工具、提交过代码、参与过鸿蒙课程的。[/li][li]HDC大会上,有5家合作伙伴与我们签约,目前已经有10家。到年底,我们预计会有20+的SKU的HarmonyOS硬件上市;明年相信这个数字会翻几番。[/li][li]明年的目标是1亿台生态设备会搭载HarmonyOS系统。[/li][li]硬件合作伙伴方面的进展。中国所有头部智能家电企业都在和我们谈,有些已经签约,有些正在签约。[/li][li]应用开发者,我们现在有120+的应用合作伙伴,已经和我们签订了整个HarmonyOS集成开发的协议,同时和我们一起做HarmonyOS的创新。[/li][li]产业链构建,无论硬件、软件还是人才产业链,共建者给我们的反馈也超出预期。已经有5款以上芯片、9个模组、3-4家软硬件集成解决方案合作伙伴签约。预计明年软硬件集成合作伙伴出货量会过千万。[/li]
“生态建立最艰难的过程,就是从零到一的过程,最难的时刻就是现在。”杨海松说。其实上面这些成绩看起来还是相当不错,即便目标的完成大概也会很有压力。作为生态构建的一环,华为也开启了HarmonyOS开发者创新大赛,昨天应该就已经正式上线了,到明年5月15日截止,提供150万元奖金,另会有20名导师负责指导。
最后值得一提的是,杨海松在采访中提到,这次活动是面向开发者的;而面向手机消费用户时,有一些相关HarmonyOS生态的重磅信息尚无法公开。所以未来2C的发布会上,我们预计还会看到一波更有趣的内容更新,那就是更贴近消费用户的系统特性了。
推荐阅读:
鸿蒙2.0具体有哪些改进?明年华为手机都能用上
三星、黑莓、微软都失败了,华为鸿蒙还能成吗?
第三大生态的建立:华为凭什么吸引开发者加入HMS生态?
现场更多HarmonyOS应用演示图集:
|
|