国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

鴻蒙開(kāi)發(fā):線(xiàn)程模型

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-24 17:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

線(xiàn)程模型

FA模型下的線(xiàn)程主要有如下三類(lèi):

  • 主線(xiàn)程: 負(fù)責(zé)管理其他線(xiàn)程。
  • Ability線(xiàn)程:
    • 每個(gè)Ability一個(gè)線(xiàn)程。
    • 輸入事件分發(fā)。
    • UI繪制。
    • 應(yīng)用代碼回調(diào)(事件處理,生命周期)。
    • 接收Worker發(fā)送的消息。
  • Worker線(xiàn)程: 執(zhí)行耗時(shí)操作。

基于當(dāng)前的線(xiàn)程模型,不同的業(yè)務(wù)功能運(yùn)行在不同的線(xiàn)程上,業(yè)務(wù)功能的交互就需要線(xiàn)程間通信。線(xiàn)程間通信目前主要有[Emitter]
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

使用Emitter進(jìn)行線(xiàn)程間通信

[Emitter]主要提供線(xiàn)程間發(fā)送和處理事件的能力,包括對(duì)持續(xù)訂閱事件或單次訂閱事件的處理、取消訂閱事件、發(fā)送事件到事件隊(duì)列等。

Emitter的開(kāi)發(fā)步驟如下:

  1. 訂閱事件

    import emitter from '@ohos.events.emitter';
    import promptAction from '@ohos.promptAction';
    import hilog from '@ohos.hilog';
    
    const TAG: string = 'ThreadModel';
    const DOMAIN_NUMBER: number = 0xFF00;
    
    // 定義一個(gè)eventId為1的事件
    let event: emitter.InnerEvent = {
      eventId: 1
    };
    
    // 收到eventId為1的事件后執(zhí)行該回調(diào)
    let callback = (eventData: emitter.EventData): void = > {
      promptAction.showToast({
        message: JSON.stringify(eventData)
      });
      hilog.info(DOMAIN_NUMBER, TAG, 'event callback:' + JSON.stringify(eventData));
    };
    
    // 訂閱eventId為1的事件
    emitter.on(event, callback);
    promptAction.showToast({
      message: $r('app.string.emitter_subscribe_success_toast')
    });
    
  2. 發(fā)送事件

    import emitter from '@ohos.events.emitter';
    
    // 定義一個(gè)eventId為1的事件,事件優(yōu)先級(jí)為L(zhǎng)ow
    let event: emitter.InnerEvent = {
      eventId: 1,
      priority: emitter.EventPriority.LOW
    };
    
    let eventData: emitter.EventData = {
      data: {
        content: 'c',
        id: 1,
        isEmpty: false
      }
    };
    
    // 發(fā)送eventId為1的事件,事件內(nèi)容為eventData
    emitter.emit(event, eventData);
    

[Worker]兩種方式,其中Emitter主要適用于線(xiàn)程間的事件同步, Worker主要用于新開(kāi)一個(gè)線(xiàn)程執(zhí)行耗時(shí)任務(wù)。

Worker簡(jiǎn)介

Worker主要作用是為應(yīng)用程序提供一個(gè)多線(xiàn)程的運(yùn)行環(huán)境,可滿(mǎn)足應(yīng)用程序在執(zhí)行過(guò)程中與主線(xiàn)程分離,在后臺(tái)線(xiàn)程中運(yùn)行一個(gè)腳本操作耗時(shí)操作,極大避免類(lèi)似于計(jì)算密集型或高延遲的任務(wù)阻塞主線(xiàn)程的運(yùn)行。具體接口信息及使用方法詳情請(qǐng)見(jiàn)[Worker]。

Worker運(yùn)作機(jī)制

圖1 Worker運(yùn)作機(jī)制示意圖

worker

