動態(tài)化介紹
簡介
ArkUI-X支持動態(tài)化,使用者可以根據(jù)自己需要動態(tài)發(fā)布跨平臺內容,從而使跨平臺部分和宿主應用進行解耦。動態(tài)化能力支持如下兩個典型場景:
- 框架動態(tài)化:指ArkUI跨平臺開發(fā)框架本身可以做到動態(tài)下發(fā),即應用發(fā)布時可以不帶框架基礎庫,降低應用原始發(fā)布包體積,在需要時才從云端動態(tài)下發(fā)和執(zhí)行加載;
- 特性動態(tài)化:指用ArkTS語言開發(fā)的特性可以做到動態(tài)化,和宿主應用解耦,獨立發(fā)布、升級版本;
說明 :應用在使用動態(tài)化能力時需要遵循目標終端操作系統(tǒng)應用上架規(guī)則,如果違規(guī)可能有下架風險,風險由各自應用承擔。 開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[
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)化,為了降低應用ROM體積占用,及滿足動態(tài)升級框架目的;
- 場景2:特性Bundle動態(tài)化,特性和宿主應用發(fā)布解耦;
開發(fā)指南
目錄說明
動態(tài)加載時要求應用沙箱內目錄架構如下所示:
/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動態(tài)加載的沙箱根目錄,框架和特性Bundle均需要放在這個目錄下;- 根目錄下的libs文件夾放置引擎(libarkui_android.so),及其他公共庫;
- 根目錄下要求按照module級別組織, 不可以重名 ;
加載優(yōu)先級
引擎so庫:優(yōu)先加載應用lib目錄下,如果未找到則去應用沙箱根目錄加載;
插件so庫:優(yōu)先加載應用lib目錄下,如果未找到則去應用沙箱根目錄嘗試加載,最后去插件自身的libs目錄加載;
module加載:優(yōu)先從應用assets目錄下尋找,如果找不到則去沙箱內嘗試加載;
systemres加載:同上,優(yōu)先加載應用assets目錄,找不到則去沙箱內加載;
注意 :不建議應用同一個module,即預制到應用assets內又在沙箱同時部署。框架初始化
如果應用使用了框架引擎動態(tài)化,首次下載引擎庫后將其放置
/data/data/應用/files/arkui-x/libs/arm64-v8a
目錄,之后再打開對應跨平臺界面時初始化框架:
appDelegate = new StageApplicationDelegate();
appDelegate.initApplication(this)
后續(xù)再打開應用,建議按照正常流程在Application里初始化框架,提前完全引擎庫加載,提高跨平臺模塊加載速度;
- [iOS平臺動態(tài)化開發(fā)指南]
iOS平臺動態(tài)化開發(fā)指南
簡介
本文介紹如何在iOS平臺進行ArkUI-X動態(tài)化開發(fā),包括動態(tài)化目錄規(guī)則及約束。
適用場景
由于iOS平臺AppStore不允許應用動態(tài)更新so庫,因此ArkUI-X在iOS上動態(tài)化只能更新界面及業(yè)務邏輯構成的abc,不支持so庫動態(tài)加載。應用需要將ArkUI-X基礎庫、插件及業(yè)務so庫提前打包到應用內上架。
開發(fā)指南
目錄結構
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動態(tài)加載的沙箱根目錄,特性Bundle需要放在這個目錄下;- 根目錄下要求按照module級別組織, 不可以重名 ;
加載優(yōu)先級
- module加載:優(yōu)先從應用根目錄下尋找,如果找不到則去沙箱內嘗試加載;
- systemres加載:同上,優(yōu)先加載應用根目錄下的資源,找不到則去沙箱內加載;
注意 :不建議應用同一個module,即預制到應用內又在沙箱同時部署。
審核編輯 黃宇
-
Android
+關注
關注
12文章
3956瀏覽量
129055 -
iOS
+關注
關注
8文章
3399瀏覽量
152114 -
鴻蒙
+關注
關注
57文章
2463瀏覽量
43568
發(fā)布評論請先 登錄
相關推薦
鴻蒙ArkUI-X跨平臺開發(fā):【命令行工具(ACE Tools)】

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

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

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

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

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

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

評論