一、什么是HarmonyOS

  • 2019年8月9日,华为在华为开发者大会上正式发布HarmonyOS 1.0,同时将该操作体系开源。
  • 2020年9月10日,HarmonyOS 2.0 正式发布。
  • 2022年11月4日,全新的HarmonyOS 3.1发布,引进全新的Stage模型(准备放弃FA模型)。

二、目标

本文章将带领咱们掌握以下技能:

  • 理解HarmonyOS根本概念;
  • 领会HarmonyOS规划理念;
  • 区别HarmonOS技能架构层次;
  • 了解HarmonOS部件化架构规划;
  • 掌握HarmonOS技能特性;
  • 了解HarmonOS体系安全;

三、HarmonyOS简介

万物互联年代正在开启

HarmonyOS根本概念

经过十多年的开展,传统移动互联网的添加盈利已渐见顶,IoT年代即将到来。

新场景带来的应战

不同的设备类型意味着不同的传感器才能、硬件才能。屏幕尺寸、操作体系和开发言语,以及交互办法等。同时跨设备协作也让开发者面对这分布式开发带来的各种复杂性,适配和办理工作也将非常巨大。当时移动运用开发中遇到的首要应战包括以下一种:

  1. 针对不同设备上的不同操作体系,重复开发,维护多套版本。
  2. 多种言语栈,对技能人员技能要求较高。
  3. 多种开发结构,不同的编程范式。
  4. 指令式编程,需求重视细节,改变频繁,维护本钱高。

移动终端运用生态面对革新

传统运用具有以下优缺陷:

长处:

  • 功用完全
  • 全体体会好

缺陷:

  • 厚重
  • 开发周期长、本钱高
  • 信息、运用孤岛(传统运用之间是互相独立的、碎片化的)
  • 以运用未中心,而非用户为中心
  • 需求用户主动重视等显性操作

量化程序实体正在成为新的趋势,轻量化程序具有“即用即走、无需装置卸载、永远最新”的特征,推动了App依据查找下载的“人找运用”的传统分发想“服务找人”的才智分发演进。

鸿蒙生态迎接应战

  • 单一设备延伸打多设备

    运用一次开发就能在多个设备上运转,软件实体可以从单一的设备转移到其他设备上,且多个设备之间可以协同运转,给顾客供给全新的分布式体会。

  • 厚重运用方式到轻量化服务方式

    供给轻量化的服务,最小化资源耗费,一步直达,快速完结顾客特定场景的使命。

  • 才智分发到AI加持下的才智分发

    为顾客供给才智服务场景服务,完结“服务找人”。

  • 纯软件到软硬芯协同的AI才能

    供给软硬芯协同话的原生AI才能,全面满意运用高功用诉求。

HarmonyOS体系界说

  • HarmonyOS是一款面向万物互联年代的、全新的分布式操作体系。
  • 在传统的单设备体系才能根底上,HarmonyOS提出了依据同一套体系才能、设备多种终端形状的分布式理念,可以支撑手机、平板、智能穿戴、才智屏、车机等多种终端设备,供给全场景(移动办公、运动健康、交际通讯、媒体娱乐)事务才能。

HarmonyOS开展史

2019年 > HarmonyOS正式发布并开源中心代码。

2020年 > 鸿蒙智联面向硬件生态同伴全面敞开

2021年 > 手机及多种智能终端设备搭载HarmonyOS 2

2022年 > 全新的HarmonyOS 3.1发布并推出Stage模型,五大场景体会继续化鸿蒙生态愈加成熟

2023年 > HarmonyOS 4 发布

2024年 > HarmonyOS NEXT 正式发布,扔掉对AOSP的支撑,鸿蒙原生运用全面发动。(不出意外的话,因为现在还是2023年,偷笑.jpg)

ArkTS

ArkTs 是华为自研的开发言语。它在TypeScript的根底上,匹配ArkUI结构,拓展了声明式UI、状况办理等相应的才能,让开发者以更简练、更天然的办法开发跨端运用。

