HarmonyOS基本概念

一、什么是HarmonyOS

  • 2019年8月9日顾腊,華為在華為開發(fā)者大會上正式發(fā)布HarmonyOS 1.0状勤,同時將該操作系統(tǒng)開源。
  • 2020年9月10日畏铆,HarmonyOS 2.0 正式發(fā)布雷袋。
  • 2022年11月4日,全新的HarmonyOS 3.1發(fā)布辞居,引入全新的Stage模型(準(zhǔn)備放棄FA模型)楷怒。

二寨腔、目標(biāo)

本文章將帶領(lǐng)我們掌握以下技能:

  • 理解HarmonyOS基本概念稼锅;
  • 體會HarmonyOS設(shè)計理念蘑秽;
  • 區(qū)分HarmonOS技術(shù)架構(gòu)層次序调;
  • 了解HarmonOS部件化架構(gòu)設(shè)計财边;
  • 掌握HarmonOS技術(shù)特性蹂窖;
  • 了解HarmonOS系統(tǒng)安全瑟枫;

三蝗敢、HarmonyOS簡介

萬物互聯(lián)時代正在開啟

經(jīng)過十多年的發(fā)展日缨,傳統(tǒng)移動互聯(lián)網(wǎng)的增長紅利已漸見頂捅僵,IoT時代即將到來家卖。

新場景帶來的挑戰(zhàn)

不同的設(shè)備類型意味著不同的傳感器能力、硬件能力庙楚。屏幕尺寸上荡、操作系統(tǒng)和開發(fā)語言,以及交互方式等馒闷。同時跨設(shè)備協(xié)作也讓開發(fā)者面臨這分布式開發(fā)帶來的各種復(fù)雜性酪捡,適配和管理工作也將非常巨大。當(dāng)前移動應(yīng)用開發(fā)中遇到的主要挑戰(zhàn)包括以下一種:

  1. 針對不同設(shè)備上的不同操作系統(tǒng)纳账,重復(fù)開發(fā)逛薇,維護(hù)多套版本。
  2. 多種語言棧疏虫,對技術(shù)人員技能要求較高永罚。
  3. 多種開發(fā)框架,不同的編程范式卧秘。
  4. 命令式編程呢袱,需要關(guān)注細(xì)節(jié),變更頻繁翅敌,維護(hù)成本高羞福。

移動終端應(yīng)用生態(tài)面臨變革

傳統(tǒng)應(yīng)用具有以下優(yōu)缺點:

優(yōu)點:

  • 功能齊全
  • 整體體驗好

缺點:

  • 厚重
  • 開發(fā)周期長、成本高
  • 信息哼御、應(yīng)用孤島(傳統(tǒng)應(yīng)用之間是彼此獨立的坯临、碎片化的)
  • 以應(yīng)用未中心,而非用戶為中心
  • 需要用戶主動關(guān)注等顯性操作

輕量化程序?qū)嶓w正在成為新的趨勢恋昼,輕量化程序具備“即用即走看靠、無需安裝卸載、永遠(yuǎn)最新”的特征液肌,推動了App基于搜索下載的“人找應(yīng)用”的傳統(tǒng)分發(fā)想“服務(wù)找人”的智慧分發(fā)演進(jìn)挟炬。

鴻蒙生態(tài)迎接挑戰(zhàn)

  • 單一設(shè)備延伸打多設(shè)備

    應(yīng)用一次開發(fā)就能在多個設(shè)備上運(yùn)行,軟件實體能夠從單一的設(shè)備轉(zhuǎn)移到其他設(shè)備上,且多個設(shè)備之間能夠協(xié)同運(yùn)行谤祖,給消費(fèi)者提供全新的分布式體驗婿滓。

  • 厚重應(yīng)用模式到輕量化服務(wù)模式

    提供輕量化的服務(wù),最小化資源消耗粥喜,一步直達(dá)凸主,快速完成消費(fèi)者特定場景的任務(wù)。

  • 智慧分發(fā)到AI加持下的智慧分發(fā)

    為消費(fèi)者提供智慧服務(wù)場景服務(wù)额湘,實現(xiàn)“服務(wù)找人”卿吐。

  • 純軟件到軟硬芯協(xié)同的AI能力

    提供軟硬芯協(xié)同話的原生AI能力,全面滿足應(yīng)用高性能訴求锋华。

HarmonyOS系統(tǒng)定義

  • HarmonyOS是一款面向萬物互聯(lián)時代的嗡官、全新的分布式操作系統(tǒng)。
  • 在傳統(tǒng)的單設(shè)備系統(tǒng)能力基礎(chǔ)上毯焕,HarmonyOS提出了基于同一套系統(tǒng)能力衍腥、設(shè)備多種終端形態(tài)的分布式理念,能夠支持手機(jī)纳猫、平板婆咸、智能穿戴、智慧屏续担、車機(jī)等多種終端設(shè)備擅耽,提供全場景(移動辦公、運(yùn)動健康物遇、社交通訊、媒體娛樂)業(yè)務(wù)能力憾儒。

