--文末赠书--
近期,HarmonyOS NEXT纯血鸿蒙正式开启公测引发热议,有网友称纯血鸿蒙具有开天辟地的意义!
HarmonyOS NEXT,也被称为纯血鸿蒙,是全栈自研的系统底座。
该系统放弃了传统的AOSP(Android Open Source Project)代码,仅支持鸿蒙内核及鸿蒙系统的应用,彰显了中国在操作系统领域的自主可控能力。
HarmonyOS NEXT彻底摆脱了Android的依赖,凭借分布式架构,实现多设备协作。
这一技术优势,使得应用开发者能够在智能手机、智能家居、可穿戴设备等多种平台上开发互联应用,大大简化了跨平台开发的复杂性。
由于这一特性,各大应用需要单独进行适配,以开发对应的鸿蒙原生应用。
“鸿蒙之父”王成录认为,如果用PC时代的微软、智能手机时代的谷歌以及苹果作为参照物,开源鸿蒙生态的成熟及成功,开发者数量至少要在2000万。这一呼吁引起了全球开发者的关注,也意味着市场对HarmonyOS开发人才的需求将快速增长。
为了满足大家对纯血鸿蒙的好奇,本文就从HamonyOS发展历程开始讲起,逐步深入其系统架构及应用,一探究竟!
HamonyOS是由华为自主研发的面向全场景的分布式操作系统,旨在将人、设备、场景有机地联系起来,打造一个超级虚拟终端互联世界,让消费者在多种智能终端设备中畅享全场景体验。
下面通过表1-1回溯HarmonyOS的发展历程。
表1-1 HarmonyOS的发展历程
2024年1月,华为举行了“鸿蒙生态千帆启航”发布会,正式宣布 HarmonyOS NEXT鸿蒙星河版系统的开发者预览版开放申请。
截至本文写作时,已经有超过200家头部企业参与HarmonyOS原生应用的开发,305所高校学生参与鸿蒙活动,超过38万名开发者通过HarmonyOS认证,鸿蒙生态乘风千帆而起。
说到这里,相信大家迫不及待地想要学习HarmonyOS开发方法了,接下来就正式开启HarmonyOS探索之旅。
HarmonyOS系统
在HarmonyOS NEXT系统发布之前,HarmonyOS系统包含两种:一种是HarmonyOS,另一种是OpenHarmony。
从支持应用运行的角度看:HarmonyOS系统同时支持Android应用、HarmonyOS应用运行;OpenHarmony系统不支持Android应用运行,只支持HarmonyOS应用运行。
从支持应用开发语言看:HarmonyOS系统应用开发语言支持Java、JavaScript、C++;OpenHarmony系统应用开发语言支持ArkTS、JavaScript、C++。
从系统使用场景看:HarmonyOS系统只用于提供给华为终端设备使用,类似于Android系统;OpenHarmony系统提供了鸿蒙基础能力的底座,可供手机、嵌入式设备等使用,类似于AOSP。
在HarmonyOS NEXT系统发布后,HarmonyOS系统可直接升级至HarmonyOS NEXT。
注:对于本文提到的HarmonyOS系统,如无特殊说明,均指HarmonyOS NEXT系统。
HarmonyOS系统架构
为了更好地理解HarmonyOS系统是如何运作的,先来看HarmonyOS系统的整体架构,如图1-1所示。HarmonyOS系统遵从分层设计,从下向上依次为内核层、系统服务层、框架层和应用层。
1.内核层
内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(Kernel Abstract Layer,KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
驱动子系统:HDF(硬件驱动框架)是系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
2.系统服务层
系统服务层是HarmonyOS系统的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几部分。
图1-1 HarmonyOS系统的整体架构
系统基本能力子系统集:为分布式应用在多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、公共基础库、多模输入、图形、安全、AI等子系统组成。
基础软件服务子系统集:提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X)等子系统组成。
增强软件服务子系统集:提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
硬件服务子系统集:提供硬件服务,由位置服务、用户IAM、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
3.框架层
框架层为应用开发提供了C、C++、JavaScript等多语言的用户程序框架和Ability框架,适用于JavaScript的ArkUI框架。根据系统的组件化裁剪程度,设备支持的API也会有所不同。
4.应用层
应用层包括系统应用和第三方非系统应用。应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
HarmonyOS应用
如表1-2所示,HarmonyOS应用有两种,一种是元服务,另一种是HarmonyOS App。
表1-2 HarmonyOS应用的种类
一览应用包组成
1. 应用包组成
HarmonyOS应用是以.app文件的形式发布到应用市场的,但是可安装的最小单位是.hap文件,如图1-2所示为HarmonyOS应用的基本组成。
图1-2 HarmonyOS应用的基本组成
App(Application Package)为应用上架格式,不能直接手动安装运行,可以包含一个或多个HAP包。
HAP(Harmony Ability Package)为应用安装的基本单位,可以独立安装和运行,HAP包可以包含.abc文件(应用字节码文件)、.so文件、resource文件和配置文件。
HAP包有两种类型:一种是entry类型,它是应用的主模块,包含应用的入口界面、入口图标和主功能特性;每一个应用分发到同一类型的设备上的应用程序包,都只能包含唯一一个entry类型的HAP包,如图1-2中的EntryHAP;另一种是feature类型,它是应用的动态特性模块,一个应用中可以包含一个或多个feature类型的HAP包,也可以不包含,如图1-2中的FeatureHAP。
HarmonyOS提供了两种共享包:静态共享包(Harmony Archive,HAR)和动态共享包(Harmony Shared Package,HSP),都是用于实现代码和资源的共享,如图1-2中的FeatureHSP。HAR与HSP的主要区别如表1-3所示。
表1-3 HAR与HSP的主要区别
图1-3 HAR被其他模块依赖
图1-4 HSP被其他模块依赖
2. 应用包开发调试与发布部署流程
图1-5展示了HarmonyOS应用从编译发布到上架部署的流程。
图1-5 HarmonyOS从编译发布到上架部署的流程图
每个HarmonyOS应用中都至少包含一个.hap文件,可能包含若干.hsp文件,也可能不包含,应用中的所有.hap与.hsp文件合在一起被称为Bundle,其对应的bundleName是应用的唯一标识。
当应用发布上架到应用市场时,需要将Bundle打包为一个.app后缀的文件,这个.app文件被称为App Pack(Application Package),与此同时,DevEco Studio工具会自动生成一个pack.info文件。pack.info文件描述了App Pack中每个HAP和HSP的属性,包含App中的bundleName和versionCode信息,以及Module中的name、type和abilities等信息。
HarmonyOS应用上架到应用市场后,会校验App签名,并拆分出其中的HAP、HSP,然后进行重签名,最终按照HAP、HSP的维度分发部署到用户的终端设备。
以上摘自《HarmonyOS NEXT启程:零基础构建纯血鸿蒙应用》一书,更多相关内容可阅读本书!
↑双十一优惠中↑
双十一优惠中,快快抢购吧!
送书环节又来了
感谢大家一直以来的陪伴与支持
送书活动参与方法
👇👇👇
1、关注「前端技术编程」公众号
2、回复关键词:抽奖 获取抽奖码
本次共包邮赠送3本书籍
回复关键词:抽奖 获取