在讨论Harmony OS是否真的让谷歌慌了之前,我们先来对比一下两个操作系统,从架构出发对比一下两个操作系统的设计理念和目标是否是一样的。
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 >子系统 >功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如下所示。
系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:
根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
框架层为HarmonyOS应用开发提供了Java/C/C++/JS等多语言的用户程序框架和Ability框架,两种UI框架(包括适用于Java语言的Java UI框架、适用于JS语言的JS UI框架),以及各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,HarmonyOS设备支持的API也会有所不同。
应用层包括系统应用和第三方非系统应用。HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。FA在进行用户交互时所需的后台数据访问也需要由对应的PA提供支撑。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
Fuchsia OS整体也采用分层架构设计,也被分为了4个不同层次。
对于不太了解内核作用的同学简而言之,Zircon之于Fuchsia,恰如Linux之余于Android。Linux内核驱动了多个操作系统,很多操作系统构建在它之上,比如 Ubuntu、Android、Manjaro、ArchLinux、Debian、Red Hat、SUSE 甚至 Chrome OS ,所以我们也可以大胆预测,如果未来Fuchsia OS 发展良好, Zircon 内核也被证明好用,那么很有可能有更多的操作系统采用这一新内核。
系统服务层(Garnet)
也是直接构建在 Zircon 上的一层名叫 Garnet。 Garnet 包含各种操作系统所需的各种底层功能,包括硬件的驱动程序(网络,图形等)和软件安装。这一层最激动人心的事情是 Escher(图形渲染器),Amber(Fuchsia 更新程序)和Xi Core,它是Xi文本和代码编辑器的底层引擎(今年早些时候已经发布了)。
模块管理层(Peridot)
Peridot 是接下来的这一层,主要处理Fuchsia的模块化应用程序设计, Peridot的另外两个主要组件直接用于模块。 Ledger 可以跨设备保存您在应用/模块中的位置,并同步到您的Google帐户。Maxwell 是一个更复杂的主题,需要更多进一步地深入研究,但是 Maxwell 极有可能是让 Fuchsia 充分施展魔力的点睛之笔,可以提前透露的是,Maxwell 的厉害之处包括 Kronk,也是大家熟知的 Google Assistant。
应用层(Topaz)
Topaz,是这个 Layer Cake 蛋糕的顶层,也是对开发者和用户直接影响最大的一层。Topaz 提供 Flutter 支持,而有了Flutter 的支持,各种华丽的应用程序,可以帮助充实地提供日常使用的功能齐全的应用程序。比如,现在最令人印象深刻的当然是 Armadillo UI,它是 Fuchsia 的主要用户界面和主屏幕。
可以做一个类比,Topaz 这一层在 Android 中可以找到一个对照,这将是你的必备应用程序,如联系人,音乐,文件管理器和文本编辑器 Xi(Topaz中的可视前端连接到Garnet的后端)。即使没有你需要的东西,你也可以简单方便地安装。
Harmony OS 与 Fuchsia OS的主要相同点:
Harmony OS 与 Fuchsia OS的主要不同点:
个人认为Harmony OS成功的可能性更大。虽然从生态上来说,谷歌可以利用Android建立的生态伙伴优势推广Fuchsia OS,但也恰恰是Android完善的生态会给Fuchsia OS的推广造成最大障碍。
相反Harmony OS从架构上更符合物联网时代的需求,然后华为作为主导者具备强大的硬件制造能力,Harmony OS在华为很多手机上已经推送,国内很多公司的冰箱、空调等也都在采用华为鸿蒙系统。这些都有利于Harmony OS系统的产业化发展。
当然,从全球大环境来说,Harmony OS可以在国内做成功,但是要想在国际上推广难度是非常大的。美国的 科技 霸权,导致计算机诞生以来底层技术很少在美国之外的公司诞生并发扬光大。Lua、Ruby等编程语言,Intellij IDEA等算是为数不多的例子。
开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(HarmonyOS)简介及开发环境搭建
开发前的准备:「鸿蒙开发 1」华为鸿蒙应用集成开发环境DevEco Studio安装和设置
了解鸿蒙应用开发的基本开发流程:「鸿蒙开发 2」第一个华为鸿蒙(HarmonyOS)应用程序(App)
本章目标:
1 了解华为鸿蒙应用开发的可视化(低代码)方式
2 通过构建一个简单的具有页面跳转功能的应用
低代码开发方式,即通过可视化界面开发方式快速构建布局、编辑UI界面,可有效降低用户的上手成本并提升用户构建UI界面的效率。
1 打开DevEco Studio,创建一个新工程,选择支持Phone / Tablet / Wearable(手机 / 平板 / s可穿戴)的模板,我们在此直接选择Empty Ability
Project name工程名称填SuperVisual
Development mode开发方式选择Super Visual
其它的可以使用默认设置,点击完成,进入编辑界面
1 在Project(项目)窗口,删除工程运行默认的入口文件夹:“entry >src >main >js>default >pages >index”文件夹
2 在Project窗口,选择工程中的“entry >src >main >js >default >pages”,单击鼠标右键,选择“New >JS Visual”
JS visual name填first,点击完成,进入编辑界面
创建完成后,可以看到“entry >src >main >supervisual>default >pages >page >page.visual”的文件目录结构
3 第一个页面内有一个容器、文本和一个按钮,通过Div、Text和Button组件来实现
(1)分别选中first.visual画面中的Text、Div组件,单击鼠标右键,选择Delete删除
(2)选中UI Control中的Div组件,将其拖至画布
点击右侧属性样式栏中的通用样式图标(General),设置Div组件的高度Height为100%,使其占满屏幕
点击右侧属性样式栏中的样式图标(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示
(3)选中UI Control中的Text组件,将其拖至Div组件的中央区域
点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hello World ”
点击右侧属性样式栏中的通用样式图标(General),设置Text组件的宽(width)为100%,高(height)为100px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为60px,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示
(4)选中UI Control中的Button组件,将其拖至Text组件下面
点击右侧属性样式栏中的属性图标(Properties),设置Button组件的Value属性为 “ Next ”,
点击右侧属性样式栏中的通用样式图标(General),设置按的宽(width)为40%,高(height)为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为40px
至此,第一个页面创建完成
我们可以在预览窗口中看效果,点击右侧边栏的Preview打开预览窗口
1 在Project窗口,选择工程中的“entry >src >main >js >default >pages”,单击鼠标右键,选择“New >JS Visual”
Visual配置界面,JS visual name填second,回车(Enter键)或者点击完成,进入编辑界面
2 第二个页面中有一个容器和文本,通过Div、Text组件实现,现在编辑器已经为我们创建好了,我们就来修改下它们的属性(你也可以删除原有的自己创建,具体步骤参考本章第二节“二 创建第一个页面”)。
选中Text组件,点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hi,I'm always here. ”
点击右侧属性样式栏中的通用图标(General),设置组件的宽(width)为100%,高为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为36px,TextAlign样式为center
这样我们的第二个页面创建成功了
1 在Project窗口,打开工程中的“entry >src >main >js >default >pages >first >first.js”, 导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
2 打开或者切换到first.visual页面,选中画布上的Button组件,点击右侧属性样式栏中的事件图标(Events),鼠标点击Click事件的输入框,选择launch事件
3 在预览窗口中查看项目效果,点击Next按钮后发现我们的页面成功跳转了。
到此,本章的目标就完成了。
2020年9月15日,是特别的一天。
因为美国对华为的芯片新禁令正式生效。
自此,台积电、高通、三星、SK海力士、美光等主要元器件厂商将不再供应芯片给华为。
2019年,华为就推出了鸿蒙系统,积极应对美国禁令。
上周,华为召开了2020开发者大会,华为消费者业务 CEO 余承东宣布了最新的鸿蒙 OS 2.0 ,目标是“共建万物互联的全场景智慧生态”。
针对最新的鸿蒙系统,梁宁老师和鸿蒙的开发者与生态建设者进行了沟通,得到了关于鸿蒙系统的9个关键问题和答案。
我们征询梁宁老师授权,把她和鸿蒙开发者的沟通内容,独家分享给你。
希望能帮助你进一步认识华为的鸿蒙系统。
01. 鸿蒙的开发语言?
硬件驱动 C/C++,应用 JS
02. 鸿蒙与安卓最大的不同?
通过分布式技术,将手机与 IOT 设备进行无线组合,形成超级终端。
2.1 最大好处
让手机应用与 IOT 无缝互通。
以车载导航系统为例,过去通过蓝牙连接,只能播报路况语音。
现在鸿蒙系统提供分布式软总线技术进行连接,不是简单投屏,甚至还能分享 CPU 计算资源。
比如,使用车上 CPU 进行计算后,上传抖音视频时的压缩过程可以放到车上计算,缩短压缩时间,使得上传时间减少,手机功耗也会减少。
用更便捷的方式进行设备之间互相连接,使得应用能够编写一次,跑在不同设备上。
2.2 内核技术
安卓基于Linux Kernel。
鸿蒙为了支持在不同大小和形态下的设备,采取多种内核策略,这样能达到不同设备的最佳性能功耗。
这是安卓不具备的系统底层能力。
本次开源 LiteOS 技术是多款华为实际产品中沉淀出来的内核,12月支持Linux Kernel内核,兼容更多设备。
反正鸿蒙是开源,微内核会在大家眼皮底线长出来。
03. 什么时候、在哪里可以体验鸿蒙?
3.1 目前华为运动手表已经是鸿蒙系统,10月份发布。
华为手表现在是国内手表市场份额第一的产品,非常期待。
3.2 双十一,美的会推出采用鸿蒙系统的 IOT 产品,消费者可以体验到。
3.3 10-11月华为 Mate40 上将能看到一些鸿蒙的特性,可以在 EMUI 11 版本体验到。
3.4 现在华为的旗舰店,也可以体验鸿蒙“碰一碰”万物互联。
04. 鸿蒙计划的 1+8+N 的万物互联和小米的米家连接区别是什么?
小米生态所有产品都可以通过手机操作。
是因为小米生态产品通过加 SDK 通信组件,与小米手机连接,并进行通信。
鸿蒙系统手机与采用分布式技术的底层系统打通,可以实现音视频,甚至 CPU 级别的系统交互。
过去双摄像头、三摄像头发布后,大家调侃是否会出到100个摄像头,通过分布式能力,确实是可以的。
外部设备可以理解为通过无线的方式装载到手机里,你可以认为手机的范畴变大了,是万物互联的超级设备。
05. 鸿蒙系统与安卓系统是否兼容?
鸿蒙系统目前基于安卓系统,有300万个 APP。
鸿蒙选择兼容道路也是十分务实。
已有移植到鸿蒙,只需要在多设备互动的功能中使用的新 API 增量开发,大大降低应用适配难度。
06. 鸿蒙为设备厂商提供哪些支持?
6.1 开源免费
6.2 SDK
6.3 百万级源码
6.4 设备开发工具链
6.5 开发板模组
07. 鸿蒙为开发者提供哪些支持?
7.1 1万 API 调用
7.2 自主开发的框架
7.3 工具链
7.4 模拟器
7.5 需要获得技术支持可以到 Harmonyos.com 官网联系。
也可以自行到开源社区进行代码修改和提交。
开放性有开放原子开源基金会保障。(这个基金会,有时间再介绍)
08. 安卓强大在哪里?
15年积累。
占据近全球87%智能手机用户心智。
400名开发者(99% Google 员工)。
1.2亿行代码。
09. 为什么安卓也需要中国?
9.1 全球1/2的安卓手机是中国品牌。
9.2 全球1/4的安卓手机卖给中国用户。
9.3 Google 网站自己披露的非手机类 ODM 合作伙伴,一共50家左右,都是中国企业,具体来说,7成在深圳,近3成在上海地区。
简单来说,安卓最重要的伙伴,除了三星,全是中国企业!!!
综上,鸿蒙的雄心,三分天下有其一