HarmonyOS發(fā)展史

2019年 > HarmonyOS正式發(fā)布并開源核心代碼询兴。

2020年 > 鴻蒙智聯(lián)面向硬件生態(tài)伙伴全面開放

2021年 > 手機(jī)及多種智能終端設(shè)備搭載HarmonyOS 2

2022年 > 全新的HarmonyOS 3.1發(fā)布并推出Stage模型,五大場景體驗持續(xù)化鴻蒙生態(tài)更加成熟

2023年 > HarmonyOS 4 發(fā)布

2024年 > HarmonyOS NEXT 正式發(fā)布起趾,拋棄對AOSP的支持诗舰,鴻蒙原生應(yīng)用全面啟動。(不出意外的話训裆,因為現(xiàn)在還是2023年眶根,偷笑.jpg)

ArkTS

ArkTs 是華為自研的開發(fā)語言。它在TypeScript的基礎(chǔ)上边琉,匹配ArkUI框架属百,拓展了聲明式UI、狀態(tài)管理等相應(yīng)的能力变姨,讓開發(fā)者以更簡潔族扰、更自然的方式開發(fā)跨端應(yīng)用。

@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)
  }
}
ArkTS的基本組成

兼容JS/TS語言基于JS/TS構(gòu)建

ArkUI

ArkUI是一套構(gòu)建分布式應(yīng)用界面的聲明式UI開發(fā)框架。它使用極簡的UI信息語法渔呵、豐富的UI組件怒竿、以及實時界面預(yù)覽工具,提升開發(fā)效率扩氢。使用一套ArkTS API耕驰,就能在多個HarmonyOS設(shè)備上提供生動流暢的用戶界面體驗。

邏輯和UI分離通過利用數(shù)據(jù)雙向綁定機(jī)制傳遞頁面變化邏輯录豺,將流轉(zhuǎn)7個步驟簡化為2個步驟朦肘。可將跨端遷移和協(xié)同的開發(fā)代碼量降低40%以上巩检。

方舟編譯器(ArkCompiler)

  • ArkCompiler是華為自研的統(tǒng)一編程平臺厚骗,包含編譯器、工具鏈兢哭、運(yùn)行時等關(guān)鍵部件领舰,支持多種編程語言、多種芯片平臺聯(lián)合編譯迟螺、運(yùn)行而設(shè)計的統(tǒng)一編程運(yùn)行時平臺冲秽。支持包括動態(tài)類型和靜態(tài)類型語言在內(nèi)的多種編程語言,如:JS矩父、TS锉桑、ArkTS等。

  • 方舟編譯器是鴻蒙系統(tǒng)作為手機(jī)窍株、PC民轴、平板、電視球订、車機(jī)和智能穿戴設(shè)備等多種設(shè)備統(tǒng)一操作系統(tǒng)的編譯運(yùn)行時底座后裸。主要分成兩個部分:

    1. 編譯工具鏈

      編譯工具鏈以ArkTS/TS/JS源碼作為輸入,將其編譯成為ABC(ArkCompiler Byte Code冒滩,即方舟字節(jié)碼)文件微驶。

    2. 運(yùn)行時

      運(yùn)行時直接運(yùn)行字節(jié)碼文件,實現(xiàn)對應(yīng)語言規(guī)范的語義邏輯开睡。

方舟編譯器具有以下特點:

  1. AOT編譯模式

    ArkCompiler利用ArkTS的靜態(tài)類型信息因苹,進(jìn)行類型推導(dǎo)并生成對象描述和內(nèi)聯(lián)緩存,加速運(yùn)行時對字節(jié)碼的解釋執(zhí)行篇恒;AOT(Ahead-of-Time)Compiler利用靜態(tài)類型信息直接將字節(jié)碼編譯生成優(yōu)化機(jī)器碼扶檐,讓應(yīng)用啟動即可運(yùn)行高性能代碼,提升應(yīng)用啟動和運(yùn)行性能婚度。

    arkcompiler-1.gif
  1. LiteActor輕量化并發(fā)

    ArkCompiler運(yùn)行時在HarmonyOS上提供了Worker API支持并發(fā)編程蘸秘。在運(yùn)行時實例內(nèi)存隔離的基礎(chǔ)上官卡,ArkCompiler通過共享運(yùn)行實例中的不可變或者不易變的對象、內(nèi)建代碼塊醋虏、方法字節(jié)碼等技術(shù)手段寻咒,優(yōu)化了并發(fā)運(yùn)行實例的啟動性能和內(nèi)存開銷。

    arkcompiler-2.gif
  1. 源碼安全

    ArkCompiler會把ArkTS/TS/JS編譯為方舟字節(jié)碼颈嚼,運(yùn)行時直接運(yùn)行方舟字節(jié)碼毛秘。并且ArkCompiler使用多種混淆技術(shù)提供更高強(qiáng)度的混淆與保護(hù),使得HarmonyOS應(yīng)用包中裝載的是多重混淆后的字節(jié)碼阻课,有效提高了應(yīng)用代碼安全的強(qiáng)度叫挟。

    arkcompiler3.gif

