论文部分内容阅读
【摘要】因为众所周知的原因,华为近年来惨遭疯狂打压,2019年Google公司断供华为,限制华为新发布手机预装使用Google GMS服务,这对华为手机海外出货造成重大影响,华为不得不备胎转正推出了鸿蒙操作系统以取代Google的Android系统。目前全世界手机操作系统只有IOS与Android二分天下,新生的华为鸿蒙操作系统是否能与IOS和Android三分天下,引起了诸多苦美久矣的国人好奇、期待与关注。
【关键字】鸿蒙系统,HarmonyOS,OpenHarmony,IOS,Android
中图分类号:TN929 文献标识码:A DOI:10.12246/j.issn.1673-0348.2021.09..012
2021年6月2日,华为发布鸿蒙操作系统正式版本,这可能是将载入史册的事件。在此之前,我们使用的所有手机几乎只有Google公司的Android操作系统和苹果公司的IOS操作系统这两个,而这两个操作系统都是美国的产品。美国以举国之力打压华为,断供手机操作系统与芯片,让国人清醒的认识到让其他国家卡脖子是一种什么样的体验。尽管我们国家占据了全球智能手机出货半壁江山,诞生了诸如小米、Oppo、Vivo、一加等众多著名手机品牌,但在操作系统和芯片受制于人的前提下,仿佛他们都只是著名的“手机组装厂”,每卖一台手机产生的利润,大部分都是别人的。鸿蒙操作系统正式版的发布,承载着多少国人对打破美国操作系统垄断的期待?抱着鸿蒙生态能够健康发展,并且最终能与Android、IOS三足鼎立的期待,我们来正式认识它、了解它加入它。
1. HarmonyOS初始
华为官方对HarmonyOS的定义是一款面向未来的全场景分布式智慧操作系统,它将逐步覆盖“1+8+N”的全场景终端设备,其中“1”代表智能手机,“8”代表PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机,“N”代表loT生态产品。可以看得出,HarmonyOS几乎支持了你所知的目前所有的智能终端,这意味着软件开发者可以将精力更加聚焦于上层业务逻辑,无需关注硬件差异;而设备开发者可以通过HarmonyOS按需调用其他终端的能力。这大大降低了开发者迁移到鸿蒙生态的成本,让鸿蒙生态的健康发展成为了可能。
2. HarmonyOS系统架构
HarmonyOS采用了分层架构,如图2所示一共有四层。
由下到上(注意:越下越底层)分别是:
2.1. 内核层
HarmonyOS的内核子系统采用了多内核的设计。图3中画出了其中的两个内核,一个是Linux Kernel,也就是常说的Linux内核(注意,安卓也是基于Linux开发的,这一点HarmonyOS与Android相同,这也是现在原有的安卓软件包可以转换成鸿蒙软件包的基础),当HarmonyOS应用于像智能手机、车机这样资源不受限制的终端时,自然选择用Linux Kernel;图3中举例的另外一个内核是LiteOS,LiteOS是在2015年由华为发布的一个轻量级物联网操作系统,其体积只有10KB级!因此,当HarmonyOS被应用于像智能摄像头、可视门铃、无人机、智能家居等资源受到限制的終端时,可以选择使用轻量级的LiteOS内核。
内核层中的驱动子系统:硬件驱动框架(HDF)是HarmonyOS硬件生态开放的基础,它提供了统一的外设访问能力和驱动开发管理框架。
2.2. 系统服务层
这一层是HarmonyOS核心力能集合,比如打电话、事件通知、多媒体、位置服务、多模输入等等。这一层涵盖了系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统级、硬件服务子系统集。在实际应用中,根据不同设备的具体使用环境,还可以对这一层子系统集内部进行粒度裁剪。
2.3. 框架层
这一层为HarmonyOS应用开发者提供了Java、C++、JS等多种语言的用户程序框架、Ability框架、UI框架。简单的说,用户程序框架解决的是开发者可以用什么语言来开发HarmonyOS应用;Ability框架中文意思是“能力框架”,也就是HarmonyOS为开发者提供了那些“能力”,我们可以认为HarmonyOS应用是由“Ability”构成的,“Ability”是系统的最小调度单位,也是不同设备之间系统最小迁移单元。UI框架就是用来解决应用长什么样的问题,跟交互界面有关系,HarmonyOS提供了两种UI框架,分别是用于Java语言的Java UI框架和用于JS语言的JS UI框架。
2.4. 应用层
Harmony官方说应用层是基于框架层实现业务逻辑的原子化开发,并在这里提出了两个概念:1.FA(Feature Ability) ,特征能力;2.PA(Particle Ability),粒子能力。FA/PA是HarmonyOS应用的基本组成单元,能够实现特定的业务。其中FA是有UI界面的,PA没有UI界面。举个例子,比如我们要开发视频通话功能,视频通话的主界面有FA提供,但是视频通话过程中摄像头视频采集、AI美颜等能力只提供计算服务,不提供UI界面,属于PA。
FA/PA可以按需下载、加载和运行,基于FA/PA开发的应用能够实现三方服务跨设备分发,为用户提供高效、一致的交互体验。
3. HarmonyOS与Android对比
由于目前HarmonyOS的软件基本上都是以兼容Android软件为主,因此很多人质疑HarmonyOS是一个套了壳的Android系统。对于鸿蒙系统,用户的感知也就是UI好看了一点,系统可能稍微流畅了一点,同时相对于之前的安卓系统更省电了点,其他好像并没有什么差别。
那么,HarmonyOS真的是一个套壳的Android系统吗?HarmonyOS与Android有什么区别呢?
虽然HarmonyOS和Android操作系统都是基于Linux开发的(站在巨人的肩膀上),但是它们还是有区别的,其中最主要的区别在于架构不同。
Android系统是基于Linux的宏内核(Monolithic kernel)设计,宏内核包含了操作系统绝大多数的功能和模块,虽然这些模块各做各的事,但是它们可以被看做是一个整体,它们之间互相紧密关联,一荣俱荣一损俱损,只要有一个模块出错,整个系统就会奔溃,这也是最初安卓系统容易崩溃的原因(现在已经好很多了),与此同时带来的问题是代码规模非常大,很难修改成其它类型的操作系统。
而HarmonyOS是基于微内核(Micro Kernel)设计,微内核只提供操作系统最基础的少数核心功能(任务管理、内存分配等)拥有最高权限,是精简版本,其他模块相互独立,不具有最高权限,也就是说当这些模块出问题的时候,不会阻碍整个系统的运行。相对于宏内核,微内核的开发难度大很多,但是系统的稳定性也高很多。同时带来的好处是基于微内核的操作系统可以根据实际需要剥离很多没有用的部分,这也是华为有鸿蒙万物互联宏愿的底气所在。
【关键字】鸿蒙系统,HarmonyOS,OpenHarmony,IOS,Android
中图分类号:TN929 文献标识码:A DOI:10.12246/j.issn.1673-0348.2021.09..012
2021年6月2日,华为发布鸿蒙操作系统正式版本,这可能是将载入史册的事件。在此之前,我们使用的所有手机几乎只有Google公司的Android操作系统和苹果公司的IOS操作系统这两个,而这两个操作系统都是美国的产品。美国以举国之力打压华为,断供手机操作系统与芯片,让国人清醒的认识到让其他国家卡脖子是一种什么样的体验。尽管我们国家占据了全球智能手机出货半壁江山,诞生了诸如小米、Oppo、Vivo、一加等众多著名手机品牌,但在操作系统和芯片受制于人的前提下,仿佛他们都只是著名的“手机组装厂”,每卖一台手机产生的利润,大部分都是别人的。鸿蒙操作系统正式版的发布,承载着多少国人对打破美国操作系统垄断的期待?抱着鸿蒙生态能够健康发展,并且最终能与Android、IOS三足鼎立的期待,我们来正式认识它、了解它加入它。
1. HarmonyOS初始
华为官方对HarmonyOS的定义是一款面向未来的全场景分布式智慧操作系统,它将逐步覆盖“1+8+N”的全场景终端设备,其中“1”代表智能手机,“8”代表PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机,“N”代表loT生态产品。可以看得出,HarmonyOS几乎支持了你所知的目前所有的智能终端,这意味着软件开发者可以将精力更加聚焦于上层业务逻辑,无需关注硬件差异;而设备开发者可以通过HarmonyOS按需调用其他终端的能力。这大大降低了开发者迁移到鸿蒙生态的成本,让鸿蒙生态的健康发展成为了可能。
2. HarmonyOS系统架构
HarmonyOS采用了分层架构,如图2所示一共有四层。
由下到上(注意:越下越底层)分别是:
2.1. 内核层
HarmonyOS的内核子系统采用了多内核的设计。图3中画出了其中的两个内核,一个是Linux Kernel,也就是常说的Linux内核(注意,安卓也是基于Linux开发的,这一点HarmonyOS与Android相同,这也是现在原有的安卓软件包可以转换成鸿蒙软件包的基础),当HarmonyOS应用于像智能手机、车机这样资源不受限制的终端时,自然选择用Linux Kernel;图3中举例的另外一个内核是LiteOS,LiteOS是在2015年由华为发布的一个轻量级物联网操作系统,其体积只有10KB级!因此,当HarmonyOS被应用于像智能摄像头、可视门铃、无人机、智能家居等资源受到限制的終端时,可以选择使用轻量级的LiteOS内核。
内核层中的驱动子系统:硬件驱动框架(HDF)是HarmonyOS硬件生态开放的基础,它提供了统一的外设访问能力和驱动开发管理框架。
2.2. 系统服务层
这一层是HarmonyOS核心力能集合,比如打电话、事件通知、多媒体、位置服务、多模输入等等。这一层涵盖了系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统级、硬件服务子系统集。在实际应用中,根据不同设备的具体使用环境,还可以对这一层子系统集内部进行粒度裁剪。
2.3. 框架层
这一层为HarmonyOS应用开发者提供了Java、C++、JS等多种语言的用户程序框架、Ability框架、UI框架。简单的说,用户程序框架解决的是开发者可以用什么语言来开发HarmonyOS应用;Ability框架中文意思是“能力框架”,也就是HarmonyOS为开发者提供了那些“能力”,我们可以认为HarmonyOS应用是由“Ability”构成的,“Ability”是系统的最小调度单位,也是不同设备之间系统最小迁移单元。UI框架就是用来解决应用长什么样的问题,跟交互界面有关系,HarmonyOS提供了两种UI框架,分别是用于Java语言的Java UI框架和用于JS语言的JS UI框架。
2.4. 应用层
Harmony官方说应用层是基于框架层实现业务逻辑的原子化开发,并在这里提出了两个概念:1.FA(Feature Ability) ,特征能力;2.PA(Particle Ability),粒子能力。FA/PA是HarmonyOS应用的基本组成单元,能够实现特定的业务。其中FA是有UI界面的,PA没有UI界面。举个例子,比如我们要开发视频通话功能,视频通话的主界面有FA提供,但是视频通话过程中摄像头视频采集、AI美颜等能力只提供计算服务,不提供UI界面,属于PA。
FA/PA可以按需下载、加载和运行,基于FA/PA开发的应用能够实现三方服务跨设备分发,为用户提供高效、一致的交互体验。
3. HarmonyOS与Android对比
由于目前HarmonyOS的软件基本上都是以兼容Android软件为主,因此很多人质疑HarmonyOS是一个套了壳的Android系统。对于鸿蒙系统,用户的感知也就是UI好看了一点,系统可能稍微流畅了一点,同时相对于之前的安卓系统更省电了点,其他好像并没有什么差别。
那么,HarmonyOS真的是一个套壳的Android系统吗?HarmonyOS与Android有什么区别呢?
虽然HarmonyOS和Android操作系统都是基于Linux开发的(站在巨人的肩膀上),但是它们还是有区别的,其中最主要的区别在于架构不同。
Android系统是基于Linux的宏内核(Monolithic kernel)设计,宏内核包含了操作系统绝大多数的功能和模块,虽然这些模块各做各的事,但是它们可以被看做是一个整体,它们之间互相紧密关联,一荣俱荣一损俱损,只要有一个模块出错,整个系统就会奔溃,这也是最初安卓系统容易崩溃的原因(现在已经好很多了),与此同时带来的问题是代码规模非常大,很难修改成其它类型的操作系统。
而HarmonyOS是基于微内核(Micro Kernel)设计,微内核只提供操作系统最基础的少数核心功能(任务管理、内存分配等)拥有最高权限,是精简版本,其他模块相互独立,不具有最高权限,也就是说当这些模块出问题的时候,不会阻碍整个系统的运行。相对于宏内核,微内核的开发难度大很多,但是系统的稳定性也高很多。同时带来的好处是基于微内核的操作系统可以根据实际需要剥离很多没有用的部分,这也是华为有鸿蒙万物互联宏愿的底气所在。