@Entry
@Component
struct SecondPage {
  @State myText: string = 'World'
  build() {
    Column() {
      Text(`Hello ${this.myText}`)
        .fontSize(50)
      Divider()
      Button('Click me')
        .onClick(() => {
          this.myText = 'ArkUI'
        })
        .height(50)
        .width(100)
        .margin({ top: 20 })
    }
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

HarmonyOS根本概念

ArkTS的根本组成

HarmonyOS根本概念

兼容JS/TS言语依据JS/TS构建

ArkUI

ArkUI是一套构建分布式运用界面的声明式UI开发结构。它运用极简的UI信息语法、丰厚的UI组件、以及实时界面预览东西,提升开发功率。运用一套ArkTS API,就能在多个HarmonyOS设备上供给生动流通的用户界面体会。

逻辑和UI别离经过运用数据双向绑定机制传递页面变化逻辑,将流通7个过程简化为2个过程。可将跨端搬迁和协同的开发代码量下降40%以上。

HarmonyOS根本概念

方舟编译器(ArkCompiler)

  • ArkCompiler是华为自研的共同编程途径,包括编译器、东西链、运转时等关键部件,支撑多种编程言语、多种芯片途径联合编译、运转而规划的共同编程运转时途径。支撑包括动态类型和静态类型言语在内的多种编程言语,如:JS、TS、ArkTS等。

  • 方舟编译器是鸿蒙体系作为手机、PC、平板、电视、车机和智能穿戴设备等多种设备共同操作体系的编译运转时底座。首要分成两个部分:

    1. 编译东西链

      编译东西链以ArkTS/TS/JS源码作为输入,将其编译成为ABC(ArkCompiler Byte Code,即方舟字节码)文件。

    2. 运转时

      运转时直接运转字节码文件,完结对应言语标准的语义逻辑。

方舟编译器具有以下特征:

  1. AOT编译方式

    ArkCompiler运用ArkTS的静态类型信息,进行类型推导并生成目标描述和内联缓存,加快运转时对字节码的解说履行;AOT(Ahead-of-Time)Compiler运用静态类型信息直接将字节码编译生成优化机器码,让运用发动即可运转高功用代码,提升运用发动和运转功用。

  2. LiteActor轻量化并发

    ArkCompiler运转时在HarmonyOS上供给了Worker API支撑并发编程。在运转时实例内存阻隔的根底上,ArkCompiler经过同享运转实例中的不可变或许不易变的目标、内建代码块、办法字节码等技能手段,优化了并发运转实例的发动功用和内存开销。

    HarmonyOS根本概念

  3. 源码安全

    ArkCompiler会把ArkTS/TS/JS编译为方舟字节码,运转时直接运转方舟字节码。并且ArkCompiler运用多种混杂技能供给更高强度的混杂与维护,使得HarmonyOS运用包中装载的是多重混杂后的字节码,有用提高了运用代码安全的强度。

开源敞开的生态环境

  • HarmonyOS是华为经过OpenHarmony项目,结合商业发行版添加才能,构建华为自研产品的完好处理计划。
  • OpenHarmony是由敞开原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全链路、全智能年代,依据开源的办法,建立一个智能终端设备操作体系的结构途径,促进万物互联产业的昌盛开展。

OpenHarmony生态组成

OpenHarmony的生态由华为与生态协作同伴一起构建,旨在构建一个健康的,可以自我正想迭代的生态体系,以继续招引开发者和协作同伴的参加,从而从而带动更多的用户挑选。

  • HMS

    HMS类似于Google的GMS,是一个集华为全家桶的一个App,包括着许多功用接口的API的服务才能,是华为自在的不开源的。

  • 华为商用的HarmonyOS

    相当于依据Android的AOSP所构建的EMUI、MIUI等高度自界说UI的Android体系。HarmonyOS是依据OpenHarmony构建的商业版的操作体系。

  • HarmonyOS Connect

    华为向协作厂商供给的一种处理计划。

    HarmonyOS Connect 服务包为协作同伴供给设备开发、原子化服务开发、设备全生命周期运营运维等一站式智能化处理计划,由根底服务、增强服务、HarmonyOS Connect 云等组成。根底服务为设备赋予超级终端体会,增强服务供给设备运维分析、运营变现才能以及专属场景服务,HarmonyOS Connect 云衔接设备与用户,一起助力开发者快速完结产品智能化晋级,打造互联互通的 HarmonyOS Connect 生态。

    依据同伴挑选的不同的处理计划与产品体会特性,咱们供给依据 OpenHarmony 体系的闭源服务包,您可以在“办理中心”中,完结产品界说后,即可获取对应的服务包。

  • OpenHarmony

    相当于Android中的AOSP,是一个开源的项目,具有最根底的操作体系的才能。

HarmonyOS Connect介绍

  • HarmonyOS Connect(中文:鸿蒙智联)是华为共同的硬件生态品牌。
  • HarmonyOS Connect生态同伴可以依据华为供给的芯片规划、操作体系、衔接、云、AI和用户体会规划才能,为顾客供给高品质的智能硬件生态设备,使该设备可以与华为HarmonyOS设备(包括手机、全屋主机、智能座舱、才智屏、手表等终端)以及其他的HarmonyOS Connect生态设备进行衔接和协同,一起打造互联互通的HarmonyOS Connect生态。

HarmonyOS根本概念

HarmonyOS Connect帮忙三种商业形状开展

1个途径、3种商业方式:

  1. 鸿蒙智联产品

    同伴自在途径为主

  2. 华为智选

    华为全途径出售为主

  3. 全屋子体系

    全屋途径出售为主

HarmonyOS Connect生态智能家居产品协作同伴事例

美的智能化家电、九阳不必手洗豆浆机、苏泊尔小C主厨照料机、方太智能电蒸箱、探梦者滑板车、新日电动车、奥佳华按摩椅等等。

四、HarmonyOS规划理念

HarmonyOS规划理念概述

  • HarmonyOS从用户和开发者视角出发,开宣布一款面向万物互联年代的操作体系。

  • HarmonyOS的规划理念有两条:

    1. 顾客体会最佳准则

      在终端硬件形状多样化的趋势下,确保用户分布式多设备协同的体会共同性,完结多端生态一体化。

    2. 开发者最小价值准则

      像开发单设备相同开发分布式运用,一次开发多端布置。

HarmonyOS企图处理的问题

HarmonyOS作为面向智能终端的新一代OS,智能终端在万物互联的年代面对的问题就是HarmonyOS需求处理的问题目标范围。

  • 软件才能分裂
  • 运用生态分裂
  • 用户数据分裂
  • 多设备交互分裂

HarmonyOS规划目标

  1. 事务规划目标
    • HarmonyOS的定位是面向万物互联下的操作体系,支撑万物互联下的多种设备和事务诉求,并伴随相关技能而不断演进。
  2. 架构规划目标
    • 弹性
    • 可演进性
    • 生态友好性
    • 重构
    • 可用性
    • 流通性
    • 安全性
  3. 架构规划准则
    • 分层笼统构建准则
    • 积木化建立准则
    • 用户体会优化准则
    • 隐私维护与安全准则
    • 生态敞开准则
    • 分布式架构准则
    • 接口阻隔及兼容性准则
    • 高功用低功耗准则
    • 开源引用准则

鸿蒙生态运用中心技能理念

在万物智联年代重要机遇期,鸿蒙体系结合移动生态开展的趋势,提出了三大技能理念。

HarmonyOS根本概念

超级终端

超级终端是按用户在不同场景下运用各种智能终端,经过HarmonyOS的主动协同组成的一个逻辑终端。超级终端包括了各种类型的只能终端,是HarmonyOS办理的终端类型,对用户而言,就像一个终端。

五、HarmonyOS技能架构

HarmonyOS全体遵照分层规划,从下向上依次为:内核层、体系服务层、结构层和运用层。体系功用按照“体系 > 子体系 > 功用/模块”逐级展开,在多设备布置场景下,支撑依据实践需求裁剪某些非必要的子体系或功用/模块。HarmonyOS技能架构如下所示。

HarmonyOS根本概念

内核层

  • 内核子体系:HarmonyOS选用多内核规划,支撑针对不同资源受限设备选用适宜的OS内核。内核笼统层(KAL,Kernel Abstract Layer)经过屏蔽多内核差异,对上层供给根底的内核才能,包括进程/线程办理、内存办理、文件体系、网络办理和外设办理等。

  • 驱动子体系:硬件驱动结构(HDF)是HarmonyOS硬件生态敞开的根底,供给共同外设拜访才能和驱动开发、办理结构。

体系服务层

体系服务层是HarmonyOS的中心才能调集,经过结构层对运用程序供给服务。该层包括以下几个部分:

  • 体系根本才能子体系集:为分布式运用在HarmonyOS多设备上的运转、调度、搬迁等操作供给了根底才能,由分布式软总线、分布式数据办理、分布式使命调度、方舟多言语运转时、公共根底库、多模输入、图形、安全、AI等子体系组成。其间,方舟运转时供给了C/C++/JS多言语运转时和根底的体系类库,也为运用方舟编译器静态化的Java程序(即运用程序或结构层中运用Java言语开发的部分)供给运转时。

  • 根底软件服务子体系集:为HarmonyOS供给公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 、MSDP&DV等子体系组成。

  • 增强软件服务子体系集:为HarmonyOS供给针对不同设备的、差异化的才能增强型软件服务,由才智屏专有事务、穿戴专有事务、IoT专有事务等子体系组成。

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

依据不同设备形状的布置环境,根底软件服务子体系集、增强软件服务子体系集、硬件服务子体系集内部可以按子体系粒度裁剪,每个子体系内部又可以按功用粒度裁剪。

结构层

结构层为HarmonyOS运用开发供给了Java/C/C++/JS等多言语的用户程序结构和Ability结构,两种UI结构(包括适用于Java言语的Java UI结构、适用于JS言语的JS UI结构),以及各种软硬件服务对外敞开的多言语结构API。依据体系的组件化裁剪程度,HarmonyOS设备支撑的API也会有所不同。

运用层

  • 运用层包括体系运用和第三方非体系运用。
  • Ability是运用所具有才能的笼统,也是运用程序的重要组成部分。Ability是体系调度运用的最小单元,是可以完结一个独立功用的组件。一个运用可以包括一个或多个Ability。
  • Stage模型将Ability分为PageAbility和ExtensionAbility两大类,其间ExtensionAbility又被拓展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等一系列的ExtensionAbility,以满意更多的运用场景。

体系类型

依据设备的内存差异,鸿蒙操作体系适配的体系类型分为三类:

  1. 轻量体系(mini system)
    • 支撑的设备最小内存为128KiB
    • 面向MCU(单片机)类处理器,例如Arm Cortex-M、RISC-V 32位的设备,硬件资源极其有限。
    • 可以供给多种轻量级网络协议,轻量级图形结构,以及丰付的IOT总线读写部件等。可支撑的产品如智能家居范畴的衔接类模组、传感器设备、穿戴类设备等。
  2. 小型体系(small system)
    • 支撑设备最小内存为1MiB
    • 面向运用处理器,例如:Arm Cortex-A的设备
    • 可以供给更高的安全才能,标准的图形结构、视频编解码的多媒体才能。可支撑的产品如智能家居范畴的IP Camera、电子猫眼、路由器以及才智出行范畴的行车记录仪等。
  3. 标准体系(standard system)
    • 支撑的设备最小内存为128MiB
    • 面向运用处理例如Arm Cortex-A的设备
    • 可以供给增强的交互才能、3D GPU以及硬件组成才能、更多控件以及动效丰付的图形才能、完好的运用结构。可支撑的产品如高端的冰箱显现屏。

开发言语介绍

  • 纯运用软件开发,依据官方供给的体系SDK进行运用开发。
  • 软硬件结合的嵌入式开发,注重硬件操作、驱动开发、操作体系裁剪定制等。
  1. 运用开发

    HarmonyOS支撑如下言语

    1. ArkTS
    2. HML + JavaScript + CSS (仅FA模型可用)
    3. Java(仅API7及一下版本可用)
    4. C/C++

    OpenHarmony支撑如下言语

    1. ArkTS
    2. HML + JavaScript + CSS (仅FA模型可用)
    3. C/C++
  2. 设备开发

    OpenHarmony设备开发仅支撑C/C++编程言语。

六、部件化开发架构规划

HarmonyOS在模块化、组件化的根底上,引进了部件化架构的软件工程办法,综合运用模块化、部件化、组件化等手段,有用支撑了共同的操作在不同标准、不同形状、不同类型的设备上的弹性布置。

架构分层与组件化

HarmonyOS根本概念

才能调集

  • HarmonyOS针对不同的体系标准,别离界说了根底部件才能调集(BCG)和可选部件才能调集(OCG),便利设备卡发着按需装备,已支撑其特征功用的扩展或定制开发。同时,HarmonyOS也支撑设厂商扩展私有的体系才能(PCG),打造设备差异化竞争力。
  • 针对相同体系标准设备,具有相同的BCG体系才能,答应设备厂商按需挑选好OCG体系才能、扩展PCG体系才能。

部件办理

  • 为了支撑依据部件的HarmonyOS积木花拼装,部件的根本特征包括:

    • 部件之间的相对独立

    • 和所依靠的部件一同拼装布置

    • 可对外供给必定的体系软硬件才能

      HarmonyOS根本概念

  • HPM(HarmonyOS Package Manager)是HarmonyOS部件包的办理和分发东西,面向设备开发时,用于获取、定制HarmonyOS部件源码,履行装置、编译、打包等操作,最终构建特定产品的OS软件包,面向多设备布置时,假如部件之间存在依靠,则要求和被依靠的部件一同布置。

七、三大技能特性

  1. 消费体会

    硬件合作,资源同享

    HarmonyOS可以完结不同终端设备之间的快速衔接、才能合作、资源同享,匹配适宜的设备、供给流通的全场景体会。

  2. 运用开发者体会

    一次开发,多端布置

    HarmonyOS选用了多种分布式技能,使得运用程序的开发完结与不同终端设备的形状差异无关,下降了开发难度和本钱。

  3. 设备开发者体会

    共同OS,弹性布置

    HarmonyOS选用了组件化的规划计划,可以依据设备的资源才能和事务特征进行灵活裁剪,满意不同形状的终端设备关于操作体系的要求。

共同OS弹性布置

HarmonyOS经过组件化和小型化等规划办法,支撑多种终端设备按需弹性布置,可以适配不同类别的硬件资源和功用需求。支撑经过编译链联系去主动生成组件化的依靠联系,构成组件树依靠图,支撑产品体系的快捷开发,下降硬件设备的开发门槛。

**支撑个组件的挑选(组件可有可无):**依据硬件的形状和需求,可以挑选所需的组件。

**支撑组件内功用集的装备(组件可大可小):**像开发单设备依据硬件的资源状况和功用需求,可以挑选装备组件中的功用集。例如,挑选装备图形矿建组件中的部分控件。相同开发分布式运用,一次开发多端布置。

**支撑组件间依靠的关联(途径可大可小):**依据编译链联系,可以主动生成组件化的以来联系。例如,挑选图形结构组件,将会主动挑选依靠的图形引擎组件等。

一次开发多端布置

  • HarmonyOS供给了用户程序结构、Ability结构以及UI结构,支撑运用开发过程中多端的事务逻辑和界面逻辑进行复用,可以完结运用的一次开发,多端布置,提升了跨设备易用的开发功率。
  • 选用业界干流的规划办法,供给多种响应式布局计划,支撑栅格化布局,满意不同屏幕的界面适配才能。

HarmonyOS根本概念

硬件合作,资源同享

多种设备之间可以完结硬件合作、资源同享,依靠的关键技能包括分布式软总线、分布式设备虚拟化、分布式数据办理、分布式使命调度等。

HarmonyOS根本概念

分布式软总线

分布式软总线是手机、平板、智能穿戴设备等分布式设备的通讯基座,为设备之间的互联互动供给了共同的分布式通讯才能,为设备间的无感发现和零等候传输创造了条件。开发者只需聚焦于事务逻辑的完结,无需重视组网办法与底层协议。

HarmonyOS根本概念

分布式软总线是怎么自发现并衔接的呢?

分布式软总线提出主动发现设备,完结用户零等候的自发现体会,附近同账号的设备主动发现无需等候,主动安全衔接。分布式软总线提出了异构网络组网,主动构建一个逻辑全衔接网络,以处理设备间不同协议交互的问题。

HarmonyOS根本概念

分布式设备虚拟化

  • 分布式设备虚拟化途径可以完结不同设备的资源融合、设备办理、数据处理,多种设备一起构成一个超级虚拟终端。
  • 针对不同类型的使命,为用户匹配并挑选才能适宜的履行硬件,让事务接连的在不同设备间流通,充分发挥不同设备的才能优势,如显现才能、摄像才能、音频才能、交互才能以及传感器才能等。

分布式数据办理

用户数据不再与单一物理设备绑定,事务逻辑与数据存储别离,跨设备的数据处理好像本地数据相同便利快捷,让开发者可以轻松完结全场景、多设备下的数据存储、同享和拜访,为打造共同、流通的用户体会创造了根底条件。

分布式使命调度

分布式使命调度依据分布式软总线、分布式数据办理、分布式Profile等技能特性,构建共同的分布式服务办理(发现、同步、注册、调用)机制,支撑对跨设备的运用进行长途发动、长途调用、长途衔接以及搬迁等操作,更够依据不同设备的才能、位置、事务运转状况、资源运用状况,以及用户的习气和意图,挑选适宜的设备运转分布式使命。

八、体系安全

设备互信认证服务

  • 设备互信认证服务

    确保设备之间彼此正确可信,并可以在验证信任联系后建立安全的衔接通道,完结用户数据的安全传输。

  • 用户身份认证

    除传统身份认证办法外,还供给生物认证办法和分布式协同认证才能。

  • 运用程序阻隔和权限办理

    体系化地标准运用程序的行为准则与权限许可并强制履行。

  • 数据分级拜访操控架构

    数据都能取得与其个人数据敏感程度、体系数据重要程度和运用程序数据财物价值匹配的维护措施。

  • 数据防泄漏维护

    数据生命周期范围内,数据的存储、拜访和传输过程中数据泄露风险比较大。

九、元服务(原子化服务)

元服务界说

元服务是HarmonyOS供给的一种全新的运用形状,具有独立入口,用户可经过点击、碰一碰、扫一扫等办法直接触发,无需显现装置,由程序结构后台静默装置后即可运用,可为用户供给快捷服务。

HarmonyOS根本概念

元服务特性

元服务依据鸿蒙体系API开发,支撑运转在1+8+N设备上,供用户在适宜的场景、适宜的设备上快捷运用。元服务是支撑可分可合,自在流通的轻量化程序实体,帮助开发者的服务更快触达用户。具有以下特征:

HarmonyOS根本概念

服务中心

服务中心为用户供给共同的元服务检查、查找、保藏和办理功用。

元服务的服务流通

  • 用户手动流通

    用户可以经过手动挑选适宜的设备进行流通。用户点击图标后,会调起体系供给的流通面板。面板中心会展示出用户运用程序的信息及可流通的设备,引导用户进行后续的流通操作。

  • 体系推荐流通

    体系会经过分布式软总线自发的验证设备安全性,然后组网,组网之后就会去判断当时用户所处的环境中没有用户体会更佳的可选设备,假如存在这样的设备那么体系就会推荐用户进行流通。

元服务开发整体要求

  • 免装置HAP包不能超越10MB

    以供给快速响应的体会。超越此巨细的HAP包不符合免装置要求,也无法再服务中心显露。

  • Project Type字段挑选“Atomic Service”

    HarmonyOS 2.0以上版本,经过DevEco Studio工程导游创建元服务。

  • 坚持免装置特点

    关于元服务晋级场景:版本更新时要坚持免装置特点。假如新版本不支撑免装置,将不答应新版本上架。

  • HAP包有必要包括FA

    假如某快捷服务的入口需求在服务中心显露,则该服务对应的HAP包有必要包括FA,且FA中有必要拟定一个仅有的mainAbility(定位用户操作入口),mainAbility有必要为PageAbility。

服务卡片界说

  • 服务卡片(以下简称卡片)是FA的一种界面展示方式,将FA的重要信息或操作前置到卡片,以达到服务直达,削减体会层级的意图。

  • 卡片常用于嵌入到其他运用(当时只支撑体系运用)中作为其界面的一部分显现,并支撑拉起页面,发送消息等根底的交互才能。

重视公众号:Android老皮!!!解锁《鸿蒙零根底入门学习指南》