動態化介紹
簡介
ArkUI-X支持動態化,使用者可以根據自己需要動態發布跨平臺內容,從而使跨平臺部分和宿主應用進行解耦。動態化能力支持如下兩個典型場景:
- 框架動態化:指ArkUI跨平臺開發框架本身可以做到動態下發,即應用發布時可以不帶框架基礎庫,降低應用原始發布包體積,在需要時才從云端動態下發和執行加載;
- 特性動態化:指用ArkTS語言開發的特性可以做到動態化,和宿主應用解耦,獨立發布、升級版本;
說明 :應用在使用動態化能力時需要遵循目標終端操作系統應用上架規則,如果違規可能有下架風險,風險由各自應用承擔。 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
實踐參考
- [Android平臺動態化開發指南]
Android平臺動態化開發指南
簡介
本文介紹如何在Android平臺進行ArkUI-X動態化開發,包括動態化目錄規則及約束。
適用場景
動態化主要包括兩個典型場景:
- 場景1:框架動態化,為了降低應用ROM體積占用,及滿足動態升級框架目的;
- 場景2:特性Bundle動態化,特性和宿主應用發布解耦;
開發指南
目錄說明
動態加載時要求應用沙箱內目錄架構如下所示:
/data/data/應用/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
/data/data/應用/files/arkui-x
可以視為ArkUI-X動態加載的沙箱根目錄,框架和特性Bundle均需要放在這個目錄下;- 根目錄下的libs文件夾放置引擎(libarkui_android.so),及其他公共庫;
- 根目錄下要求按照module級別組織, 不可以重名 ;
加載優先級
引擎so庫:優先加載應用lib目錄下,如果未找到則去應用沙箱根目錄加載;
插件so庫:優先加載應用lib目錄下,如果未找到則去應用沙箱根目錄嘗試加載,最后去插件自身的libs目錄加載;
module加載:優先從應用assets目錄下尋找,如果找不到則去沙箱內嘗試加載;
systemres加載:同上,優先加載應用assets目錄,找不到則去沙箱內加載;
注意 :不建議應用同一個module,即預制到應用assets內又在沙箱同時部署。框架初始化
如果應用使用了框架引擎動態化,首次下載引擎庫后將其放置
/data/data/應用/files/arkui-x/libs/arm64-v8a
目錄,之后再打開對應跨平臺界面時初始化框架:
appDelegate = new StageApplicationDelegate();
appDelegate.initApplication(this)
后續再打開應用,建議按照正常流程在Application里初始化框架,提前完全引擎庫加載,提高跨平臺模塊加載速度;
- [iOS平臺動態化開發指南]
iOS平臺動態化開發指南
簡介
本文介紹如何在iOS平臺進行ArkUI-X動態化開發,包括動態化目錄規則及約束。
適用場景
由于iOS平臺AppStore不允許應用動態更新so庫,因此ArkUI-X在iOS上動態化只能更新界面及業務邏輯構成的abc,不支持so庫動態加載。應用需要將ArkUI-X基礎庫、插件及業務so庫提前打包到應用內上架。
開發指南
目錄結構
iOS平臺ArkUI-X沙箱內目錄結構如下所示:
/Data/Application/應用/Documents/files/arkui-x
├── feature1 # 跨平臺特性1
│ ├── ets # ets目錄
│ │ ├──sourceMaps.map
│ │ └──modules.abc
│ ├── resources.index
│ ├── resources
│ └── module.json
└── systemres # ArkUI公共資源
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
/Data/Application/應用/Documents/files/arkui-x
可以視為ArkUI-X動態加載的沙箱根目錄,特性Bundle需要放在這個目錄下;- 根目錄下要求按照module級別組織, 不可以重名 ;
加載優先級
- module加載:優先從應用根目錄下尋找,如果找不到則去沙箱內嘗試加載;
- systemres加載:同上,優先加載應用根目錄下的資源,找不到則去沙箱內加載;
注意 :不建議應用同一個module,即預制到應用內又在沙箱同時部署。
審核編輯 黃宇
-
Android
+關注
關注
12文章
3964瀏覽量
129564 -
iOS
+關注
關注
8文章
3399瀏覽量
152518 -
鴻蒙
+關注
關注
59文章
2525瀏覽量
43777
發布評論請先 登錄
鴻蒙ArkUI-X跨語言調用說明:【平臺橋接開發指南(Android)BridgePlugin】

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

評論