真的告别安卓了?揭秘HarmonyOS NEXT纯血鸿蒙

--文末赠书--

近期,HarmonyOS NEXT纯血鸿蒙正式开启公测引发热议,有网友称纯血鸿蒙具有开天辟地的意义!

HarmonyOS NEXT,也被称为纯血鸿蒙,是全栈自研的系统底座。

该系统放弃了传统的AOSP(Android Open Source Project)代码,仅支持鸿蒙内核及鸿蒙系统的应用,彰显了中国在操作系统领域的自主可控能力。

HarmonyOS NEXT彻底摆脱了Android的依赖,凭借分布式架构,实现多设备协作。

这一技术优势,使得应用开发者能够在智能手机、智能家居、可穿戴设备等多种平台上开发互联应用,大大简化了跨平台开发的复杂性。

由于这一特性,各大应用需要单独进行适配,以开发对应的鸿蒙原生应用。

“鸿蒙之父”王成录认为,如果用PC时代的微软、智能手机时代的谷歌以及苹果作为参照物,开源鸿蒙生态的成熟及成功,开发者数量至少要在2000万。这一呼吁引起了全球开发者的关注,也意味着市场对HarmonyOS开发人才的需求将快速增长。

为了满足大家对纯血鸿蒙的好奇,本文就从HamonyOS发展历程开始讲起,逐步深入其系统架构及应用,一探究竟!

HamonyOS是由华为自主研发的面向全场景的分布式操作系统,旨在将人、设备、场景有机地联系起来,打造一个超级虚拟终端互联世界,让消费者在多种智能终端设备中畅享全场景体验。

下面通过表1-1回溯HarmonyOS的发展历程。

表1-1  HarmonyOS的发展历程

6417d9d18747ea9dec524ff3fd98f5f0.png

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系统的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几部分。

0abed4bd278e92db793f72ba8d356654.png

图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应用的种类

8c6957c653f709c6bfe79436b33ff092.png

一览应用包组成

1.  应用包组成

HarmonyOS应用是以.app文件的形式发布到应用市场的,但是可安装的最小单位是.hap文件,如图1-2所示为HarmonyOS应用的基本组成。

267317e58a06ff7ae9a6db83e3017fb2.png

图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的主要区别

cf2edd7874155f4d2abe2f7e0ff9c817.png

15413cb175148ef55569e0aaa6b0fbd2.png

图1-3  HAR被其他模块依赖

1b67ed369da95c7b61d5d078e64fe21f.png

图1-4  HSP被其他模块依赖

2.  应用包开发调试与发布部署流程

图1-5展示了HarmonyOS应用从编译发布到上架部署的流程。

7f7fccea12976d97940edd923fa9bf31.png

图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的维度分发部署到用户的终端设备。

23806ee87589beab74c8adfa1c6eddf0.gif

以上摘自《HarmonyOS NEXT启程:零基础构建纯血鸿蒙应用》一书,更多相关内容可阅读本书!

↑双十一优惠中↑

7a3dd5c0de16bf6cea0141f731066696.jpeg

双十一优惠中,快快抢购吧!

送书环节又来了

感谢大家一直以来的陪伴与支持

7f7d3fd7ea2d793fdc2ba45cf0fec5df.gif

8399f475aabd5cb3919e65eb83ed099b.png

送书活动参与方法

f682d657bcc6b833d83b473534011f41.png

 👇👇👇

f216339a42d5fc38f6e3227b43c02695.jpeg

1、关注「前端技术编程」公众号

2、回复关键词:抽奖 获取抽奖码

本次共包邮赠送3本书籍

2bcd11acabb50184f2b142ecd104cd18.jpeg

回复关键词:抽奖 获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值