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

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

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

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-23 14:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

動態(tài)化介紹

簡介

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

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

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

實踐參考

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

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

簡介

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

適用場景

動態(tài)化主要包括兩個典型場景:

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

開發(fā)指南

目錄說明

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

/data/data/應(yīng)用/files/arkui-x    
├── feature1                    # 跨平臺特性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動態(tài)加載的沙箱根目錄,框架和特性Bundle均需要放在這個目錄下;
  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)用同一個module,即預(yù)制到應(yīng)用assets內(nèi)又在沙箱同時部署。

    框架初始化

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

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

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

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

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

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

簡介

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

適用場景

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

開發(fā)指南

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

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

/Data/Application/應(yīng)用/Documents/files/arkui-x    
├── feature1                    # 跨平臺特性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動態(tài)加載的沙箱根目錄,特性Bundle需要放在這個目錄下;
  2. 根目錄下要求按照module級別組織, 不可以重名

加載優(yōu)先級

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

審核編輯 黃宇

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

    關(guān)注

    12

    文章

    3972

    瀏覽量

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

    關(guān)注

    8

    文章

    3399

    瀏覽量

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

    關(guān)注

    60

    文章

    2613

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

    平臺橋接用于客戶端(ArkUI)和平臺AndroidiOS)之間傳遞消息,即用于ArkUI
    的頭像 發(fā)表于 05-25 16:26 ?1235次閱讀
    <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'>平臺</b>橋接開發(fā)指南(<b class='flag-5'>Android</b>)】

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

    本模塊提供ArkUI端和AndroidiOS平臺端消息通信的功能,包括數(shù)據(jù)傳輸、方法調(diào)用和事件調(diào)用
    的頭像 發(fā)表于 05-25 16:30 ?1285次閱讀
    <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'>平臺</b>橋接開發(fā)指南(<b class='flag-5'>Android</b>)Bridge API】

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

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

    ArkUI-X平臺框架接入指南

    ArkUI平臺框架(ArkUI-X)進一步將ArkUI開發(fā)框架擴展到了多個OS平臺:目前支持O
    發(fā)表于 05-18 18:21

    ArkUI-x平臺Bridge最佳實踐

    ;一碼三平臺\" 前面講到的bridge主要是解決開發(fā)者在進行ArkTS代碼開發(fā)時,需要使用的鴻蒙API不支持平臺的問題,在Android
    發(fā)表于 06-10 23:06

    ArkUI-X平臺差異化

    : 1.自身業(yè)務(wù)邏輯不同平臺本來就有差異; 2.在OpenHarmony上調(diào)用了不支持平臺的API,這就需要在OpenHarmony上仍然
    發(fā)表于 06-10 23:08

    ArkUI-XAndroid平臺動態(tài)化開發(fā)指南

    本文介紹如何在Android平臺進行ArkUI-X動態(tài)化開發(fā),包括動態(tài)目錄規(guī)則及約束。 適用場
    發(fā)表于 06-15 23:33

    ArkUI-X平臺應(yīng)用改造指南

    的HarmonyOS Next應(yīng)用,配套ArkUI-X平臺框架,可以快速改造為平臺應(yīng)用,縮短開發(fā)周期,同時還能確保應(yīng)用在 Harmony
    發(fā)表于 06-16 23:05

    ArkUI-X平臺技術(shù)落地-華為運動健康(一)

    開發(fā)工作量以及保證體驗一致性,對于運動健康A(chǔ)pp而言,顯得尤為重要。作為鴻蒙NEXT系統(tǒng)生態(tài)中的重要一員,ArkUI-X框架是我們平臺技術(shù)方案的首選。結(jié)合當(dāng)前運動健康三端現(xiàn)狀,具體采
    發(fā)表于 06-18 22:53

    ArkUI-X平臺技術(shù)落地-華為運動健康(二)

    管理,調(diào)用方在調(diào)用bridge方法的時候,只需要指定bridge的類型和對應(yīng)的bridge方法名,即可像調(diào)用原生ts方法一樣調(diào)用bridge方法。
    發(fā)表于 06-18 23:04

    ArkUI-X應(yīng)用工程結(jié)構(gòu)說明

    簡介 本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴展到不同的OS平臺,比如AndroidiOS
    發(fā)表于 06-19 23:11

    【HarmonyOS next】ArkUI-X新聞熱搜聚合App【進階】

    通過ArkUI-X鴻蒙下的新聞熱搜聚合App轉(zhuǎn)換為iOS 一、項目背景與技術(shù)選型 1.1 項目概述 本案例基于鴻蒙(HarmonyOS)開發(fā)的聚合熱搜熱榜應(yīng)用,通過
    發(fā)表于 06-28 21:43

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

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

    鴻蒙ArkUI-X平臺技術(shù):【開發(fā)初體驗】

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

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

    平臺橋接用于客戶端(ArkUI)和平臺AndroidiOS)之間傳遞消息,即用于ArkUI
    的頭像 發(fā)表于 05-21 15:09 ?1290次閱讀
    <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'>平臺</b>橋接(@<b class='flag-5'>arkui-x</b>.bridge)】

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品