Google的Fuchsia OS到底是什么

2016年,谷歌开始了新一代操作系统Fuchsia OS的开发。该系统在当时被普遍认为是用来在将来替代Android系统的。然而,时间飞快,直到今日,Fuchsia OS似乎也没有太多的出现在大众的视野中,甚至很多从业人员对其也并不了解。实际上,Google也层低调的公布过一些进展,例如2017年的五月曾经发布过很有Fuchsia OS特征的Fuchsia OS的主界面,2018年层宣布Fuchsia OS成功在PiexlBook上成功运行。2019年的6月底,Goolge低调的上线了Fuchsia 的开发者网站,后又适逢华为鸿蒙系统的发布,而华为鸿蒙系统也被理解为是android系统的替代者,Fuchsia OS又重新回到了大众的视野。
随着人们对鸿蒙系统关注度的提高,我觉得最好能简要介绍下Fuchsia到底是什么。

Fuchsia 的 UI

在次主要讨论Fuchsia OS 在17年放出的主界面UI。
当你启动并进入系统后的第一感受,就是在风格上大量的使用了Material Design。Fuchsia使用了特有的图形渲染器Escher,专门用来处理阴影。这使的窗口、通知、按钮、弹出框分层更清晰更有层次感。使得壁纸不再只是窗口后面的一张图片,而是像从窗口中看出去的风景。
Fuchsia 当前的UI可查看下方的视频(有感兴趣的可以给我留言留下邮箱获取此demo)。在该UI上,明显的分为了三部分。中间部分是一个新的布局,据官方说明,叫做Armadillo,这部分用来显示系统时间,当前用户,以及系统状态。同时,它也是一个快速设置的入口,点击用户头像可进入快速设置页,有一些对设备及用户的设置。下部分,是一个依托于Google Assisant的建议栏,该部分通过像助手发起人性化的请求(语音或者文字输入),助手给出相应的建议。 上部分是当前进行中的任务,不同于android的应用,这里的任务流程来自于不同的应用里面,然后可根据用户的需求自由组合成Story,它代表的是一系列正在进行中的活动。不同的story 可以继续组合嵌套,从而成为更大的story(用户故事)。

下方的助手给出的建议可能会执行多步操作,这些操作将打开不同的应用组合成完整的story供用户使用。这将是对用户交互的一个有趣的革命。

Fuchsia看起来就是为Assistant服务的

Fuchsia 就是为了容纳Google Assistant而服务的。在Fuchsia上,你所见、所做及所能做的对于Fuchsia来说都是可见的。——至少现在Google的文档是这样描述的。
在Android手机上,Google 助手在你需要的时候,可以读取屏幕信息为它所用,而在Fuchsia上,Google助手则时刻更深入的读取你的信息。当你浏览网页查看美食推荐,然后查看日历挑选日期,然后对助手说:“邀请Samantha共进午餐”时,助手已经获取到了你所做过操作的内容。
助手将读取所有的==实体==(在Fuchsia上的一个概念:表示可识别的人、地点、事物、事件或概念)。并且将会读取过去在屏幕上曾经出现过的实体。这些过去的实体将更有助于助手读取并操作现在上下文中的实体。
Fuchsia 更像时一个个人助手,它收集你的操作,提取你操作中的一个个实体数据,然后利用这些收集的实体数据构成它执行的上下文,从而给出更人性化的建议。

Fuchsia 是一个跨设备OS

当今时代,每个人都有很多的电子设备:手机、平板、电脑、可穿戴的手表等。Fuchsia 致力于在这些不同的设备间进行无缝衔接使体验做到一致。要做到这样效果的难题在于维护同一的上下文,因此Fuchsia引入了Ledger的概念。Leger是一个分布式的存储系统。一旦登陆Google账号,就会自动将设备中需要存储的上下文数据同步到云端。设想未来的场景:当你在手机浏览器里浏览一个页面,然后打开笔记本的浏览器时将正好进入之前未关闭的页面;笔记本上正在编辑的文档,可以在手机上打开;正在工作的设备因为电池没电而关机,找一台公共设备登陆账号即可继续工作。
至此,由于台式机、笔记本的Fuchsia和手机的Fuchsia并没有区别,所以可能并不需要如此多的设备,只需将手机通过某种扩展链接大屏设备,即可享受使用大屏设备的体验来使用手机。

Fuchsia的架构优于Android

Android的碎片化严重。在Treble架构(为了方便系统升级,将oem定制的东西和Framework分离)引入之前,OEM厂商升级Android的新特性需要将自己的修改patch到新版本的系统上,这是非常麻烦的。即使是有Treble之后,OEM厂商也没有积极的将Treble架构应用在自己的系统上。
Fuchsia采用zircon内核来解决这一问题,zircon被设计为独立可升级的。为了达到这一目的,应用程序与内核隔离开来。在内核和应用层之间插入隔离层,使内核独立升级后不至于影响到应用的运行。

Fuchsia面向开发者方面

Fuchsia的大多数UI都是用DART(一种被设计成让JavaScript和Java开发人员感到熟悉的语言)通过Frutter框架实现的。还支持Go语言。谷歌还通过引入了swift支持来引入苹果的开发者群体。不过,最重要的是,大多数这些语言都支持互操作。通过FIDL(Fuchisa接口定义语言)协议,DART UI代码可以直接与Go后端或任何其他语言代码互相调用。这使开发人员更具表现力,并为手头的工作使用最好的语言开发。

总结起来,Fuchsia从最初就考虑更友好的支持OEM厂商使用和更便捷的吸引各个领域的开发人员。在使用时,通过及时的自动同步用户的使用记录,以实现在各个设备之间的无缝衔接体验。同时将从这些使用的数据中抽取出实体,形成用户使用的上下文环境,提供给个人助手以给出符合当前用户所需的建议。这些建议能够自动分解、串联起系统中的应用实现一些列的任务,展现在UI上并提供给用户服务。Fuchsia的交互核心时基于事物,完全打破了应用之间的界限。用户对于Fuchsia的感知和认识将是一个行为一致的个人助理,它存在于用户的手表中、手机中、电视中、车辆中及运行着Fuchsia系统的任意设备中。

robot wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!