色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

鴻蒙Ability Kit(程序框架服務(wù))【UIExtensionAbility】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-05 09:19 ? 次閱讀

UIExtensionAbility

概述

[UIExtensionAbility]是UI類型的ExtensionAbility組件,需要與[UIExtensionComponent]一起配合使用,開發(fā)者可以在UIAbility的頁面中通過UIExtensionComponent嵌入提供方應(yīng)用的UIExtensionAbility提供的UI。UIExtensionAbility會(huì)在獨(dú)立于UIAbility的進(jìn)程中運(yùn)行,完成其頁面的布局和渲染。常用于有進(jìn)程隔離訴求的系統(tǒng)彈窗、狀態(tài)欄、膠囊等模塊化開發(fā)的場景。

說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
當(dāng)前UIExtensionAbility和UIExtensionComponent僅支持系統(tǒng)應(yīng)用使用。

生命周期

[UIExtensionAbility]提供了onCreate、onSessionCreate、onSessionDestroy、onForeground、onBackground和onDestroy生命周期回調(diào),根據(jù)需要重寫對應(yīng)的回調(diào)方法。

  • [ onCreate ]:當(dāng)UIExtensionAbility創(chuàng)建時(shí)回調(diào),執(zhí)行初始化業(yè)務(wù)邏輯操作。
  • [ onSessionCreate ]:當(dāng)UIExtensionAbility界面內(nèi)容對象創(chuàng)建后調(diào)用。
  • [ onSessionDestroy ]:當(dāng)UIExtensionAbility界面內(nèi)容對象銷毀后調(diào)用。
  • [ onForeground ]:當(dāng)UIExtensionAbility從后臺轉(zhuǎn)到前臺時(shí)觸發(fā)。
  • [ onBackground ]:當(dāng)UIExtensionAbility從前臺轉(zhuǎn)到后臺時(shí)觸發(fā)。
  • [ onDestroy ]:當(dāng)UIExtensionAbility銷毀時(shí)回調(diào),可以執(zhí)行資源清理等操作。

選擇合適的UIExtensionAbility進(jìn)程模型

UIExtensionAbility支持多實(shí)例,每個(gè)嵌入式顯示對應(yīng)一個(gè)UIExtensionAbility實(shí)例。多實(shí)例場景下默認(rèn)是多進(jìn)程,可配置多進(jìn)程模型。 UIExtensionAbility支持多實(shí)例,每個(gè)嵌入式顯示對應(yīng)一個(gè)UIExtensionAbility實(shí)例。 當(dāng)應(yīng)用中存在多個(gè)UIExtensionAbility實(shí)例,這些實(shí)例可以為多個(gè)獨(dú)立進(jìn)程,也可以共用同一個(gè)進(jìn)程,還可以分為多組、同組實(shí)例共用同一個(gè)進(jìn)程。通過module.json5配置文件中的extensionProcessMode字段,即可為選擇對應(yīng)的進(jìn)程模型,三種模型對比如下:

進(jìn)程模型extensionProcessMode字段配置說明
同一bundle中所有UIExtensionAbility共進(jìn)程bundleUIExtensionAbility實(shí)例之間的通信無需跨IPC通信;實(shí)例之間的狀態(tài)不獨(dú)立,會(huì)存在相互影響。
相同name的UIExtensionAbility共進(jìn)程type將同UIExtensionAbility類配置在同一個(gè)進(jìn)程下,便于應(yīng)用針對UIExtensionAbility類型對實(shí)例進(jìn)行管理。
每個(gè)UIExtensionAbility為獨(dú)立進(jìn)程instanceUIExtensionAbility實(shí)例之間的狀態(tài)不會(huì)彼此影響,安全性更高;實(shí)例之間只能通過跨進(jìn)程進(jìn)行通信。

Bundle中的所有UIExtensionAbility共進(jìn)程

同一個(gè)bundle下的UIExtensionAbility配置在同一個(gè)進(jìn)程中,便于多實(shí)例間的通信。需要關(guān)注的是,各個(gè)實(shí)例之間的狀態(tài)會(huì)彼此影響,當(dāng)進(jìn)程中的一個(gè)實(shí)例異常退出,將導(dǎo)致進(jìn)程中所有的實(shí)例也都會(huì)退出;

圖1 bundle模型配置示意圖
uiextability-bundle-processmodel

Index.ets示例代碼如下:

@Entry
@Component
struct Index {
  @State message: string = 'UIExtension UserA';
  private myProxy: UIExtensionProxy | undefined = undefined;

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(30)
          .size({ width: '100%', height: '50'})
          .fontWeight(FontWeight.Bold)
          .textAlign(TextAlign.Center)

        UIExtensionComponent(
          {
            bundleName: 'com.samples.uiextensionability',
            abilityName: 'UIExtensionProvider',
            moduleName: 'entry',
            parameters: {
              'ability.want.params.uiExtensionType': 'sys/commonUI',
            }
          })
          .onRemoteReady((proxy) = > {
            this.myProxy = proxy;
          })
          .onReceive((data) = > {
            this.message = JSON.stringify(data);
          })
          .onResult((data) = > {
            this.message = JSON.stringify(data);
          })
          .onRelease((code) = > {
            this.message = "release code:" + code;
          })
          .offset({ x: 0, y: 10})
          .size({ width: 300, height: 300})
          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted})

        UIExtensionComponent(
          {
            bundleName: 'com.samples.uiextension2',
            abilityName: 'UIExtensionProviderB',
            moduleName: 'entry',
            parameters: {
              'ability.want.params.uiExtensionType': 'sys/commonUI',
            }
          })
          .onRemoteReady((proxy) = > {
            this.myProxy = proxy;
          })
          .onReceive((data) = > {
            this.message = JSON.stringify(data);
          })
          .onResult((data) = > {
            this.message = JSON.stringify(data);
          })
          .onRelease((code) = > {
            this.message = "release code:" + code;
          })
          .offset({ x: 0, y: 50})
          .size({ width: 300, height: 300})
          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted})
      }
      .width('100%')
    }
    .height('100%')
  }
}

圖2 根據(jù)上述代碼,生成的Index頁面如下:
uiextension-bundle-example

采用該進(jìn)程模型,進(jìn)程名格式為: process name [{bundleName}:{UIExtensionAbility的類型}] 例如,process name [com.ohos.intentexecutedemo:xxx]。 圖3 進(jìn)程模型展示
uiextension-bundle-process-example

同UIExtensionAbility類的所有UIExtensionAbility共進(jìn)程

根據(jù)UIExtensionAbility類進(jìn)行分配進(jìn)程,拉起多個(gè)同樣的UIExtensionAbility實(shí)例時(shí),這些實(shí)例將配置在同一個(gè)進(jìn)程中。將同UIExtensionAbility類配置在同一個(gè)進(jìn)程下,方便應(yīng)用針對UIExtensionAbility類型對實(shí)例進(jìn)行管理;

圖4 type模型配置示意圖
uiextability-type-processmodel

Index.ets示例代碼如下:

@Entry
@Component
struct Index {
  @State message: string = 'UIExtension User';
  private myProxy: UIExtensionProxy | undefined = undefined;

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(30)
          .size({ width: '100%', height: '50'})
          .fontWeight(FontWeight.Bold)
          .textAlign(TextAlign.Center)

        UIExtensionComponent(
          {
            bundleName: 'com.samples.uiextensionability',
            abilityName: 'UIExtensionProviderA',
            moduleName: 'entry',
            parameters: {
              'ability.want.params.uiExtensionType': 'sys/commonUI',
            }
          })
          .onRemoteReady((proxy) = > {
            this.myProxy = proxy;
          })
          .onReceive((data) = > {
            this.message = JSON.stringify(data);
          })
          .onResult((data) = > {
            this.message = JSON.stringify(data);
          })
          .onRelease((code) = > {
            this.message = "release code:" + code;
          })
          .offset({ x: 0, y: 10})
          .size({ width: 300, height: 300})
          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted})

        UIExtensionComponent(
          {
            bundleName: 'com.samples.uiextensionability',
            abilityName: 'UIExtensionProviderB',
            moduleName: 'entry',
            parameters: {
              'ability.want.params.uiExtensionType': 'sys/commonUI',
            }
          })
          .onRemoteReady((proxy) = > {
            this.myProxy = proxy;
          })
          .onReceive((data) = > {
            this.message = JSON.stringify(data);
          })
          .onResult((data) = > {
            this.message = JSON.stringify(data);
          })
          .onRelease((code) = > {
            this.message = "release code:" + code;
          })
          .offset({ x: 0, y: 50})
          .size({ width: 300, height: 300})
          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted})
      }
      .width('100%')
    }
    .height('100%')
  }
}

