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

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

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

鴻蒙ArkUI-X跨語言調(diào)用說明:平臺(tái)差異化【Android、ios動(dòng)態(tài)化】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-23 14:38 ? 次閱讀

動(dòng)態(tài)化介紹

簡介

ArkUI-X支持動(dòng)態(tài)化,使用者可以根據(jù)自己需要?jiǎng)討B(tài)發(fā)布跨平臺(tái)內(nèi)容,從而使跨平臺(tái)部分和宿主應(yīng)用進(jìn)行解耦。動(dòng)態(tài)化能力支持如下兩個(gè)典型場景:

  1. 框架動(dòng)態(tài)化:指ArkUI跨平臺(tái)開發(fā)框架本身可以做到動(dòng)態(tài)下發(fā),即應(yīng)用發(fā)布時(shí)可以不帶框架基礎(chǔ)庫,降低應(yīng)用原始發(fā)布包體積,在需要時(shí)才從云端動(dòng)態(tài)下發(fā)和執(zhí)行加載;
  2. 特性動(dòng)態(tài)化:指用ArkTS語言開發(fā)的特性可以做到動(dòng)態(tài)化,和宿主應(yīng)用解耦,獨(dú)立發(fā)布、升級版本;

說明 :應(yīng)用在使用動(dòng)態(tài)化能力時(shí)需要遵循目標(biāo)終端操作系統(tǒng)應(yīng)用上架規(guī)則,如果違規(guī)可能有下架風(fēng)險(xiǎn),風(fēng)險(xiǎn)由各自應(yīng)用承擔(dān)。 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

實(shí)踐參考

  • [Android平臺(tái)動(dòng)態(tài)化開發(fā)指南]

Android平臺(tái)動(dòng)態(tài)化開發(fā)指南

簡介

本文介紹如何在Android平臺(tái)進(jìn)行ArkUI-X動(dòng)態(tài)化開發(fā),包括動(dòng)態(tài)化目錄規(guī)則及約束。

適用場景

動(dòng)態(tài)化主要包括兩個(gè)典型場景:

  • 場景1:框架動(dòng)態(tài)化,為了降低應(yīng)用ROM體積占用,及滿足動(dòng)態(tài)升級框架目的;
  • 場景2:特性Bundle動(dòng)態(tài)化,特性和宿主應(yīng)用發(fā)布解耦;

開發(fā)指南

目錄說明

動(dòng)態(tài)加載時(shí)要求應(yīng)用沙箱內(nèi)目錄架構(gòu)如下所示:

/data/data/應(yīng)用/files/arkui-x    
├── feature1                    # 跨平臺(tái)特性1
│   ├── ets                     # ets目錄
│   │   ├──sourceMaps.map
│   │   └──modules.abc
│   ├── resources.index         
│   ├── resources              
│   ├── module.json
│   └── libs                    # 特性bundle帶的so庫
│       ├── arm64-v8a
│       ├── armeabi-v7a
│       └── x86_64  
├── systemres                   # ArkUI公共資源
└── libs                        # 根目錄下libs庫
    ├── arm64-v8a               
    │    └──libarkui_android.so    # ArkUI-X引擎
    ├── armeabi-v7a           
    └── x86_64
  1. /data/data/應(yīng)用/files/arkui-x 可以視為ArkUI-X動(dòng)態(tài)加載的沙箱根目錄,框架和特性Bundle均需要放在這個(gè)目錄下;
  2. 根目錄下的libs文件夾放置引擎(libarkui_android.so),及其他公共庫;
  3. 根目錄下要求按照module級別組織, 不可以重名 ;

    加載優(yōu)先級

  • 引擎so庫:優(yōu)先加載應(yīng)用lib目錄下,如果未找到則去應(yīng)用沙箱根目錄加載;

  • 插件so庫:優(yōu)先加載應(yīng)用lib目錄下,如果未找到則去應(yīng)用沙箱根目錄嘗試加載,最后去插件自身的libs目錄加載;

  • module加載:優(yōu)先從應(yīng)用assets目錄下尋找,如果找不到則去沙箱內(nèi)嘗試加載;

  • systemres加載:同上,優(yōu)先加載應(yīng)用assets目錄,找不到則去沙箱內(nèi)加載;
    注意 :不建議應(yīng)用同一個(gè)module,即預(yù)制到應(yīng)用assets內(nèi)又在沙箱同時(shí)部署。

    框架初始化

    如果應(yīng)用使用了框架引擎動(dòng)態(tài)化,首次下載引擎庫后將其放置/data/data/應(yīng)用/files/arkui-x/libs/arm64-v8a

目錄,之后再打開對應(yīng)跨平臺(tái)界面時(shí)初始化框架:

appDelegate = new StageApplicationDelegate();
appDelegate.initApplication(this)

后續(xù)再打開應(yīng)用,建議按照正常流程在Application里初始化框架,提前完全引擎庫加載,提高跨平臺(tái)模塊加載速度;

  • [iOS平臺(tái)動(dòng)態(tài)化開發(fā)指南]