創(chuàng)建Worker的線(xiàn)程稱(chēng)為宿主線(xiàn)程(不一定是主線(xiàn)程,工作線(xiàn)程也支持創(chuàng)建Worker子線(xiàn)程),Worker自身的線(xiàn)程稱(chēng)為Worker子線(xiàn)程(或Actor線(xiàn)程、工作線(xiàn)程)。每個(gè)Worker子線(xiàn)程與宿主線(xiàn)程擁有獨(dú)立的實(shí)例,包含基礎(chǔ)設(shè)施、對(duì)象、代碼段等。Worker子線(xiàn)程和宿主線(xiàn)程之間的通信是基于消息傳遞的,Worker通過(guò)序列化機(jī)制與宿主線(xiàn)程之間相互通信,完成命令及數(shù)據(jù)交互。

Worker注意事項(xiàng)

  • 創(chuàng)建Worker時(shí),有手動(dòng)和自動(dòng)兩種創(chuàng)建方式,手動(dòng)創(chuàng)建Worker線(xiàn)程目錄及文件時(shí),還需同步進(jìn)行相關(guān)配置,詳情請(qǐng)參考[創(chuàng)建Worker的注意事項(xiàng)]。
  • 使用Worker能力時(shí),構(gòu)造函數(shù)中傳入的Worker線(xiàn)程文件的路徑在不同版本有不同的規(guī)則,詳情請(qǐng)參見(jiàn)[文件路徑注意事項(xiàng)]。
  • Worker創(chuàng)建后需要手動(dòng)管理生命周期,且最多同時(shí)運(yùn)行的Worker子線(xiàn)程數(shù)量為64個(gè),詳情請(qǐng)參見(jiàn)[生命周期注意事項(xiàng)]。
  • 由于不同線(xiàn)程中上下文對(duì)象是不同的,因此Worker線(xiàn)程只能使用線(xiàn)程安全的庫(kù),例如UI相關(guān)的非線(xiàn)程安全庫(kù)不能使用,具體請(qǐng)見(jiàn)[多線(xiàn)程安全注意事項(xiàng)]。
  • 序列化傳輸?shù)臄?shù)據(jù)量大小限制為16MB。
  • 使用Worker模塊時(shí),需要在主線(xiàn)程中注冊(cè)onerror接口,否則當(dāng)worker線(xiàn)程出現(xiàn)異常時(shí)會(huì)發(fā)生jscrash問(wèn)題。
  • 不支持跨HAP使用Worker線(xiàn)程文件。

創(chuàng)建Worker的注意事項(xiàng)

Worker線(xiàn)程文件需要放在"{moduleName}/src/main/ets/"目錄層級(jí)之下,否則不會(huì)被打包到應(yīng)用中。有手動(dòng)和自動(dòng)兩種創(chuàng)建Worker線(xiàn)程目錄及文件的方式。

  • 手動(dòng)創(chuàng)建:開(kāi)發(fā)者手動(dòng)創(chuàng)建相關(guān)目錄及文件,此時(shí)需要配置build-profile.json5的相關(guān)字段信息,Worker線(xiàn)程文件才能確保被打包到應(yīng)用中。
    Stage模型:

    "buildOption": {
      "sourceOption": {
        "workers": [
          "./src/main/ets/workers/worker.ets"
        ]
      }
    }
    

    FA模型:

    "buildOption": {
      "sourceOption": {
        "workers": [
          "./src/main/ets/MainAbility/workers/worker.ets"
        ]
      }
    }
    
  • 自動(dòng)創(chuàng)建:DevEco Studio支持一鍵生成Worker,在對(duì)應(yīng)的{moduleName}目錄下任意位置, 點(diǎn)擊鼠標(biāo)右鍵 > New > Worker ,即可自動(dòng)生成Worker的模板文件及配置信息,無(wú)需再手動(dòng)在build-profile.json5中進(jìn)行相關(guān)配置。

文件路徑注意事項(xiàng)

