0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙應用模型:【應用模型】解析

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-31 11:38 ? 次閱讀

應用模型

應用模型的構成要素

應用模型是系統(tǒng)為開發(fā)者提供的應用程序所需能力的抽象提煉,它提供了應用程序必備的組件和運行機制。有了應用模型,開發(fā)者可以基于一套統(tǒng)一的模型進行應用開發(fā),使應用開發(fā)更簡單、高效。

應用模型的構成要素包括:

  1. 應用組件
    應用組件是應用的基本組成單位,是應用的運行入口。用戶啟動、使用和退出應用過程中,應用組件會在不同的狀態(tài)間切換,這些狀態(tài)稱為應用組件的生命周期。應用組件提供生命周期的回調(diào)函數(shù),開發(fā)者通過應用組件的生命周期回調(diào)感知應用的[狀態(tài)變化]。應用開發(fā)者在編寫應用時,首先需要編寫的就是應用組件,同時還需編寫應用組件的生命周期回調(diào)函數(shù),并在應用配置文件中配置相關信息。這樣,操作系統(tǒng)在運行期間通過配置文件創(chuàng)建應用組件的實例,并調(diào)度它的生命周期回調(diào)函數(shù),從而執(zhí)行開發(fā)者的代碼。
  2. 應用進程模型
    應用進程模型定義應用進程的創(chuàng)建和銷毀方式,以及進程間的通信方式。
  3. 應用線程模型
    應用線程模型定義應用進程內(nèi)線程的創(chuàng)建和銷毀方式、主線程和UI線程的創(chuàng)建方式、線程間的通信方式。
  4. 應用任務管理模型(僅對系統(tǒng)應用開放)
    應用任務管理模型定義任務(Mission)的創(chuàng)建和銷毀方式,以及任務與組件間的關系。所謂任務,即用戶使用一個應用組件實例的記錄。每次用戶啟動一個新的應用組件實例,都會生成一個新的任務。例如,用戶啟動一個視頻應用,此時在“最近任務”界面,將會看到視頻應用這個任務,當用戶點擊這個任務時,系統(tǒng)會把該任務切換到前臺,如果這個視頻應用中的視頻編輯功能也是通過應用組件編寫的,那么在用戶啟動視頻編輯功能時,會創(chuàng)建視頻編輯的應用組件實例,在“最近任務”界面中,將會展示視頻應用、視頻編輯兩個任務。
  5. 應用配置文件
    應用配置文件中包含應用配置信息、應用組件信息、權限信息、開發(fā)者自定義信息等,這些信息在編譯構建、分發(fā)和運行階段分別提供給編譯工具、應用市場和操作系統(tǒng)使用。

應用模型概況

隨著系統(tǒng)的演進發(fā)展,先后提供了兩種應用模型:

  • FA(Feature Ability)模型:從API 7開始支持的模型,已經(jīng)不再主推。
  • Stage模型:從API 9開始新增的模型,是目前主推且會長期演進的模型。在該模型中,由于提供了AbilityStage、WindowStage等類作為應用組件和Window窗口的“舞臺”,因此稱這種應用模型為Stage模型。
  • 開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

通過對比認識FA模型與Stage模型

Stage模型與FA模型最大的區(qū)別在于 :Stage模型中,多個應用組件共享同一個ArkTS引擎實例;而FA模型中,每個應用組件獨享一個ArkTS引擎實例。因此在Stage模型中,應用組件之間可以方便的共享對象和狀態(tài),同時減少復雜應用運行對內(nèi)存的占用。Stage模型作為主推的應用模型,開發(fā)者通過它能夠更加便利地開發(fā)出分布式場景下的復雜應用。

可通過如下對比表格了解兩種模型的整體概況。

表1 FA模型與Stage模型差異概覽

新文檔.png