開源開放的生態(tài)環(huán)境

  • HarmonyOS是華為通過OpenHarmony項目,結(jié)合商業(yè)發(fā)行版增加能力限煞,構(gòu)建華為自研產(chǎn)品的完整解決方案抹恳。
  • OpenHarmony是由開放原子開源基金會(OpenAtom Foundation)孵化及運(yùn)營的開源項目,目標(biāo)是面向全場景署驻、全鏈路奋献、全智能時代,基于開源的方式旺上,搭建一個智能終端設(shè)備操作系統(tǒng)的框架平臺瓶蚂,促進(jìn)萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。

OpenHarmony生態(tài)組成

OpenHarmony的生態(tài)由華為與生態(tài)合作伙伴共同構(gòu)建宣吱,旨在構(gòu)建一個健康的窃这,可以自我正想迭代的生態(tài)系統(tǒng),以持續(xù)吸引開發(fā)者和合作伙伴的加入征候,從而進(jìn)而帶動更多的用戶選擇杭攻。

  • HMS

    HMS類似于Google的GMS,是一個集華為全家桶的一個App疤坝,包含著許多功能接口的API的服務(wù)能力朴上,是華為自由的不開源的。

  • 華為商用的HarmonyOS

    相當(dāng)于基于Android的AOSP所構(gòu)建的EMUI卒煞、MIUI等高度自定義UI的Android系統(tǒng)。HarmonyOS是基于OpenHarmony構(gòu)建的商業(yè)版的操作系統(tǒng)叼架。

  • HarmonyOS Connect

    華為向合作廠商提供的一種解決方案畔裕。

    HarmonyOS Connect 服務(wù)包為合作伙伴提供設(shè)備開發(fā)、原子化服務(wù)開發(fā)乖订、設(shè)備全生命周期運(yùn)營運(yùn)維等一站式智能化解決方案扮饶,由基礎(chǔ)服務(wù)、增強(qiáng)服務(wù)乍构、HarmonyOS Connect 云等組成甜无。基礎(chǔ)服務(wù)為設(shè)備賦予超級終端體驗,增強(qiáng)服務(wù)提供設(shè)備運(yùn)維分析岂丘、運(yùn)營變現(xiàn)能力以及專屬場景服務(wù)陵究,HarmonyOS Connect 云連接設(shè)備與用戶,共同助力開發(fā)者快速實現(xiàn)產(chǎn)品智能化升級奥帘,打造互聯(lián)互通的 HarmonyOS Connect 生態(tài)铜邮。

    根據(jù)伙伴選擇的不同的解決方案與產(chǎn)品體驗特性,我們提供基于 OpenHarmony 系統(tǒng)的閉源服務(wù)包寨蹋,您可以在“管理中心”中松蒜,完成產(chǎn)品定義后,即可獲取對應(yīng)的服務(wù)包已旧。

  • OpenHarmony

    相當(dāng)于Android中的AOSP秸苗,是一個開源的項目,具有最基礎(chǔ)的操作系統(tǒng)的能力运褪。

HarmonyOS Connect介紹

  • HarmonyOS Connect(中文:鴻蒙智聯(lián))是華為統(tǒng)一的硬件生態(tài)品牌惊楼。
  • HarmonyOS Connect生態(tài)伙伴可以基于華為提供的芯片設(shè)計吐句、操作系統(tǒng)胁后、連接、云嗦枢、AI和用戶體驗設(shè)計能力攀芯,為消費(fèi)者提供高品質(zhì)的智能硬件生態(tài)設(shè)備,使該設(shè)備能夠與華為HarmonyOS設(shè)備(包括手機(jī)文虏、全屋主機(jī)侣诺、智能座艙、智慧屏氧秘、手表等終端)以及其他的HarmonyOS Connect生態(tài)設(shè)備進(jìn)行連接和協(xié)同年鸳,共同打造互聯(lián)互通的HarmonyOS Connect生態(tài)。

HarmonyOS Connect協(xié)助三種商業(yè)形態(tài)發(fā)展

1個平臺丸相、3種商業(yè)模式:

  1. 鴻蒙智聯(lián)產(chǎn)品

    伙伴自由渠道為主

  2. 華為智選

    華為全渠道銷售為主

  3. 全屋子系統(tǒng)

    全屋渠道銷售為主

HarmonyOS Connect生態(tài)智能家居產(chǎn)品合作伙伴案例