當(dāng)使用Worker模塊具體功能時(shí),均需先構(gòu)造Worker實(shí)例對(duì)象,其構(gòu)造函數(shù)與API版本相關(guān),且構(gòu)造函數(shù)需要傳入Worker線(xiàn)程文件的路徑(scriptURL)。

// 導(dǎo)入模塊
import { worker } from '@kit.ArkTS';

// API 9及之后版本使用:
const worker1: worker.ThreadWorker = new worker.ThreadWorker('entry/ets/workers/MyWorker.ets');
// API 8及之前版本使用:
const worker2: worker.Worker = new worker.Worker('entry/ets/workers/MyWorker.ets');

Stage模型下的文件路徑規(guī)則

構(gòu)造函數(shù)中的scriptURL要求如下:

  • scriptURL的組成包含 {moduleName}/ets 和相對(duì)路徑 relativePath。
  • relativePath是Worker線(xiàn)程文件和"{moduleName}/src/main/ets/"目錄的相對(duì)路徑。

1) 加載Ability中Worker線(xiàn)程文件場(chǎng)景

加載Ability中的worker線(xiàn)程文件,加載路徑規(guī)則:{moduleName}/ets/{relativePath}。

import { worker } from '@kit.ArkTS';

// worker線(xiàn)程文件所在路徑:"entry/src/main/ets/workers/worker.ets"
const workerStage1: worker.ThreadWorker = new worker.ThreadWorker('entry/ets/workers/worker.ets');

// worker線(xiàn)程文件所在路徑:"phone/src/main/ets/ThreadFile/workers/worker.ets"
const workerStage2: worker.ThreadWorker = new worker.ThreadWorker('phone/ets/ThreadFile/workers/worker.ets');

2) 加載Library-[HSP]中Worker線(xiàn)程文件場(chǎng)景

加載HSP中worker線(xiàn)程文件,加載路徑規(guī)則:{moduleName}/ets/{relativePath}。

import { worker } from '@kit.ArkTS';

// worker線(xiàn)程文件所在路徑: "hsp/src/main/ets/workers/worker.ets"
const workerStage3: worker.ThreadWorker = new worker.ThreadWorker('hsp/ets/workers/worker.ets');

3) 加載Library-[HAR]中Worker線(xiàn)程文件場(chǎng)景

加載HAR中worker線(xiàn)程文件存在以下兩種情況:

  • @標(biāo)識(shí)路徑加載形式:所有種類(lèi)的模塊加載本地HAR中的Worker線(xiàn)程文件,加載路徑規(guī)則:@{moduleName}/ets/{relativePath}。
  • 相對(duì)路徑加載形式:本地HAR加載該包內(nèi)的Worker線(xiàn)程文件,加載路徑規(guī)則:創(chuàng)建Worker對(duì)象所在文件與Worker線(xiàn)程文件的相對(duì)路徑。

需要注意的是:如果HAR包會(huì)被打包成三方包使用,則HAR包中使用Worker僅支持通過(guò)相對(duì)路徑加載形式創(chuàng)建。

import { worker } from '@kit.ArkTS';

// @標(biāo)識(shí)路徑加載形式:
// worker線(xiàn)程文件所在路徑: "har/src/main/ets/workers/worker.ets"
const workerStage4: worker.ThreadWorker = new worker.ThreadWorker('@har/ets/workers/worker.ets');

// 相對(duì)路徑加載形式:
// worker線(xiàn)程文件所在路徑: "har/src/main/ets/workers/worker.ets"
// 創(chuàng)建Worker對(duì)象的文件所在路徑:"har/src/main/ets/components/mainpage/MainPage.ets"
const workerStage5: worker.ThreadWorker = new worker.ThreadWorker('../../workers/worker.ets');

FA模型下的文件路徑規(guī)則

構(gòu)造函數(shù)中的scriptURL為:Worker線(xiàn)程文件與"{moduleName}/src/main/ets/MainAbility"的相對(duì)路徑。

