1.1 鸿蒙操作系统概述
在华为“2012诺亚方舟实验室”专家座谈会上,任正非提出要做终端操作系统;2017年,鸿蒙OS内核1.0完成技术验证,并逐步开展内核2.0研发。
2019年,华为鸿蒙商标注册成功,华为正式发布了自主知识产权操作系统(鸿蒙)并在智慧屏上投入使用。
2020年,华为鸿蒙应用到华为手表,同年9月10日,鸿蒙升级至2.0版本,向电视、手表、车机等内存128KB~128MB设备开源,同年12月,华为发布基于鸿蒙OS的手机开发者Beta功能;2021年,鸿蒙操作系统正式开启大规模商用。
1.1.1 鸿蒙操作系统应用场景与未来行业领域的应用分析
新一代信息技术在物联网方面的高度集成和综合运用,在现代以及未来,对产业变革和经济社会绿色、智能、可持续发展具有重要意义。“十三五”规划以来,物联网市场规模稳步增长,物联网技术是支撑国家战略的重要基础,在推动国家产业结构升级和优化中将发挥重要作用。
鸿蒙是应用于物联网的操作系统,可以在智能手机、计算机上运行,也可以在内存较小的家用智能设备上运行,鸿蒙OS一方面具备传统OS的能力,另一方面提供了一套完整的跨OS解决方案,从而实现不同设备之间的互联互通。
2020年,“新基建”得到进一步发展,5G基站、工业互联网、数据中心等领域加快建设,而物联网作为新型基础设施的重要组成部分,同样得到快速发展,在此期间以至未来,鸿蒙系统可发展的空间逐步扩大。
鸿蒙面向IoT的分布式设备协同能力,最直接面向广泛的物联网设备,包括智能音箱、智能穿戴、智能电视、智能家用电器,以及其他IoT终端应用,最终目的在于将碎片化的各种智能设备统一到“超级终端”,公开数据显示,目前已经有超过1000家硬件厂商、300多家App服务商,以及50万以上的开发者共同参与到了鸿蒙生态建设中。
●图1-2 全场景终端设备1+8+N
如图1-2所示,华为鸿蒙系统作为全场景分布式智慧操作系统,将逐步覆盖1+8+N全场景终端设备(“1”代表智能手机;“8 代表”PC、平板计算机、手表、智慧屏、AI音箱、耳机、AR/VR眼镜、车机设备;“N”代表loT生态产品)。
1.1.2 鸿蒙操作系统技术特性概述
HarmonyOS有三大特征:设备之间硬件互助,资源共享;一次开发,多端部署;统一OS,弹性部署。
1)设备之间硬件互助,资源共享特征是指:搭载该操作系统的设备在系统层面融为一体、形成超级终端,不同设备之间硬件互助、资源共享,使用设备的硬件能力可以弹性扩展,可以为用户提供流畅的全场景体验;这种能力依赖的关键技术包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度等。
●分布式软总线是智能手机、平板计算机、智能穿戴、智慧屏、车机等分布式设备的通信基座,如在智能家居方面,智能手机可以“碰一碰”和烤箱连接,自动按照菜谱设置烹调参数,控制烤箱来制作菜肴,如图1-3所示为分布式软总线示意图。
●分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端,如在智慧屏上玩游戏时,借助智能手机的重力传感器、触控能力等将智能手机虚拟化为遥控器来操作游戏,如图1-4所示为分布式设备虚拟化示意图。
●图1-3 分布式软总线示意图
●图1-4 分布式设备虚拟化示意图
●分布式数据管理可实现应用程序数据和用户数据的分布式管理,用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,跨设备的数据处理如同本地数据处理一样方便快捷,如使用手机拍摄的照片可以在登录了同账号的其他设备(如平板计算机)上快速浏览,如图1-5所示为分布式数据管理示意图。
●分布式任务调度是分布式服务管理(发现、同步、注册、调用)机制,支持跨设备应用远程启动、调用、连接及迁移等操作,例如,用户在驾车出行前在智能手机上规划好导航路线,上车后导航自动迁移到车机上,下车后,导航自动迁移回智能手机,如图1-6所示为分布式任务调度能力示意图。
●图1-5 分布式数据管理示意图
●图1-6 分布式任务调度能力示意图
2)一次开发,多端部署特征是指HarmonyOS提供了用户程序框架、Ability框架及UI框架。UI框架支持使用Java、JS、TS语言进行开发,可以在智能手机、平板计算机、智能穿戴、智慧屏、车机上显示不同的UI效果,如图1-7所示为一次开发、多端部署示意图。
3)统一OS,弹性部署特征是指HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,降低硬件设备的开发门槛。
1.1.3 鸿蒙应用基础知识概述
HarmonyOS的用户应用程序包以App Pack(Application Package)形式发布,每个App Pack是由一个或多个HAP(HarmonyOS Ability Package),以及描述每个HAP属性的pack.info组成。
●图1-7 一次开发、多端部署示意图
HarmonyOS应用代码围绕Ability组件展开,HAP是Ability的部署包,一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为Entry和Feature两种模块类型,如图1-8所示。
●图1-8 App逻辑图
●Entry是应用的主模块。一个App中,对于同一设备类型,可以有一个或多个Entry类型的HAP来支持该设备类型中不同规格(如API版本、屏幕规格等)的具体设备。
●Feature是应用的动态特性模块。一个App可以包含一个或多个Feature类型的HAP,也可以不含。
Ability是应用所具备能力的一个抽象概念。Ability是应用的基本组成单元,能够实现特定的业务功能。Ability分为两种:Feature Ability简称FA,主要用来实现UI界面;Particle Ability简称PA,主要用来实现无UI界面,包含Service模板(用于提供后台运行任务)和Data模板(用于对外部提供统一的数据访问)。
应用中的第三方代码(如so、jar、bin、har等二进制文件)存放在libs库文件目录中;应用的资源文件(字符串、图片、音频等)存放于resources目录下;配置文件(config.json)用于声明应用的Ability,以及应用所需权限等信息;pack.info描述应用软件包中每个HAP的属性,由IDE编译生成(其中name表示HAP文件名;module-type表示模块类型,entry或feature;device-type表示支持该HAP运行的设备类型)。