項目HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿FA模型Stage模型
應用組件1. 組件分類fa-model-component- PageAbility組件:包含UI,提供展示UI的能力。 - ServiceAbility組件:提供后臺服務的能力,無UI。 - DataAbility組件:提供數(shù)據(jù)分享的能力,無UI。 2. 開發(fā)方式 通過導出匿名對象、固定入口文件的方式指定應用組件。開發(fā)者無法進行派生,不利于擴展能力。1. 組件分類stage-model-component- UIAbility組件:包含UI,提供展示UI的能力,主要用于和用戶交互。 - ExtensionAbility組件:提供特定場景(如卡片、輸入法)的擴展能力,滿足更多的使用場景。 2. 開發(fā)方式 采用面向?qū)ο蟮姆绞剑瑢媒M件以類接口的形式開放給開發(fā)者,可以進行派生,利于擴展能力。
進程模型有兩類進程: 1. 主進程 2. 渲染進程有三類進程: 1. 主進程 2. ExtensionAbility進程 3. 渲染進程
線程模型1. ArkTS引擎實例的創(chuàng)建 一個進程可以運行多個應用組件實例,每個應用組件實例運行在一個單獨的ArkTS引擎實例中。 2. 線程模型 每個ArkTS引擎實例都在一個單獨線程(非主線程)上創(chuàng)建,主線程沒有ArkTS引擎實例。 3. 進程內(nèi)對象共享:不支持。1. ArkTS引擎實例的創(chuàng)建 一個進程可以運行多個應用組件實例,所有應用組件實例共享一個ArkTS引擎實例。 2. 線程模型 ArkTS引擎實例在主線程上創(chuàng)建。 3. 進程內(nèi)對象共享:支持。
任務管理模型- 每個PageAbility組件實例創(chuàng)建一個任務。 - 任務會持久化存儲,直到超過最大任務個數(shù)(根據(jù)產(chǎn)品配置自定義)或者用戶主動刪除任務。 - PageAbility組件之間不會形成棧的結構。- 每個UIAbility組件實例創(chuàng)建一個任務。 - 任務會持久化存儲,直到超過最大任務個數(shù)(根據(jù)產(chǎn)品配置自定義)或者用戶主動刪除任務。 - UIAbility組件之間不會形成棧的結構。
應用配置文件使用config.json描述應用信息、HAP信息和應用組件信息。使用app.json5描述應用信息,module.json5描述HAP信息、應用組件信息。
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3255

    瀏覽量

    48907
  • 鴻蒙
    +關注

    關注

    57

    文章

    2368

    瀏覽量

    42897