import { worker } from '@kit.ArkTS';

// 主要說(shuō)明以下三種場(chǎng)景:

// 場(chǎng)景1: Worker線(xiàn)程文件所在路徑:"{moduleName}/src/main/ets/MainAbility/workers/worker.ets"
const workerFA1: worker.ThreadWorker = new worker.ThreadWorker("workers/worker.ets", {name:"first worker in FA model"});

// 場(chǎng)景2: Worker線(xiàn)程文件所在路徑:"{moduleName}/src/main/ets/workers/worker.ets"
const workerFA2: worker.ThreadWorker = new worker.ThreadWorker("../workers/worker.ets");

// 場(chǎng)景3: Worker線(xiàn)程文件所在路徑:"{moduleName}/src/main/ets/MainAbility/ThreadFile/workers/worker.ets"
const workerFA3: worker.ThreadWorker = new worker.ThreadWorker("ThreadFile/workers/worker.ets");

HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

鴻蒙文檔.png

生命周期注意事項(xiàng)

  • Worker的創(chuàng)建和銷(xiāo)毀耗費(fèi)性能,建議開(kāi)發(fā)者合理管理已創(chuàng)建的Worker并重復(fù)使用。Worker空閑時(shí)也會(huì)一直運(yùn)行,因此當(dāng)不需要Worker時(shí),可以調(diào)用[terminate()]接口或[parentPort.close()]方法主動(dòng)銷(xiāo)毀Worker。若Worker處于已銷(xiāo)毀或正在銷(xiāo)毀等非運(yùn)行狀態(tài)時(shí),調(diào)用其功能接口,會(huì)拋出相應(yīng)的錯(cuò)誤。
  • Worker的數(shù)量由內(nèi)存管理策略決定,設(shè)定的內(nèi)存閾值為1.5GB和設(shè)備物理內(nèi)存的60%中的較小者。在內(nèi)存允許的情況下,系統(tǒng)最多可以同時(shí)運(yùn)行64個(gè)Worker。如果嘗試創(chuàng)建的Worker數(shù)量超出這一上限,系統(tǒng)將拋出錯(cuò)誤:“Worker initialization failure, the number of workers exceeds the maximum.”。實(shí)際運(yùn)行的Worker數(shù)量會(huì)根據(jù)當(dāng)前內(nèi)存使用情況動(dòng)態(tài)調(diào)整。一旦所有Worker和主線(xiàn)程的累積內(nèi)存占用超過(guò)了設(shè)定的閾值,系統(tǒng)將觸發(fā)內(nèi)存溢出(OOM)錯(cuò)誤,導(dǎo)致應(yīng)用程序崩潰。