美的智能化家電搔确、九陽不用手洗豆?jié){機(jī)、蘇泊爾小C主廚料理機(jī)灭忠、方太智能電蒸箱膳算、探夢者滑板車、新日電動車弛作、奧佳華按摩椅等等涕蜂。

四、HarmonyOS設(shè)計理念

HarmonyOS設(shè)計理念概述

  • HarmonyOS從用戶和開發(fā)者視角出發(fā)映琳,開發(fā)出一款面向萬物互聯(lián)時代的操作系統(tǒng)机隙。

  • HarmonyOS的設(shè)計理念有兩條:

    1. 消費(fèi)者體驗最佳原則

      在終端硬件形態(tài)多樣化的趨勢下蜘拉,保證用戶分布式多設(shè)備協(xié)同的體驗一致性,實現(xiàn)多端生態(tài)一體化有鹿。

    2. 開發(fā)者最小代價原則

      像開發(fā)單設(shè)備一樣開發(fā)分布式應(yīng)用旭旭,一次開發(fā)多端部署。

HarmonyOS試圖解決的問題

HarmonyOS作為面向智能終端的新一代OS印颤,智能終端在萬物互聯(lián)的時代面臨的問題就是HarmonyOS需要解決的問題目標(biāo)范圍您机。

  • 軟件能力割裂
  • 應(yīng)用生態(tài)割裂
  • 用戶數(shù)據(jù)割裂
  • 多設(shè)備交互割裂

HarmonyOS設(shè)計目標(biāo)

  1. 業(yè)務(wù)設(shè)計目標(biāo)
    • HarmonyOS的定位是面向萬物互聯(lián)下的操作系統(tǒng),支撐萬物互聯(lián)下的多種設(shè)備和業(yè)務(wù)訴求年局,并隨同相關(guān)技術(shù)而不斷演進(jìn)际看。
  2. 架構(gòu)設(shè)計目標(biāo)
    • 彈性
    • 可演進(jìn)性
    • 生態(tài)友好性
    • 可重構(gòu)性
    • 可用性
    • 流暢性
    • 安全性
  3. 架構(gòu)設(shè)計原則
    • 分層抽象構(gòu)建原則
    • 積木化搭建原則
    • 用戶體驗優(yōu)化原則
    • 隱私保護(hù)與安全原則
    • 生態(tài)開放原則
    • 分布式架構(gòu)原則
    • 接口隔離及兼容性原則
    • 高性能低功耗原則
    • 開源引用原則

鴻蒙生態(tài)應(yīng)用核心技術(shù)理念

在萬物智聯(lián)時代重要機(jī)遇期,鴻蒙系統(tǒng)結(jié)合移動生態(tài)發(fā)展的趨勢矢否,提出了三大技術(shù)理念仲闽。

超級終端

超級終端是按用戶在不同場景下使用各種智能終端,通過HarmonyOS的自動協(xié)同組成的一個邏輯終端僵朗。超級終端包含了各種類型的只能終端赖欣,是HarmonyOS管理的終端類型,對用戶而言验庙,就像一個終端顶吮。

五、HarmonyOS技術(shù)架構(gòu)

HarmonyOS整體遵從分層設(shè)計粪薛,從下向上依次為:內(nèi)核層悴了、系統(tǒng)服務(wù)層、框架層和應(yīng)用層违寿。系統(tǒng)功能按照“系統(tǒng) > 子系統(tǒng) > 功能/模塊”逐級展開湃交,在多設(shè)備部署場景下,支持根據(jù)實際需求裁剪某些非必要的子系統(tǒng)或功能/模塊藤巢。HarmonyOS技術(shù)架構(gòu)如下所示搞莺。

內(nèi)核層

  • 內(nèi)核子系統(tǒng):HarmonyOS采用多內(nèi)核設(shè)計,支持針對不同資源受限設(shè)備選用適合的OS內(nèi)核掂咒。內(nèi)核抽象層(KAL才沧,Kernel Abstract Layer)通過屏蔽多內(nèi)核差異,對上層提供基礎(chǔ)的內(nèi)核能力绍刮,包括進(jìn)程/線程管理糜工、內(nèi)存管理、文件系統(tǒng)录淡、網(wǎng)絡(luò)管理和外設(shè)管理等。

  • 驅(qū)動子系統(tǒng):硬件驅(qū)動框架(HDF)是HarmonyOS硬件生態(tài)開放的基礎(chǔ)油坝,提供統(tǒng)一外設(shè)訪問能力和驅(qū)動開發(fā)嫉戚、管理框架刨裆。

系統(tǒng)服務(wù)層

系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過框架層對應(yīng)用程序提供服務(wù)彬檀。該層包含以下幾個部分:

  • 系統(tǒng)基本能力子系統(tǒng)集:為分布式應(yīng)用在HarmonyOS多設(shè)備上的運(yùn)行帆啃、調(diào)度、遷移等操作提供了基礎(chǔ)能力窍帝,由分布式軟總線努潘、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度坤学、方舟多語言運(yùn)行時疯坤、公共基礎(chǔ)庫、多模輸入深浮、圖形压怠、安全、AI等子系統(tǒng)組成飞苇。其中菌瘫,方舟運(yùn)行時提供了C/C++/JS多語言運(yùn)行時和基礎(chǔ)的系統(tǒng)類庫,也為使用方舟編譯器靜態(tài)化的Java程序(即應(yīng)用程序或框架層中使用Java語言開發(fā)的部分)提供運(yùn)行時布卡。

  • 基礎(chǔ)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供公共的雨让、通用的軟件服務(wù),由事件通知忿等、電話栖忠、多媒體、DFX(Design For X) 这弧、MSDP&DV等子系統(tǒng)組成娃闲。

  • 增強(qiáng)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供針對不同設(shè)備的、差異化的能力增強(qiáng)型軟件服務(wù)匾浪,由智慧屏專有業(yè)務(wù)皇帮、穿戴專有業(yè)務(wù)、IoT專有業(yè)務(wù)等子系統(tǒng)組成蛋辈。

  • 硬件服務(wù)子系統(tǒng)集:為HarmonyOS提供硬件服務(wù)属拾,由位置服務(wù)、生物特征識別冷溶、穿戴專有硬件服務(wù)渐白、IoT專有硬件服務(wù)等子系統(tǒng)組成。

根據(jù)不同設(shè)備形態(tài)的部署環(huán)境逞频,基礎(chǔ)軟件服務(wù)子系統(tǒng)集纯衍、增強(qiáng)軟件服務(wù)子系統(tǒng)集、硬件服務(wù)子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪苗胀,每個子系統(tǒng)內(nèi)部又可以按功能粒度裁剪襟诸。

框架層

框架層為HarmonyOS應(yīng)用開發(fā)提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架瓦堵,兩種UI框架(包括適用于Java語言的Java UI框架、適用于JS語言的JS UI框架)歌亲,以及各種軟硬件服務(wù)對外開放的多語言框架API菇用。根據(jù)系統(tǒng)的組件化裁剪程度,HarmonyOS設(shè)備支持的API也會有所不同陷揪。

應(yīng)用層

  • 應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用惋鸥。
  • Ability是應(yīng)用所具備能力的抽象,也是應(yīng)用程序的重要組成部分悍缠。Ability是系統(tǒng)調(diào)度應(yīng)用的最小單元卦绣,是能夠完成一個獨立功能的組件。一個應(yīng)用可以包含一個或多個Ability扮休。
  • Stage模型將Ability分為PageAbility和ExtensionAbility兩大類迎卤,其中ExtensionAbility又被拓展為ServiceExtensionAbility、FormExtensionAbility玷坠、DataShareExtensionAbility等一系列的ExtensionAbility蜗搔,以滿足更多的使用場景。

系統(tǒng)類型

根據(jù)設(shè)備的內(nèi)存差異八堡,鴻蒙操作系統(tǒng)適配的系統(tǒng)類型分為三類:

  1. 輕量系統(tǒng)(mini system)
    • 支持的設(shè)備最小內(nèi)存為128KiB
    • 面向MCU(單片機(jī))類處理器樟凄,例如Arm Cortex-M、RISC-V 32位的設(shè)備兄渺,硬件資源極其有限缝龄。
    • 可以提供多種輕量級網(wǎng)絡(luò)協(xié)議,輕量級圖形框架挂谍,以及豐付的IOT總線讀寫部件等叔壤。可支撐的產(chǎn)品如智能家居領(lǐng)域的連接類模組口叙、傳感器設(shè)備炼绘、穿戴類設(shè)備等。
  2. 小型系統(tǒng)(small system)
    • 支持設(shè)備最小內(nèi)存為1MiB
    • 面向應(yīng)用處理器妄田,例如:Arm Cortex-A的設(shè)備
    • 可以提供更高的安全能力俺亮,標(biāo)準(zhǔn)的圖形框架、視頻編解碼的多媒體能力疟呐〗旁可支撐的產(chǎn)品如智能家居領(lǐng)域的IP Camera、電子貓眼启具、路由器以及智慧出行領(lǐng)域的行車記錄儀等本讥。
  3. 標(biāo)準(zhǔn)系統(tǒng)(standard system)
    • 支持的設(shè)備最小內(nèi)存為128MiB
    • 面向應(yīng)用處理例如Arm Cortex-A的設(shè)備
    • 可以提供增強(qiáng)的交互能力、3D GPU以及硬件合成能力、更多控件以及動效豐付的圖形能力囤踩、完整的應(yīng)用框架旨椒。可支持的產(chǎn)品如高端的冰箱顯示屏堵漱。

開發(fā)語言介紹

  • 純應(yīng)用軟件開發(fā),基于官方提供的系統(tǒng)SDK進(jìn)行應(yīng)用開發(fā)涣仿。
  • 軟硬件結(jié)合的嵌入式開發(fā)勤庐,注重硬件操作、驅(qū)動開發(fā)好港、操作系統(tǒng)裁剪定制等愉镰。
  1. 應(yīng)用開發(fā)

    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. 設(shè)備開發(fā)

    OpenHarmony設(shè)備開發(fā)僅支持C/C++編程語言。

六钧汹、部件化開發(fā)架構(gòu)設(shè)計

HarmonyOS在模塊化丈探、組件化的基礎(chǔ)上,引入了部件化架構(gòu)的軟件工程方法拔莱,綜合運(yùn)用模塊化碗降、部件化、組件化等手段塘秦,有效支撐了統(tǒng)一的操作在不同規(guī)格讼渊、不同形態(tài)、不同類型的設(shè)備上的彈性部署尊剔。

架構(gòu)分層與組件化

能力集合

  • HarmonyOS針對不同的系統(tǒng)規(guī)格爪幻,分別定義了基礎(chǔ)部件能力集合(BCG)和可選部件能力集合(OCG),方便設(shè)備卡發(fā)著按需配置须误,已支撐其特色功能的擴(kuò)展或定制開發(fā)挨稿。同時,HarmonyOS也支撐設(shè)廠商擴(kuò)展私有的系統(tǒng)能力(PCG)京痢,打造設(shè)備差異化競爭力奶甘。
  • 針對相同系統(tǒng)規(guī)格設(shè)備,具有相同的BCG系統(tǒng)能力历造,允許設(shè)備廠商按需選擇好OCG系統(tǒng)能力甩十、擴(kuò)展PCG系統(tǒng)能力。

部件管理

  • 為了支持基于部件的HarmonyOS積木花拼裝吭产,部件的基本特征包括:

    • 部件之間的相對獨立

    • 和所依賴的部件一起拼裝部署

    • 可對外提供一定的系統(tǒng)軟硬件能力

  • HPM(HarmonyOS Package Manager)是HarmonyOS部件包的管理和分發(fā)工具侣监,面向設(shè)備開發(fā)時,用于獲取臣淤、定制HarmonyOS部件源碼橄霉,執(zhí)行安裝、編譯邑蒋、打包等操作姓蜂,最終構(gòu)建特定產(chǎn)品的OS軟件包按厘,面向多設(shè)備部署時,如果部件之間存在依賴钱慢,則要求和被依賴的部件一起部署逮京。

七、三大技術(shù)特性

  1. 消費(fèi)體驗

    硬件互助束莫,資源共享

    HarmonyOS可以實現(xiàn)不同終端設(shè)備之間的快速連接懒棉、能力互助、資源共享览绿,匹配合適的設(shè)備策严、提供流暢的全場景體驗。

  2. 應(yīng)用開發(fā)者體驗

    一次開發(fā)饿敲,多端部署

    HarmonyOS采用了多種分布式技術(shù)妻导,使得應(yīng)用程序的開發(fā)實現(xiàn)與不同終端設(shè)備的形態(tài)差異無關(guān),降低了開發(fā)難度和成本怀各。

  3. 設(shè)備開發(fā)者體驗

    統(tǒng)一OS倔韭,彈性部署

    HarmonyOS采用了組件化的設(shè)計方案,可以根據(jù)設(shè)備的資源能力和業(yè)務(wù)特征進(jìn)行靈活裁剪渠啤,滿足不同形態(tài)的終端設(shè)備對于操作系統(tǒng)的要求狐肢。

統(tǒng)一OS彈性部署

HarmonyOS通過組件化和小型化等設(shè)計方法,支持多種終端設(shè)備按需彈性部署沥曹,能夠適配不同類別的硬件資源和功能需求份名。支撐通過編譯鏈關(guān)系去自動生成組件化的依賴關(guān)系,形成組件樹依賴圖妓美,支撐產(chǎn)品系統(tǒng)的便捷開發(fā)僵腺,降低硬件設(shè)備的開發(fā)門檻。

支持個組件的選擇(組件可有可無):根據(jù)硬件的形態(tài)和需求壶栋,可以選擇所需的組件辰如。

支持組件內(nèi)功能集的配置(組件可大可小):像開發(fā)單設(shè)備根據(jù)硬件的資源情況和功能需求,可以選擇配置組件中的功能集贵试。例如琉兜,選擇配置圖形礦建組件中的部分控件。一樣開發(fā)分布式應(yīng)用毙玻,一次開發(fā)多端部署豌蟋。

支持組件間依賴的關(guān)聯(lián)(平臺可大可小):根據(jù)編譯鏈關(guān)系,可以自動生成組件化的以來關(guān)系桑滩。例如梧疲,選擇圖形框架組件,將會自動選擇依賴的圖形引擎組件等。

一次開發(fā)多端部署

  • HarmonyOS提供了用戶程序框架幌氮、Ability框架以及UI框架缭受,支持應(yīng)用開發(fā)過程中多端的業(yè)務(wù)邏輯和界面邏輯進(jìn)行復(fù)用,能夠?qū)崿F(xiàn)應(yīng)用的一次開發(fā)该互,多端部署米者,提升了跨設(shè)備易用的開發(fā)效率。
  • 采用業(yè)界主流的設(shè)計方式宇智,提供多種響應(yīng)式布局方案塘雳,支持柵格化布局,滿足不同屏幕的界面適配能力普筹。