圖5 根據(jù)上述代碼,生成的Index頁面如下:
uiextability-type-example

采用該進(jìn)程模型,進(jìn)程名格式為: process name [{bundleName}:{UIExtensionAbility名}] 例如,process name [com.ohos.intentexecutedemo:xxx]。 圖6 進(jìn)程模型展示
uiextability-type-process-example

UIExtensionAbility實(shí)例獨(dú)立進(jìn)程

根據(jù)UIExtensionAbility實(shí)例進(jìn)行分配進(jìn)程,配置了instance的UIExtensionAbility實(shí)例,將每個(gè)實(shí)例獨(dú)立一個(gè)進(jìn)程。獨(dú)立進(jìn)程的場景下,UIExtensionAbility實(shí)例之間只能通過跨進(jìn)程進(jìn)行通信,但實(shí)例之間的狀態(tài)不會(huì)彼此影響,安全性更高;

圖7 instance模型配置示意圖
uiextability-instance-processmodel

Index.ets示例代碼如下:

@Entry
@Component
struct Index {
  @State message: string = 'UIExtension User'
  private myProxy: UIExtensionProxy | undefined = undefined;

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(30)
          .size({ width: '100%', height: '50'})
          .fontWeight(FontWeight.Bold)
          .textAlign(TextAlign.Center)

        UIExtensionComponent(
          {
            bundleName: 'com.samples.uiextensionability',
            abilityName: 'UIExtensionProvider',
            moduleName: 'entry',
            parameters: {
              'ability.want.params.uiExtensionType': 'sys/commonUI',
            }
          })
          .onRemoteReady((proxy) = > {
            this.myProxy = proxy;
          })
          .onReceive((data) = > {
            this.message = JSON.stringify(data);
          })
          .onResult((data) = > {
            this.message = JSON.stringify(data);
          })
          .onRelease((code) = > {
            this.message = "release code:" + code;
          })
          .offset({ x: 0, y: 10})
          .size({ width: 300, height: 300})
          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted})

        UIExtensionComponent(
          {
            bundleName: 'com.samples.uiextensionability',
            abilityName: 'UIExtensionProvider',
            moduleName: 'entry',
            parameters: {
              'ability.want.params.uiExtensionType': 'sys/commonUI',
            }
          })
          .onRemoteReady((proxy) = > {
            this.myProxy = proxy;
          })
          .onReceive((data) = > {
            this.message = JSON.stringify(data);
          })
          .onResult((data) = > {
            this.message = JSON.stringify(data);
          })
          .onRelease((code) = > {
            this.message = "release code:" + code;
          })
          .offset({ x: 0, y: 50})
          .size({ width: 300, height: 300})
          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted})
      }
      .width('100%')
    }
    .height('100%')
  }
}

圖8 根據(jù)上述代碼,生成的Index頁面如下:
uiextability-instance-example

采用該進(jìn)程模型,進(jìn)程名格式為: process name [{bundleName}:{UIExtensionAbility的類型}: {實(shí)例后綴}] 例如,process name [com.ohos.intentexecutedemo:xxx:n]。 圖9 進(jìn)程模型展示
uiextability-instance-process-example

UIExtensionAbility通過[UIExtensionContext]和[UIExtensionContentSession]提供相關(guān)能力。本文描述中稱被啟動(dòng)的UIExtensionAbility為提供方,稱啟動(dòng)UIExtensionAbility的UIExtensionComponent組件為使用方。

開發(fā)步驟

為了便于表述,本例中將提供UIExtensionAbility能力的一方稱為提供方,將啟動(dòng)UIExtensionAbility的一方稱為使用方,本例中使用方通過UIExtensionComponent容器啟動(dòng)UIExtensionAbility。

開發(fā)UIExtensionAbility提供方