說(shuō)明: FA模型每個(gè)Ability都有一個(gè)獨(dú)立的線(xiàn)程,Emiter可用于Ability線(xiàn)程內(nèi)、Ability線(xiàn)程間、Ability線(xiàn)程與Worker線(xiàn)程的事件同步。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2963

    瀏覽量

    45883
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鴻蒙內(nèi)核源碼Task/線(xiàn)程技術(shù)分析

    前言 在鴻蒙內(nèi)核中,廣義上可理解為一個(gè)Task就是一個(gè)線(xiàn)程 一、怎么理解Task 1. 官方文檔是怎么描述線(xiàn)程 基本概念 從系統(tǒng)的角度看,線(xiàn)程是競(jìng)爭(zhēng)系統(tǒng)資源的最小運(yùn)行單元。
    的頭像 發(fā)表于 10-18 10:42 ?3210次閱讀
    <b class='flag-5'>鴻蒙</b>內(nèi)核源碼Task/<b class='flag-5'>線(xiàn)程</b>技術(shù)分析

    鴻蒙OS 線(xiàn)程管理開(kāi)發(fā)指導(dǎo)

    場(chǎng)景介紹 如果應(yīng)用的業(yè)務(wù)邏輯比較復(fù)雜,可能需要?jiǎng)?chuàng)建多個(gè)線(xiàn)程來(lái)執(zhí)行多個(gè)任務(wù)。這種情況下,代碼復(fù)雜難以維護(hù),任務(wù)與線(xiàn)程的交互也會(huì)更加繁雜。要解決此問(wèn)題,開(kāi)發(fā)者可以使用“TaskDispatcher”來(lái)
    的頭像 發(fā)表于 01-29 16:22 ?1452次閱讀

    鴻蒙原生應(yīng)用開(kāi)發(fā)-ArkTS語(yǔ)言基礎(chǔ)類(lèi)庫(kù)多線(xiàn)程并發(fā)概述

    并發(fā)模型是用來(lái)實(shí)現(xiàn)不同應(yīng)用場(chǎng)景中并發(fā)任務(wù)的編程模型,常見(jiàn)的并發(fā)模型分為基于內(nèi)存共享的并發(fā)模型和基于消息通信的并發(fā)模型。 Actor并發(fā)
    發(fā)表于 03-22 15:40

    鴻蒙原生應(yīng)用開(kāi)發(fā)-ArkTS語(yǔ)言基礎(chǔ)類(lèi)庫(kù)多線(xiàn)程并發(fā)概述

    并發(fā)模型是用來(lái)實(shí)現(xiàn)不同應(yīng)用場(chǎng)景中并發(fā)任務(wù)的編程模型,常見(jiàn)的并發(fā)模型分為基于內(nèi)存共享的并發(fā)模型和基于消息通信的并發(fā)模型。 Actor并發(fā)
    發(fā)表于 03-28 14:35

    DevEco Studio AI輔助開(kāi)發(fā)工具兩大升級(jí)功能 鴻蒙應(yīng)用開(kāi)發(fā)效率再提升

    數(shù)據(jù)支撐時(shí)提供相關(guān)的延伸指導(dǎo)。這種設(shè)計(jì)既保障了鴻蒙技術(shù)支持的專(zhuān)注度,又通過(guò)善意引導(dǎo)幫助用戶(hù)建立合理預(yù)期,最終實(shí)現(xiàn)開(kāi)發(fā)者體驗(yàn)與專(zhuān)業(yè)深度的雙提升。 隨著DeepSeek模型使用RAG能力增強(qiáng)之后
    發(fā)表于 04-18 14:43

    鴻蒙5開(kāi)發(fā)寶藏案例分享---應(yīng)用并發(fā)設(shè)計(jì)

    ?** 鴻蒙并發(fā)編程實(shí)戰(zhàn)指南:解鎖ArkTS多線(xiàn)程黑科技** 嘿,開(kāi)發(fā)者朋友們! 今天給大家扒一扒鴻蒙官方文檔里藏著的并發(fā)編程寶藏—— 100+實(shí)戰(zhàn)場(chǎng)景解決方案 !從金融理財(cái)?shù)接螒?/div>
    發(fā)表于 06-12 16:19

    鴻蒙5開(kāi)發(fā)寶藏案例分享---跨線(xiàn)程性能優(yōu)化指南

    ;>Worker</span>做多線(xiàn)程開(kāi)發(fā)時(shí),總遇到對(duì)象跨線(xiàn)程卡頓的問(wèn)題,原來(lái)鴻蒙早就提供了解決方案。下面結(jié)合代碼和實(shí)戰(zhàn)案例,帶你徹底玩轉(zhuǎn)性能優(yōu)化! 一、痛點(diǎn):跨
    發(fā)表于 06-12 17:13

    BearPi-HM_Nano開(kāi)發(fā)鴻蒙OS內(nèi)核編程開(kāi)發(fā)——Thread多線(xiàn)程

    BearPi-HM_Nano開(kāi)發(fā)鴻蒙OS內(nèi)核編程開(kāi)發(fā)——Thread多線(xiàn)程本示例將演示如何在BearPi-HM_Nano開(kāi)發(fā)板上使用cms
    發(fā)表于 04-09 09:50

    線(xiàn)程服務(wù)器編程模型:如何正確使用mutex 和condition variable

    本文對(duì)多線(xiàn)程服務(wù)器的常用編程模型進(jìn)行了一個(gè)詳細(xì)的解讀,本文中的多線(xiàn)程服務(wù)器是運(yùn)行在 Linux 操作系統(tǒng)上網(wǎng)絡(luò)應(yīng)用程序。介紹了典型的單線(xiàn)程服務(wù)器編程
    的頭像 發(fā)表于 02-19 08:29 ?7942次閱讀
    多<b class='flag-5'>線(xiàn)程</b>服務(wù)器編程<b class='flag-5'>模型</b>:如何正確使用mutex 和condition variable

    介紹CUDA編程模型及CUDA線(xiàn)程體系

    CUDA 編程模型主要有三個(gè)關(guān)鍵抽象:層級(jí)的線(xiàn)程組,共享內(nèi)存和柵同步(barrier synchronization)。
    的頭像 發(fā)表于 05-19 11:32 ?3078次閱讀
    介紹CUDA編程<b class='flag-5'>模型</b>及CUDA<b class='flag-5'>線(xiàn)程</b>體系

    SCP線(xiàn)程模型特點(diǎn)

    線(xiàn)程 混合協(xié)作調(diào)度模型-調(diào)度在具有相同優(yōu)先級(jí)的線(xiàn)程之間是協(xié)作的。 ?無(wú)需鎖 ?使代碼更簡(jiǎn)單,避免了死鎖的情況。 ?它消除了對(duì)執(zhí)行上下文/RTOS的依賴(lài),并防止了開(kāi)銷(xiāo)。 ?事件在線(xiàn)程上下
    的頭像 發(fā)表于 11-02 17:07 ?1342次閱讀
    SCP<b class='flag-5'>線(xiàn)程</b><b class='flag-5'>模型</b>特點(diǎn)

    使用 Taro 開(kāi)發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開(kāi)發(fā)指南

    隨著鴻蒙系統(tǒng)的不斷完善,許多應(yīng)用廠(chǎng)商都希望將自己的應(yīng)用移植到鴻蒙平臺(tái)上。最近,Taro 發(fā)布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開(kāi)發(fā)鴻蒙原生應(yīng)用,也可將現(xiàn)有的
    的頭像 發(fā)表于 02-02 16:09 ?2087次閱讀
    使用 Taro <b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>鴻蒙</b>原生應(yīng)用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>指南

    鴻蒙開(kāi)發(fā):【線(xiàn)程模型

    管理其他線(xiàn)程的ArkTS引擎實(shí)例,例如使用TaskPool(任務(wù)池)創(chuàng)建任務(wù)或取消任務(wù)、啟動(dòng)和終止Worker線(xiàn)程
    的頭像 發(fā)表于 06-13 16:38 ?1502次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>線(xiàn)程</b><b class='flag-5'>模型</b>】

    摩爾線(xiàn)程與智譜AI完成大模型性能測(cè)試與適配

    近日,摩爾線(xiàn)程與智譜AI在人工智能領(lǐng)域開(kāi)展了一輪深入的合作,共同對(duì)GPU大模型進(jìn)行了適配及性能測(cè)試。此次測(cè)試不僅涵蓋了大模型的推理能力,還涉及了基于摩爾線(xiàn)程夸娥(KUAE)千卡智算集群
    的頭像 發(fā)表于 06-14 16:40 ?2148次閱讀

    鴻蒙中Stage模型與FA模型詳解

    【HarmonyOS 5】鴻蒙中Stage模型與FA模型詳解 ##鴻蒙開(kāi)發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##
    的頭像 發(fā)表于 07-07 11:50 ?911次閱讀