硬件互助,資源共享

多種設(shè)備之間能夠?qū)崿F(xiàn)硬件互助隘马、資源共享太防,依賴的關(guān)鍵技術(shù)包括分布式軟總線、分布式設(shè)備虛擬化酸员、分布式數(shù)據(jù)管理蜒车、分布式任務(wù)調(diào)度等。

分布式軟總線

分布式軟總線是手機(jī)幔嗦、平板酿愧、智能穿戴設(shè)備等分布式設(shè)備的通信基座,為設(shè)備之間的互聯(lián)互動提供了統(tǒng)一的分布式通信能力邀泉,為設(shè)備間的無感發(fā)現(xiàn)和零等待傳輸創(chuàng)造了條件嬉挡。開發(fā)者只需聚焦于業(yè)務(wù)邏輯的實現(xiàn),無需關(guān)注組網(wǎng)方式與底層協(xié)議汇恤。

分布式軟總線是如何自發(fā)現(xiàn)并連接的呢庞钢?

分布式軟總線提出自動發(fā)現(xiàn)設(shè)備,實現(xiàn)用戶零等待的自發(fā)現(xiàn)體驗因谎,附近同賬號的設(shè)備自動發(fā)現(xiàn)無需等待基括,自動安全連接。分布式軟總線提出了異構(gòu)網(wǎng)絡(luò)組網(wǎng)财岔,自動構(gòu)建一個邏輯全連接網(wǎng)絡(luò)风皿,以解決設(shè)備間不同協(xié)議交互的問題。