iOS平臺(tái)動(dòng)態(tài)化開發(fā)指南

簡介

本文介紹如何在iOS平臺(tái)進(jìn)行ArkUI-X動(dòng)態(tài)化開發(fā),包括動(dòng)態(tài)化目錄規(guī)則及約束。

適用場景

由于iOS平臺(tái)AppStore不允許應(yīng)用動(dòng)態(tài)更新so庫,因此ArkUI-X在iOS上動(dòng)態(tài)化只能更新界面及業(yè)務(wù)邏輯構(gòu)成的abc,不支持so庫動(dòng)態(tài)加載。應(yīng)用需要將ArkUI-X基礎(chǔ)庫、插件及業(yè)務(wù)so庫提前打包到應(yīng)用內(nèi)上架。

開發(fā)指南

目錄結(jié)構(gòu)

iOS平臺(tái)ArkUI-X沙箱內(nèi)目錄結(jié)構(gòu)如下所示:

/Data/Application/應(yīng)用/Documents/files/arkui-x    
├── feature1                    # 跨平臺(tái)特性1
│   ├── ets                     # ets目錄
│   │   ├──sourceMaps.map
│   │   └──modules.abc
│   ├── resources.index         
│   ├── resources              
│   └── module.json
└── systemres                   # ArkUI公共資源

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

搜狗高速瀏覽器截圖20240326151450.png

  1. /Data/Application/應(yīng)用/Documents/files/arkui-x可以視為ArkUI-X動(dòng)態(tài)加載的沙箱根目錄,特性Bundle需要放在這個(gè)目錄下;
  2. 根目錄下要求按照module級別組織, 不可以重名

加載優(yōu)先級

  • module加載:優(yōu)先從應(yīng)用根目錄下尋找,如果找不到則去沙箱內(nèi)嘗試加載;
  • systemres加載:同上,優(yōu)先加載應(yīng)用根目錄下的資源,找不到則去沙箱內(nèi)加載;
    注意 :不建議應(yīng)用同一個(gè)module,即預(yù)制到應(yīng)用內(nèi)又在沙箱同時(shí)部署。