收藏 人收藏

    評論

    相關推薦

    AI大模型之花,綻放在鴻蒙沃土

    鴻蒙4與大模型,一場注定的相遇
    的頭像 發(fā)表于 08-03 09:10 ?1023次閱讀
    AI大<b class='flag-5'>模型</b>之花,綻放在<b class='flag-5'>鴻蒙</b>沃土

    鴻蒙Stage模型--概述

    Stage模型:HarmonyOS 3.1 Develper Preview版本開始新增的模型,是目前主推且會長期演進的模型。在該模型中,由于提供了AbilityStage、Windo
    的頭像 發(fā)表于 01-29 13:59 ?1343次閱讀
    <b class='flag-5'>鴻蒙</b>Stage<b class='flag-5'>模型</b>--概述

    【大語言模型:原理與工程實踐】大語言模型的評測

    模型在復雜對話中捕捉語義的能力,例如解析“哪里,哪里”的言外之意。閱讀理解部分則通過文章回答問題來檢驗模型的文字理解能力。拼音理解主要考察模型對漢字拼音的掌握情況。最后,在古文及諺語
    發(fā)表于 05-07 17:12

    TLC555-Q1 spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?

    請教貴司提供的模型spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?
    發(fā)表于 11-08 07:42

    MRAS模型和可調(diào)模型參考

    1、簡寫MRAS參考模型和可調(diào)模型參考模型和可調(diào)模型方程:簡寫為如下形式:參考模型:可調(diào)模型:定
    發(fā)表于 08-27 06:44

    HDF Camera 驅(qū)動模型解析

    作者:潤和-徐大為1.Camera驅(qū)動概述相機系統(tǒng)對外向用戶提供預覽、拍照以及錄像等功能。內(nèi)部簡單可分為3層:應用層(app&service)、相機驅(qū)動框架模型(CDDM)、硬件層
    發(fā)表于 11-15 17:33

    TFllite模型的格式簡介

    簡單來說:所謂模型就是一個濾波器,訓練的權重就是濾波系數(shù),輸入經(jīng)過濾波器后得到一個輸出。所以嵌入式AI部署一般就是解析模型得到“濾波系數(shù)”,輸入信號進行一系列類似"濾波&
    發(fā)表于 08-18 07:01

    基于IPO的工作流模型定義與XPDL解析

    基于IPO的工作流模型定義與XPDL解析:根據(jù)工作流聯(lián)盟的相關標準,基于三維視圖給出了工作流過程模型定義,實現(xiàn)了過程模型的XML表述。在此基礎上,通過使用Java2相關技術完成了XPD
    發(fā)表于 01-12 17:15 ?17次下載

    一種氣隙磁場與電磁力的解析計算模型

    與電磁力的解析計算模型。首先,考慮定子相電流諧波對氣隙磁動勢的影響及爪極倒角和定子開槽對氣隙磁導的影響,建立氣隙磁場的解析模型;在此基礎之上,利用麥克斯韋應力張量法建立徑向電磁力的
    發(fā)表于 02-10 10:02 ?2次下載
    一種氣隙磁場與電磁力的<b class='flag-5'>解析</b>計算<b class='flag-5'>模型</b>

    一文解析NMOS管的大信號模型和小信號模型

    NMOS管,其電路模型可分為大信號模型和小信號模型。
    發(fā)表于 10-14 13:04 ?9123次閱讀

    鴻蒙Stage模型和FA模型區(qū)別

    筆者這兩個月一直在折騰分布式應用,并且分別基于 API8 的 FA 模型以及 API9 的 Stage 模型進行了開發(fā),這兩天總算是基本開發(fā)完了,閑下來總結下這兩者的區(qū)別,順便跟大家嘮嘮開發(fā)時踩過的坑。
    的頭像 發(fā)表于 01-04 11:59 ?2647次閱讀

    最強科普!深度解析華為云盤古大模型

    搭檔完成復雜任務 預測臺風路徑降低災害損失 幫助縮短藥物研發(fā)周期 …… 此次發(fā)布有諸多新升級 更為客戶提供了“開箱即用”的模型服務 簡直就是一個AI大禮包! 一支視頻為你深度解析盤古大模型硬實力! 你想了解的都在這兒 原文標題:
    的頭像 發(fā)表于 07-14 15:20 ?1679次閱讀

    模型部署框架FastLLM實現(xiàn)細節(jié)解析

    接著 大模型部署框架 FastLLM 簡要解析 這篇文章首先梳理了一下FastLLM的調(diào)用鏈和關鍵的數(shù)據(jù)結構,然后解析了 FastLLM 的一些實現(xiàn)細節(jié)和CPU/GPU后端實現(xiàn)采用的優(yōu)化技巧。
    的頭像 發(fā)表于 07-27 10:48 ?1344次閱讀
    大<b class='flag-5'>模型</b>部署框架FastLLM實現(xiàn)細節(jié)<b class='flag-5'>解析</b>

    鴻蒙應用模型:【Ability Kit】簡介

    Ability Kit(程序框架服務)提供了應用程序開發(fā)和運行的應用模型,是系統(tǒng)為開發(fā)者提供的應用程序所需能力的抽象提煉,它提供了應用程序必備的組件和運行機制。有了應用模型,開發(fā)者可以基于一套統(tǒng)一的模型進行應用開發(fā),使應用開發(fā)更
    的頭像 發(fā)表于 05-29 14:41 ?672次閱讀
    <b class='flag-5'>鴻蒙</b>應用<b class='flag-5'>模型</b>:【Ability Kit】簡介

    鴻蒙開發(fā):線程模型

    FA模型下的線程主要有如下三類
    的頭像 發(fā)表于 06-24 17:27 ?439次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā):線程<b class='flag-5'>模型</b>