分布式設(shè)備虛擬化

  • 分布式設(shè)備虛擬化平臺可以實現(xiàn)不同設(shè)備的資源融合匠璧、設(shè)備管理桐款、數(shù)據(jù)處理,多種設(shè)備共同形成一個超級虛擬終端患朱。
  • 針對不同類型的任務(wù)鲁僚,為用戶匹配并選擇能力合適的執(zhí)行硬件,讓業(yè)務(wù)連續(xù)的在不同設(shè)備間流轉(zhuǎn),充分發(fā)揮不同設(shè)備的能力優(yōu)勢冰沙,如顯示能力侨艾、攝像能力、音頻能力拓挥、交互能力以及傳感器能力等唠梨。

分布式數(shù)據(jù)管理

用戶數(shù)據(jù)不再與單一物理設(shè)備綁定,業(yè)務(wù)邏輯與數(shù)據(jù)存儲分離侥啤,跨設(shè)備的數(shù)據(jù)處理如同本地數(shù)據(jù)一樣方便快捷当叭,讓開發(fā)者能夠輕松實現(xiàn)全場景、多設(shè)備下的數(shù)據(jù)存儲盖灸、共享和訪問蚁鳖,為打造一致、流暢的用戶體驗創(chuàng)造了基礎(chǔ)條件赁炎。

