【鸿蒙开发】第一章 简介

1 鸿蒙简介

首先我们得了解HarmoneyOSOpenHarmoney有什么区别,下面是官方对它们的简述:

  1. HarmonyOS:鸿蒙系统(鸿蒙 OS)是一款"面向未来"、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备
  2. OpenHarmony:是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景全连接全智能时代、基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。

怎么理解呢?OpenHarmoneyHarmoneyOS的核心,HarmoneyOS是基于OpenHarmoney的扩展

OpenHarmony的地位相当于安卓HarmonyOS就相当于基于安卓打造的EMUI。华为开源OpenHarmony,把它捐献出来,就是想所有厂商可以基于OpenHarmony开发出像MIUIColor OS等属于且适合厂商自己的操作系统。OpenHarmony相当于是华为做的毛坯房,HarmonyOS是基于这个毛坯房做的精装房,而且这个毛坯房谁都可以使用。HarmonyOS拥有OpenHarmony的所有优秀特质,又不同于OpenHarmony,因为它拥有更多的功能和特性

而所谓的鸿蒙北向开发为应用开发南向开发为设备开发。如下图所示:

2 鸿蒙系统架构

HarmonyOS整体遵从分层设计,从下向上依次为:内核层系统服务层框架层应用层。系统功能按照"系统 > 子系统 > 功能/模块"逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。

2.1 内核层

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

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

2.2 系统服务层

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

  1. 系统基本能力子系统集 :为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。其中,方舟运行时提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。
  2. 基础软件服务子系统集 :为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX、MSDP&DV等子系统组成。
  3. 增强软件服务子系统集 :为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
  4. 硬件服务子系统集 :为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
    根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。

2.3 框架层

框架层为HarmonyOS的应用程序提供了Java/C/C++/JS等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架API;同时为采用HarmonyOS的设备提供了C/C++/JS等多语言的框架API,不同设备支持的API与系统的组件化裁剪程度相关。

2.4 应用层

应用层包括系统应用第三方非系统应用HarmonyOS的应用由一个或多个FA(Feature Ability)PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

3 鸿蒙开发工具

鸿蒙开发工具DevEco StudioHarmoneyOS官网上下载的是HarmoneyOS的开发工具,而OpenHarmoney官网下载的版本一般会比HarmoneyOS官网下载的新,因为OpenHarmoney作为核心无论开发工具、api版本都是最先更新的,所以推荐使用OpenHarmoney官网下载DevEco Studio

4 鸿蒙开发语言

HarmonyOS提供了支持多种开发语言的API,供开发者进行应用开发。

  1. 以前版本支持:的开发语言包括ArkTSC/C++JS(JavaScript)CSS(Cascading Style Sheets)HML(HarmonyOS Markup Language)JavaXML(Extensible Markup Language)
  2. 鸿蒙3.0之后:开发语言主要支持ArkTSJS语言。Api9后主推Stage模型,使用ArkTS开发。

5 鸿蒙UI编程框架

HarmonyOS3.0发布以来,华为官方开始主推ets+ArkUI开发模式,逐渐抛弃Java,为以后去安卓化做铺垫。编程框架用于帮助开发者构建跨设备应用,在OS架构上属于上层框架。框架组成部分有:开发模型声明式UI范式系统API

方舟开发框架(简称ArkUI)是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,帮助您提升HarmonyOS应用界面开发效率30%。您只需使用一套ArkTS API,就能在多个HarmonyOS设备上提供生动而流畅的用户界面体验。

5.1 ArkUI架构

3.0之后主推基于 ArkTS 的声明式开发范式

5.2 声明式开发范式

  1. 应用界面是由一个个页面组成,ArkTS是由ArkUI框架提供,用于以声明式开发范式开发界面的语言。
  2. 声明式UI构建页面的过程,其实是组合组件的过程,声明式UI的思想,主要体现在两个方面:
    (1)描述UI的呈现结果,而不关心过程
    (2)状态驱动视图更新
相关推荐
老猿讲编程27 分钟前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk1 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*1 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue1 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man1 小时前
【go从零单排】go语言中的指针
开发语言·后端·golang
萧鼎3 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸3 小时前
【一些关于Python的信息和帮助】
开发语言·python
疯一样的码农3 小时前
Python 继承、多态、封装、抽象
开发语言·python
^velpro^3 小时前
数据库连接池的创建
java·开发语言·数据库
秋の花3 小时前
【JAVA基础】Java集合基础
java·开发语言·windows