審核編輯 黃宇

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

    關(guān)注

    12

    文章

    3917

    瀏覽量

    127036
  • iOS
    iOS
    +關(guān)注

    關(guān)注

    8

    文章

    3392

    瀏覽量

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

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42687
收藏 人收藏

    評論

    相關(guān)推薦

    AndroidiOS、鴻蒙平臺(tái)框架ArkUI-X

    AndroidiOS、鴻蒙多個(gè)平臺(tái)上提供生動(dòng)而流暢的用戶界面體驗(yàn)。 一、配套關(guān)系 表1 版本軟件和平臺(tái)配套關(guān)系 目標(biāo)
    的頭像 發(fā)表于 01-31 14:52 ?1687次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>Android</b>、<b class='flag-5'>iOS</b>、<b class='flag-5'>鴻蒙</b>多<b class='flag-5'>平臺(tái)</b>框架<b class='flag-5'>ArkUI-X</b>

    鴻蒙ArkUI-X平臺(tái)開發(fā):【命令行工具(ACE Tools)】

    ACE Tools是一套為ArkUI-X項(xiàng)目平臺(tái)應(yīng)用開發(fā)者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺(tái)運(yùn)行,用于構(gòu)建OpenHarmony/HarmonyOS
    的頭像 發(fā)表于 05-21 17:39 ?1558次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>開發(fā):【命令行工具(ACE Tools)】

    鴻蒙ArkUI-X平臺(tái)開發(fā):【SDK目錄結(jié)構(gòu)介紹】

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如AndroidiOS
    的頭像 發(fā)表于 05-20 16:28 ?752次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>開發(fā):【SDK目錄結(jié)構(gòu)介紹】

    鴻蒙ArkUI-X平臺(tái)開發(fā):【bility開發(fā)說明Android平臺(tái))】

    本文介紹將ArkUI框架擴(kuò)展到Android平臺(tái)所需要的必要的類及其使用說明,開發(fā)者基于OpenHarmony,可復(fù)用大部分的應(yīng)用代碼(生命周期等)并可以部署到
    的頭像 發(fā)表于 05-21 10:54 ?858次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>開發(fā):【bility開發(fā)<b class='flag-5'>說明</b>(<b class='flag-5'>Android</b><b class='flag-5'>平臺(tái)</b>)】

    鴻蒙ArkUI-X語言調(diào)用說明:【平臺(tái)橋接開發(fā)指南(Android)】

    平臺(tái)橋接用于客戶端(ArkUI)和平臺(tái)AndroidiOS)之間傳遞消息,即用于ArkUI
    的頭像 發(fā)表于 05-25 16:26 ?597次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>語言</b><b class='flag-5'>調(diào)用</b><b class='flag-5'>說明</b>:【<b class='flag-5'>平臺(tái)</b>橋接開發(fā)指南(<b class='flag-5'>Android</b>)】

    鴻蒙ArkUI-X語言調(diào)用說明:【平臺(tái)橋接開發(fā)指南(Android)Bridge API】

    本模塊提供ArkUI端和AndroidiOS平臺(tái)端消息通信的功能,包括數(shù)據(jù)傳輸、方法調(diào)用和事件調(diào)用
    的頭像 發(fā)表于 05-25 16:30 ?579次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>語言</b><b class='flag-5'>調(diào)用</b><b class='flag-5'>說明</b>:【<b class='flag-5'>平臺(tái)</b>橋接開發(fā)指南(<b class='flag-5'>Android</b>)Bridge API】

    鴻蒙ArkUI-X語言調(diào)用說明:【平臺(tái)橋接開發(fā)指南(Android)BridgePlugin】

    本模塊提供ArkUI端和Android平臺(tái)端消息通信的功能,包括數(shù)據(jù)傳輸、方法調(diào)用和事件調(diào)用。需配套Ar
    的頭像 發(fā)表于 05-22 14:52 ?1086次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>語言</b><b class='flag-5'>調(diào)用</b><b class='flag-5'>說明</b>:【<b class='flag-5'>平臺(tái)</b>橋接開發(fā)指南(<b class='flag-5'>Android</b>)BridgePlugin】

    鴻蒙ArkUI-X平臺(tái)差異化:【運(yùn)行態(tài)差異化(@ohos.deviceInfo)】

    邏輯不同,或使用了不支持平臺(tái)的API,就需要根據(jù)平臺(tái)不同進(jìn)行一定代碼差異化適配。當(dāng)前僅支持在代碼運(yùn)行態(tài)進(jìn)行差異化,接下來詳細(xì)介紹場景及如何
    的頭像 發(fā)表于 05-25 16:37 ?1777次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>差異化</b>:【運(yùn)行態(tài)<b class='flag-5'>差異化</b>(@ohos.deviceInfo)】

    ArkUI-X開發(fā)指南:【SDK配置和構(gòu)建說明

    ArkUI-X SDK是ArkUI-X開源項(xiàng)目的編譯產(chǎn)物,可將ArkUI-X SDK集成到現(xiàn)有AndroidiOS應(yīng)用工程中,使開發(fā)者基于
    的頭像 發(fā)表于 05-25 16:48 ?2467次閱讀
    <b class='flag-5'>ArkUI-X</b>開發(fā)指南:【SDK配置和構(gòu)建<b class='flag-5'>說明</b>】

    資訊速遞 | ArkUI-X 預(yù)覽版已正式開源!

    較高。使用ArkUI-X平臺(tái)項(xiàng)目后,復(fù)雜單品詳情頁代碼一次編寫支持運(yùn)行到AndroidiOS和HarmonyOS(OpenHarmony
    發(fā)表于 08-11 16:10

    資訊速遞 | ArkUI-X 預(yù)覽版已正式開源!

    開發(fā)的精美、高性能應(yīng)用同時(shí)運(yùn)行在Android、iOS等其它OS平臺(tái)上。 ArkUI-X開源項(xiàng)目地址:https://gitee.com/arkui
    的頭像 發(fā)表于 08-22 22:19 ?789次閱讀
    資訊速遞 | <b class='flag-5'>ArkUI-X</b> 預(yù)覽版已正式開源!

    鴻蒙平臺(tái)框架:【ArkUi-X】創(chuàng)建工程

    鴻蒙推出了鴻ArkUi-X 框架所以就寫個(gè)文章分享一下
    的頭像 發(fā)表于 05-13 17:48 ?831次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>框架:【<b class='flag-5'>ArkUi-X</b>】創(chuàng)建工程

    鴻蒙ArkUI-X平臺(tái)技術(shù):【開發(fā)初體驗(yàn)】

    在DevEco Studio中導(dǎo)入ArkUI-X Sample,快速創(chuàng)建平臺(tái)工程。
    的頭像 發(fā)表于 05-17 15:54 ?546次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>技術(shù):【開發(fā)初體驗(yàn)】

    鴻蒙ArkUI-X平臺(tái)開發(fā):【 應(yīng)用工程結(jié)構(gòu)說明

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如AndroidiOS
    的頭像 發(fā)表于 05-19 21:05 ?518次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>開發(fā):【 應(yīng)用工程結(jié)構(gòu)<b class='flag-5'>說明</b>】

    鴻蒙ArkUI-X語言調(diào)用說明:【平臺(tái)橋接(@arkui-x.bridge)】

    平臺(tái)橋接用于客戶端(ArkUI)和平臺(tái)AndroidiOS)之間傳遞消息,即用于ArkUI
    的頭像 發(fā)表于 05-21 15:09 ?644次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>語言</b><b class='flag-5'>調(diào)用</b><b class='flag-5'>說明</b>:【<b class='flag-5'>平臺(tái)</b>橋接(@<b class='flag-5'>arkui-x</b>.bridge)】