分布式任務(wù)調(diào)度

分布式任務(wù)調(diào)度基于分布式軟總線醉箕、分布式數(shù)據(jù)管理、分布式Profile等技術(shù)特性徙垫,構(gòu)建統(tǒng)一的分布式服務(wù)管理(發(fā)現(xiàn)讥裤、同步、注冊姻报、調(diào)用)機(jī)制己英,支持對跨設(shè)備的應(yīng)用進(jìn)行遠(yuǎn)程啟動、遠(yuǎn)程調(diào)用吴旋、遠(yuǎn)程連接以及遷移等操作悯蝉,更夠根據(jù)不同設(shè)備的能力唱星、位置运授、業(yè)務(wù)運(yùn)行狀態(tài)咏尝、資源使用情況,以及用戶的習(xí)慣和意圖褂傀,選擇合適的設(shè)備運(yùn)行分布式任務(wù)忍啤。

八、系統(tǒng)安全

設(shè)備互信認(rèn)證服務(wù)

  • 設(shè)備互信認(rèn)證服務(wù)

    保證設(shè)備之間相互正確可信仙辟,并能夠在驗證信任關(guān)系后搭建安全的連接通道同波,實現(xiàn)用戶數(shù)據(jù)的安全傳輸。

  • 用戶身份認(rèn)證

    除傳統(tǒng)身份認(rèn)證方式外叠国,還提供生物認(rèn)證方式和分布式協(xié)同認(rèn)證能力未檩。

  • 應(yīng)用程序隔離和權(quán)限管理

    系統(tǒng)化地規(guī)范應(yīng)用程序的行為準(zhǔn)則與權(quán)限許可并強(qiáng)制執(zhí)行。

  • 數(shù)據(jù)分級訪問控制架構(gòu)

    數(shù)據(jù)都能獲得與其個人數(shù)據(jù)敏感程度粟焊、系統(tǒng)數(shù)據(jù)重要程度和應(yīng)用程序數(shù)據(jù)資產(chǎn)價值匹配的保護(hù)措施冤狡。

  • 數(shù)據(jù)防泄漏保護(hù)

    數(shù)據(jù)生命周期范圍內(nèi)孙蒙,數(shù)據(jù)的存儲、訪問和傳輸過程中數(shù)據(jù)泄露風(fēng)險比較大悲雳。

九挎峦、元服務(wù)(原子化服務(wù))

元服務(wù)定義

