小班课资料

给出并比较ios、Android、HarmonyOS的结构

iOS

首先iOS的系统架构分为四个层次:

1、可触摸层(Cocoa Touch layer)
2、媒体层(Media layer)
3、核心服务层(Core Services layer)
4、核心操作系统层(Core OS layer)

可触摸层

操作系统作为计算机资源的调度、支配者,并给顶层用户及软件应用提供方便的接口。这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。(GUI)

往往来说apple的操作UI会更加的舒服与丝滑,这与这一层的设计密不可分。

包括Address Book UI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework等等,这一层基本都是基于 Objective-c的接口.(Objective-C是iOS开发中使用的的一款语言,不过现在用swift更多)

媒体层

通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。

核心服务层

可以通过它来访问iOS的一些服务,这里面仍然会为我们开发人员提供一些方便的接口,不过这些接口的框架偏向于更底层,因此用的是C语言。

包含Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch 、In App Purchase、Location Services、SQLite、XML Support等一些框架,也基本都是基于c语言的接口。

核心操作系统层

操作系统为我们提供的功能有处理机管理、存储器管理、设备管理、文件管理。同样iOS也一样,其中Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。作为app开发者不需要与这一层打交道。它比核心服务层更加接近底层硬件,因此很多的接口仍是基于C语言来写的。

Android

Android的架构也包括 4 层,由上到下依次是应用程序层、应用程序框架层、核心类库和 Linux 内核。其中,核心类库中包含系统库及 Android 运行环境。

我们由上层到下层依次来看

Applications 应用软件层

这一层主要就是顶层用户使用的一些应用软件,也就是我们平时开发的应用软件

Application Framework 应用程序框架

应用程序的框架,这个是非常的重要的,相信Framework这个词大家都应该非常的熟悉了,我们学习Android也主要学的就是这一层,我们通过这些各种各样的框架来实现我们的Application。

Liberaries 库文件

这里往往是一些与底层有关的库文件,是采用C/C++集成的

Linux内核

Android其实就是一个操作系统,其底层是基于Linux Kernel的,这一层主要完成的是操作系统所具有的功能,比如这一层有许多的驱动程序,正是通过这些驱动程序来驱动我们设备上的硬件设备的。

HarmonyOS

从上到下来看

应用层

这仍然是我们平时所做的项目开发出来的应用,供顶层用户使用

应用框架层

Harmony OS提供了很多高级语言的应用框架,如我们熟知的语言java/C/C++/JS/Go以及硬件接口

系统服务层

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

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

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

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

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

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

内核层

这是最底层的,Harmony OS仍是基于Linux内核开发的操作系统,主要包括内核子系统和驱动子系统。

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

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

比较

安卓与Harmony OS

​ 先来看看安卓与Harmony OS,其实仔细一看,在结构上这两者仍是从最顶层应用然后到应用框架,所以熟悉Android开发的人员对于Harmony OS的开发也能快速上手,并且Harmony OS可以兼容Android的应用,使我们不用把一个非常大的工程推到重新从0开始造轮子。

​ 这两者最大的区别就是Android是基于Linux内核的一款操作系统,而Harmony OS是基于微内核技术开发而来的。前者把许多东西集成进内核之中,包括文件系统、驱动、网络协议等等,后者则是分块操作,内核中只有最基本的对资源的调度。这样的技术使得使得Harmony OS的安全性高、稳定性好、不会因为一个小的环节导致死机,但这种架构对于技术人员的要求非常之高,开发难度相当高。

安卓与iOS

​ 安卓是基于Linux开发的完全开源免费的一款实用性非常广的操作系统,而iOS是基于unix开发的闭源收费的操作系统,仅用于苹果产品。

​ 当然iOS闭源当然有它自身的过人之处,首先就是安全问题,由于开源的影响,安卓系统安全性相对于iOS较低,极易受到第三方程序的破坏,iOS系统因严格封闭,所以漏洞较少,当然维护起来也叫苦难。

​ 如果你用过苹果系列的产品,那么你大概率会被朋(dui)友(xiang)误解过回消息不及时。在早些年的iOS系统中的确存在这个问题,有可能别(dui)人(xiang)微信或QQ给你发消息,你得过一个多小时才能接收到。其实这与机子是否是正品、新旧无关,是因为苹果系统拥有墓碑机制和沙盒机制,可限制程序后台自动运行防止占用内存资源;而安卓系统的后台机制,因与系统开源有关,应用后台运行无法强制禁止。

Harmony OS 与 iOS

​ 与安卓类似,Harmony OS也是开源的,相对于iOS的闭源在某些方面有一定的优势。并且Harmony OS可以一次性开发多端适配,这是iOS不能比拟的。

​ 当然iOS的流畅度、舒适度以及UI设计是会比Harmony OS更优的。

posted @   一袍清酒付l  阅读(126)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示