開發(fā)者在實(shí)現(xiàn)一個(gè)UIExtensionAbility提供方時(shí),需要在DevEco Studio工程中手動(dòng)新建一個(gè)UIExtensionAbility,具體步驟如下。

  1. 在工程Module對應(yīng)的ets目錄下,右鍵選擇“New > Directory”,新建一個(gè)目錄并命名為uiextensionability。
  2. 在uiextensionability目錄,右鍵選擇“New > File”,新建一個(gè).ts文件并命名為UIExtensionAbility.ts。
  3. 打開UIExtensionAbility.ts,導(dǎo)入U(xiǎn)IExtensionAbility的依賴包,自定義類繼承UIExtensionAbility并實(shí)現(xiàn)onCreate、onSessionCreate、onSessionDestroy、onForeground、onBackground和onDestroy生命周期回調(diào)。
    import Want from '@ohos.app.ability.Want';
    import UIExtensionAbility from '@ohos.app.ability.UIExtensionAbility';
    import UIExtensionContentSession from '@ohos.app.ability.    UIExtensionContentSession';
    
    const TAG: string = '[testTag] UIExtAbility '
    
    export default class UIExtAbility extends UIExtensionAbility {
      onCreate() {
        console.log(TAG, `onCreate`);
      }
    
      onForeground() {
        console.log(TAG, `onForeground`);
      }
    
      onBackground() {
        console.log(TAG, `onBackground`);
      }
    
      onDestroy() {
        console.log(TAG, `onDestroy`);
      }
    
      onSessionCreate(want: Want, session: UIExtensionContentSession) {
        console.log(TAG, `onSessionCreate, want: ${JSON.stringify(want)}}`);
        let storage: LocalStorage = new LocalStorage();
        storage.setOrCreate('session', session);
        session.loadContent('pages/Extension',storage);
      }
    
      onSessionDestroy(session: UIExtensionContentSession) {
        console.log(TAG, `onSessionDestroy`);
      }
    }
    
  4. UIExtensionAbility的onSessionCreate中加載了入口頁面文件pages/extension.ets, 并在entrysrcmainresourcesbaseprofilemain_pages.json文件中添加"pages/Extension"聲明,extension.ets內(nèi)容如下:
    import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
    
    let storage = LocalStorage.GetShared();
    const TAG: string = `[testTag] ExtensionPage`;
    
    @Entry(storage)
    @Component
    struct Extension {
      @State message: string = `UIExtension provider`;
      private session: UIExtensionContentSession | undefined = storage.get< UIExtensionContentSession >('session');
      onPageShow() {
        console.info(TAG, 'show');
      }
    
      build() {
        Row() {
          Column() {
            Text(this.message)
              .fontSize(30)
              .fontWeight(FontWeight.Bold)
              .textAlign(TextAlign.Center)
    
            Button("send data")
              .width('80%')
              .type(ButtonType.Capsule)
              .margin({
                top:20
              })
              .onClick(() = > {
                this.session?.sendData({ "data": 543321});
              })
    
            Button("terminate self")
              .width('80%')
              .type(ButtonType.Capsule)
              .margin({
                top:20
              })
              .onClick(() = > {
                this.session?.terminateSelf();
                storage.clear();
              })
    
            Button("terminate self with result")
              .width('80%')
              .type(ButtonType.Capsule)
              .margin({
                top:20
              })
              .onClick(() = > {
                this.session?.terminateSelfWithResult({
                  resultCode: 0,
                  want: {
                    bundleName:"com.example.uiextensiondemo",
                    parameters: { "result": 123456 }
                  }
                })
              })
            }
          }
        .height('100%')
      }
    }
    
  5. 在工程Module對應(yīng)的[module.json5配置文件]中注冊UIExtensionAbility,type標(biāo)簽需要設(shè)置為UIExtensionAbility中配置的對應(yīng)類型,srcEntry標(biāo)簽表示當(dāng)前UIExtensionAbility組件所對應(yīng)的代碼路徑。extensionProcessMode標(biāo)簽標(biāo)識多實(shí)例的進(jìn)程模型,此處以"bundle"為例。
    {
      "module": {
        "extensionAbilities": [
          {
            "name": "UIExtensionProvider",
            "srcEntry": "./ets/uiextensionability/UIExtensionAbility.ets",
            "description": "UIExtensionAbility",
            "type": "sys/commonUI",
            "exported": true,
            "extensionProcessMode": "bundle"
          },
        ]
      }
    }
    

開發(fā)UIExtensionAbility使用方

開發(fā)者可以在UIAbility的頁面中通過UIExtensionComponent容器加載自己應(yīng)用內(nèi)的UIExtensionAbility。 如在首頁文件:pages/Index.ets中添加如下內(nèi)容:
新文檔.png

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
@Entry
@Component
struct Index {
  @State message: string = 'UIExtension User';
  private myProxy: UIExtensionProxy | undefined = undefined;

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(30)
          .size({ width: '100%', height: '50'})
          .fontWeight(FontWeight.Bold)
          .textAlign(TextAlign.Center)