元服務(wù)是HarmonyOS提供的一種全新的應(yīng)用形態(tài),具有獨立入口合瓢,用戶可通過點擊坦胶、碰一碰、掃一掃等方式直接觸發(fā)晴楔,無需顯示安裝顿苇,由程序框架后臺靜默安裝后即可使用,可為用戶提供便捷服務(wù)税弃。

元服務(wù)特性

元服務(wù)基于鴻蒙系統(tǒng)API開發(fā)纪岁,支持運(yùn)行在1+8+N設(shè)備上,供用戶在合適的場景则果、合適的設(shè)備上便捷使用蜂科。元服務(wù)是支撐可分可合,自由流轉(zhuǎn)的輕量化程序?qū)嶓w短条,幫助開發(fā)者的服務(wù)更快觸達(dá)用戶。具備以下特點:

服務(wù)中心

服務(wù)中心為用戶提供統(tǒng)一的元服務(wù)查看才菠、搜索茸时、收藏和管理功能。

元服務(wù)的服務(wù)流轉(zhuǎn)

  • 用戶手動流轉(zhuǎn)

    用戶可以通過手動選擇合適的設(shè)備進(jìn)行流轉(zhuǎn)赋访。用戶點擊圖標(biāo)后可都,會調(diào)起系統(tǒng)提供的流轉(zhuǎn)面板。面板中心會展示出用戶應(yīng)用程序的信息及可流轉(zhuǎn)的設(shè)備蚓耽,引導(dǎo)用戶進(jìn)行后續(xù)的流轉(zhuǎn)操作渠牲。

  • 系統(tǒng)推薦流轉(zhuǎn)

    系統(tǒng)會通過分布式軟總線自發(fā)的驗證設(shè)備安全性,然后組網(wǎng)步悠,組網(wǎng)之后就會去判斷當(dāng)前用戶所處的環(huán)境中沒有用戶體驗更佳的可選設(shè)備签杈,如果存在這樣的設(shè)備那么系統(tǒng)就會推薦用戶進(jìn)行流轉(zhuǎn)。

元服務(wù)開發(fā)總體要求

  • 免安裝HAP包不能超過10MB

    以提供快速響應(yīng)的體驗鼎兽。超過此大小的HAP包不符合免安裝要求答姥,也無法再服務(wù)中心露出。

  • Project Type字段選擇“Atomic Service”

    HarmonyOS 2.0以上版本谚咬,通過DevEco Studio工程向?qū)?chuàng)建元服務(wù)鹦付。

  • 保持免安裝屬性

    對于元服務(wù)升級場景:版本更新時要保持免安裝屬性。如果新版本不支持免安裝择卦,將不允許新版本上架敲长。

  • HAP包必須包含F(xiàn)A

    如果某便捷服務(wù)的入口需要在服務(wù)中心露出郎嫁,則該服務(wù)對應(yīng)的HAP包必須包含F(xiàn)A,且FA中必須制定一個唯一的mainAbility(定位用戶操作入口)祈噪,mainAbility必須為PageAbility泽铛。

服務(wù)卡片定義

  • 服務(wù)卡片(以下簡稱卡片)是FA的一種界面展示形式,將FA的重要信息或操作前置到卡片钳降,以達(dá)到服務(wù)直達(dá)厚宰,減少體驗層級的目的。
  • 卡片常用于嵌入到其他應(yīng)用(當(dāng)前只支持系統(tǒng)應(yīng)用)中作為其界面的一部分顯示遂填,并支持拉起頁面铲觉,發(fā)送消息等基礎(chǔ)的交互能力。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吓坚,一起剝皮案震驚了整個濱河市撵幽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌礁击,老刑警劉巖盐杂,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哆窿,居然都是意外死亡链烈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門挚躯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來强衡,“玉大人,你說我怎么就攤上這事码荔′銮冢” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵缩搅,是天一觀的道長越败。 經(jīng)常有香客問我,道長硼瓣,這世上最難降的妖魔是什么究飞? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮堂鲤,結(jié)果婚禮上噪猾,老公的妹妹穿的比我還像新娘。我一直安慰自己筑累,他們只是感情好袱蜡,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慢宗,像睡著了一般坪蚁。 火紅的嫁衣襯著肌膚如雪奔穿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天敏晤,我揣著相機(jī)與錄音贱田,去河邊找鬼。 笑死嘴脾,一個胖子當(dāng)著我的面吹牛男摧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播译打,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼耗拓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奏司?” 一聲冷哼從身側(cè)響起乔询,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎韵洋,沒想到半個月后竿刁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡搪缨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年食拜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片副编。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡监婶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出齿桃,到底是詐尸還是另有隱情,我是刑警寧澤煮盼,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布短纵,位于F島的核電站,受9級特大地震影響僵控,放射性物質(zhì)發(fā)生泄漏香到。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一报破、第九天 我趴在偏房一處隱蔽的房頂上張望悠就。 院中可真熱鬧,春花似錦充易、人聲如沸梗脾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炸茧。三九已至瑞妇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梭冠,已是汗流浹背辕狰。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留控漠,地道東北人蔓倍。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像盐捷,于是被迫代替她去往敵國和親偶翅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容