Harmony系列-Android 开发者启航

内核层分为 内核子系统驱动子系统,其作用在于向上层提供基础内核能力及统一调用入口。

内核子系统,HarmonyOS 采用多内核设计,支持针对不同资源受限设备选用适合的 OS 内核。内核抽象层(KAL,KernelAbstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。

驱动子系统,HarmonyOS 驱动框架(HDF)是 HarmonyOS 硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架

系统服务层

系统服务层是 HarmonyOS 的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:

  1. 系统基本能力子系统集:为分布式应用在 HarmonyOS 多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI 等子系统组成。其中,方舟运行时提供了 C/C++/JS 多语言运行时和基础的系统类库,也为使用方舟编译器静态化的 Java 程序(即应用程序或框架层中使用 Java 语言开发的部分)提供运行时。

  2. 基础软件服务子系统集:为 HarmonyOS 提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX、MSDP & DV 等子系统组成。

  3. 增强软件服务子系统集:为 HarmonyOS 提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT 专有业务等子系统组成。

  4. 硬件服务子系统集:为 HarmonyOS 提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT 专有硬件服务等子系统组成。

根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。

框架层

框架层为 HarmonyOS 的应用程序提供了 Java/C/C++/JS 等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架 API 。

同时为采用 HarmonyOS 的设备提供了 C/C++/JS 等多语言的框架 API,不同设备支持的 API 与系统的组件化裁剪程度相关。

应用层

应用层包括系统应用和第三方非系统应用。

HarmonyOS 的应用由一个或多个 FA(Feature Ability)或 PA(Particle Ability)组成。

其中,FA 有 UI 界面,提供与用户交互的能力;而 PA 无 UI 界面,提供后台运行任务的能力以及统一的数据访问抽象。

基于 FA/PA 开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

vs Android 架构

HarmonyOS 架构以 4 层结构设计,而 Android 官网最新平台架构中Hardware Abstraction Layer硬件抽象层独立后其系统为 5 层结构设计。

file

对齐 Android 架构

  1. Harmony 内核层 对齐 Android Linux内核及硬件抽象层,都是基于内核定制提供底层功能及对外硬件接口;

  2. Harmony 系统服务层 对齐 Android Runtime及原生 C/C++库,由于 Harmony 面向分布式应用设计,多了处理分布式任务/数据/总线模块及处理多语言运行时方舟模块。其他基础软件服务/硬件服务内容大致和 Android 相同,但 Harmony 面向多端设计,采用的子系统集管理方式来划分服务。

  3. Harmony 框架层对齐 Android Java API Framework,这部分是上层开发者最关注的模块。Android 则提供了整个 OS 的功能集,可通过 Java/Kotlin 调用 OS 的功能集 API;Harmony 则提供支持多语言程序框架及Ability框架,可根据不同设备进行 API及系统组建 裁剪(你可理解为阉割)。Ability 就包含了 Harmony 提供的所有功能集。

  4. Harmony应用层 与 Android 应用层从应用开发者角度来看基本无差异。

独有的技术特性

Harmony 有三个重要的技术特性:

  • 硬件互助 资源共享

  • 一次开发 多端部署

  • 统一OS 弹性部署

对于产品服务商而言,第一,三特性能够提供更优质的服务,体现在基于 HarmonyOS 实现多端互联,高效传输。同时可根据设备能力择优运行分布式任务及弹性部署服务功能。

对于产品开发商而言,第二特性无疑最有吸引力。无需为多端适配付出额外成本,做到一次开发多端部署。

硬件互助 资源共享

要实现多端互联就需要总线支撑。 Harmony 为多种终端设别提供了分布式软总线,为设备间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。

file

不同设备遵循 Harmony 提供的通讯协议与总线中枢通信,中枢包含了管理中心用于发现/连接/管理多端设备,同时数据与计算中心参与传输数据计算并由决策中心决定策略下发。

对于单一设备而言,实现不同设备资源融合,设备管理,数据处理,需支持分布式设备虚拟化。多设备间通过分布式设备虚拟化能够形成一个超级虚拟终端。

针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。

file

在分布式软总线基础上,应用程序数据及用户数据能够实现分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。

file

基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性,Harmony 构建的多端生态支持分布式任务的调度。

支持构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。

以应用迁移为例,简要地展示了分布式任务调度能力。

file

一次开发 多端部署

HarmonyOS 提供了用户程序框架、Ability 框架以及 UI 框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。

file

最后:学习总结——Android框架体系架构知识脑图(纯手绘xmind文档)

学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。

下方即为我手绘的Android框架体系架构知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的Android框架体系架构知识脑图原件(包括上方的面试解析xmind文档)

除此之外,前文所提及的Alibaba珍藏版 Android框架体系架构 手写文档以及一本 《大话数据结构》 书籍等等相关的学习笔记文档,也皆可分享给认可的朋友!

——感谢大家伙的认可支持,请注意:点赞+点赞+点赞!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值