        UIExtensionComponent(
          {
            bundleName: 'com.example.uiextensiondemo',
            abilityName: 'UIExtensionProvider',
            moduleName: 'entry',
            parameters: {
              'ability.want.params.uiExtensionType': 'sys/commonUI',
            }
          })
          .onRemoteReady((proxy) = > {
            this.myProxy = proxy;
          })
          .onReceive((data) = > {
            this.message = JSON.stringify(data);
          })
          .onResult((data) = > {
            this.message = JSON.stringify(data);
          })
          .onRelease((code) = > {
            this.message = "release code:" + code;
          })
          .offset({ x: 0, y: 30})
          .size({ width: 300, height: 300})
          .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted})

        Button("sendData")
          .type(ButtonType.Capsule)
          .offset({ x: 0,y: 60})
          .width('80%')
          .type(ButtonType.Capsule)
          .margin({
            top: 20
          })
          .onClick(() = > {
            this.myProxy?.send({
              "data": 123456,
              "message": "data from component"
            })
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    403

    瀏覽量

    17522
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2392

    瀏覽量

    42972
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模塊提供對Ability生命周期、上下文環(huán)境等調(diào)用管理的能力,包括Ability創(chuàng)建、銷毀、轉(zhuǎn)儲(chǔ)客戶端信息等。
    的頭像 發(fā)表于 04-30 17:42 ?2319次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】

    鴻蒙開發(fā)接口Ability框架:【@ohos.ability.featureAbility (FeatureAbility模塊)】

    FeatureAbility模塊提供帶有UI設(shè)計(jì)與用戶交互的能力,包括啟動(dòng)新的ability、獲取dataAbilityHelper、設(shè)置此Page Ability、獲取當(dāng)前Ability對應(yīng)的窗口,連接
    的頭像 發(fā)表于 05-06 16:31 ?1042次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.<b class='flag-5'>ability</b>.featureAbility (FeatureAbility模塊)】

    鴻蒙開發(fā)接口Ability框架:【 (Context模塊)】

    Context模塊提供了ability或application的上下文的能力,包括允許訪問特定于應(yīng)用程序的資源、請求和驗(yàn)證權(quán)限等。
    的頭像 發(fā)表于 05-13 16:04 ?751次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【 (Context模塊)】

    鴻蒙開發(fā)接口Ability框架:【(AbilityDelegator)】

    AbilityDelegator提供添加用于監(jiān)視指定能力的生命周期狀態(tài)更改的AbilityMonitor對象的能力,包括對AbilityMonitor實(shí)例的添加、刪除、等待ability到達(dá)
    的頭像 發(fā)表于 05-13 17:58 ?987次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【(AbilityDelegator)】

    鴻蒙開發(fā)接口Ability框架:【AbilityDelegator】

    AbilityDelegator提供添加用于監(jiān)視指定能力的生命周期狀態(tài)更改的AbilityMonitor對象的能力,包括對AbilityMonitor實(shí)例的添加、刪除、等待ability到達(dá)
    的頭像 發(fā)表于 05-16 16:48 ?967次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【AbilityDelegator】

    鴻蒙Ability Kit程序框架服務(wù))【ServiceExtensionAbility】

    [ServiceExtensionAbility]是SERVICE類型的ExtensionAbility組件,提供后臺服務(wù)能力,其內(nèi)部持有了一個(gè)[ServiceExtensionContext],通過[ServiceExtensionContext]提供了豐富的接口供外部使用。
    的頭像 發(fā)表于 06-04 14:50 ?1264次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【ServiceExtensionAbility】

    鴻蒙Ability開發(fā)-Stage模型下Ability的創(chuàng)建和使用

    函數(shù) HiLog日志系統(tǒng)可以讓應(yīng)用按照指定類型、指定級別、指定格式字符串打印日志內(nèi)容,幫助開發(fā)者了解應(yīng)用/服務(wù)的運(yùn)行狀態(tài),更好地調(diào)試程序。 HiLog提供了debug、info、warn、error以及fatal
    發(fā)表于 01-08 15:34

    HarmonyOS NEXT Developer Beta1中的Kit

    、AI六大領(lǐng)域,例如: 應(yīng)用框架相關(guān)Kit開放能力:Ability Kit程序框架
    發(fā)表于 06-26 10:47

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))綜述

    一、綜述 Intents Kit(意圖框架服務(wù))是HarmonyOS級的意圖標(biāo)準(zhǔn)體系 ,意圖連接了應(yīng)用/元服務(wù)內(nèi)的業(yè)務(wù)功能。 意圖框架能幫開
    發(fā)表于 11-28 10:43

    鴻蒙應(yīng)用模型:【Ability Kit】簡介

    Ability Kit程序框架服務(wù))提供了應(yīng)用程序開發(fā)和運(yùn)行的應(yīng)用模型,是系統(tǒng)為開發(fā)者提供的應(yīng)
    的頭像 發(fā)表于 05-29 14:41 ?693次閱讀
    <b class='flag-5'>鴻蒙</b>應(yīng)用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡介

    鴻蒙Ability Kit程序框架服務(wù))【Ability內(nèi)頁面間的跳轉(zhuǎn)】

    基于Stage模型下的Ability開發(fā),實(shí)現(xiàn)Ability內(nèi)頁面間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。
    的頭像 發(fā)表于 06-03 20:43 ?325次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>Ability</b>內(nèi)頁面間的跳轉(zhuǎn)】

    鴻蒙Ability Kit程序框架服務(wù))【ExtensionAbility組件】

    ExtensionAbility組件是基于特定場景(例如服務(wù)卡片、輸入法等)提供的應(yīng)用組件,以便滿足更多的使用場景。
    的頭像 發(fā)表于 06-04 15:54 ?651次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【ExtensionAbility組件】

    鴻蒙Ability Kit程序框架服務(wù))【Ability與ServiceExtensionAbility通信】

    本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實(shí)現(xiàn)了Ability與ServiceExtensionAbility之間的通信。
    的頭像 發(fā)表于 06-05 09:28 ?526次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】

    鴻蒙Ability Kit程序框架服務(wù))【應(yīng)用啟動(dòng)框架AppStartup】

    `AppStartup`提供了一種更加簡單高效的初始化組件的方式,支持異步初始化組件加速應(yīng)用的啟動(dòng)時(shí)間。使用啟動(dòng)框架應(yīng)用開發(fā)者只需要分別為待初始化的組件實(shí)現(xiàn)`AppStartup`提供
    的頭像 發(fā)表于 06-10 18:38 ?761次閱讀

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):任務(wù)管理

    AbilityRecord:系統(tǒng)服務(wù)側(cè)管理一個(gè)UIAbility實(shí)例的最小單元,對應(yīng)一個(gè)應(yīng)用側(cè)的UIAbility組件實(shí)例。系統(tǒng)服務(wù)側(cè)管理UIAbility實(shí)例數(shù)量上限為512個(gè)。
    的頭像 發(fā)表于 06-24 14:46 ?504次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:任務(wù)管理
    主站蜘蛛池模板: 伊人久久青草青青综合 | 美艳人妻在厨房翘着屁股 | 97视频在线免费播放 | 最近在线视频观看2018免费 | 日日日操操操 | 在线欧美精品一区二区三区 | bbwvideos欧美老妇 | 伦理片飘花免费影院 | 小SAO货边洗澡边CAO你动漫 | 麻豆高清区在线 | 午夜国产羞羞视频免费网站 | 国产精品人妻无码久久久蜜桃 | 在线观看免费国产成人软件 | 日本女人水多 | 男欢女爱免费视频 | 偷柏自拍亚洲综合在线 | 男人J进女人P | 午夜无码国产理论在线 | 2020国产成人精品视频人 | 欧美 日韩 亚洲 在线 | 在线自拍亚洲视频欧美 | 伦理片qvod | 免费在线观看黄色网址 | 好男人好资源视频高清 | 老司机福利在视频在ae8 | 奶好大下面流了好多水水 | 日本女人水多 | no视频在线观看 | 亚洲精品午夜VA久久成人 | 一边亲着一面膜下奶韩剧免费 | 亚洲黄色在线观看 | 国产乱妇乱子在线播视频播放网站 | 花蝴蝶在线高清视频观看免费播放 | 在线观看成人3d动漫入口 | 波多野结衣教师系列6 | 九九色精品国偷自产视频 | 午夜男女爽爽羞羞影院在线观看 | qvod激情图片 | 99久久精品国产高清一区二区 | www.三级 | 午夜性爽视频男人的天堂在线 |