0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙ArkUI-X跨语言调用说明:平台差异化【Android、ios动态化】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-23 14:38 次阅读

动态化介绍

简介

ArkUI-X支持动态化,使用者可以根据自己需要动态发布跨平台内容,从而使跨平台部分和宿主应用进行解耦。动态化能力支持如下两个典型场景:

  1. 框架动态化:指ArkUI跨平台开发框架本身可以做到动态下发,即应用发布时可以不带框架基础库,降低应用原始发布包体积,在需要时才从云端动态下发和执行加载;
  2. 特性动态化:指用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
  1. /data/data/应用/files/arkui-x 可以视为ArkUI-X动态加载的沙箱根目录,框架和特性Bundle均需要放在这个目录下;
  2. 根目录下的libs文件夹放置引擎(libarkui_android.so),及其他公共库;
  3. 根目录下要求按照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公共资源

`HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿`

搜狗高速浏览器截图20240326151450.png

  1. /Data/Application/应用/Documents/files/arkui-x可以视为ArkUI-X动态加载的沙箱根目录,特性Bundle需要放在这个目录下;
  2. 根目录下要求按照module级别组织, 不可以重名

加载优先级

  • module加载:优先从应用根目录下寻找,如果找不到则去沙箱内尝试加载;
  • systemres加载:同上,优先加载应用根目录下的资源,找不到则去沙箱内加载;
    注意 :不建议应用同一个module,即预制到应用内又在沙箱同时部署。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3921

    浏览量

    127089
  • iOS
    iOS
    +关注

    关注

    8

    文章

    3393

    浏览量

    150396
  • 鸿蒙
    +关注

    关注

    57

    文章

    2305

    浏览量

    42712
收藏 人收藏

    评论

    相关推荐

    AndroidiOS鸿蒙平台框架ArkUI-X

    AndroidiOS鸿蒙多个平台上提供生动而流畅的用户界面体验。 一、配套关系 表1 版本软件和平台配套关系 目标
    的头像 发表于 01-31 14:52 1709次阅读
    <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'>平台</b>框架<b class='flag-5'>ArkUI-X</b>

    鸿蒙ArkUI-X平台开发:【命令行工具(ACE Tools)】

    ACE Tools是一套为ArkUI-X项目平台应用开发者提供的命令行工具,支持在Windows/Ubuntu/macOS平台运行,用于构建OpenHarmony/HarmonyOS
    的头像 发表于 05-21 17:39 1607次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>开发:【命令行工具(ACE Tools)】

    鸿蒙ArkUI-X平台开发:【SDK目录结构介绍】

    本文档配套ArkUI-X,将OpenHarmony ArkUI开发框架扩展到不同的OS平台,比如AndroidiOS
    的头像 发表于 05-20 16:28 766次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>开发:【SDK目录结构介绍】

    鸿蒙ArkUI-X平台开发:【bility开发说明Android平台)】

    本文介绍将ArkUI框架扩展到Android平台所需要的必要的类及其使用说明,开发者基于OpenHarmony,可复用大部分的应用代码(生命周期等)并可以部署到
    的头像 发表于 05-21 10:54 867次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>开发:【bility开发<b class='flag-5'>说明</b>(<b class='flag-5'>Android</b><b class='flag-5'>平台</b>)】

    鸿蒙ArkUI-X语言调用说明:【平台桥接开发指南(Android)】

    平台桥接用于客户端(ArkUI)和平台AndroidiOS)之间传递消息,即用于ArkUI
    的头像 发表于 05-25 16:26 604次阅读
    <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'>调用</b><b class='flag-5'>说明</b>:【<b class='flag-5'>平台</b>桥接开发指南(<b class='flag-5'>Android</b>)】

    鸿蒙ArkUI-X语言调用说明:【平台桥接开发指南(Android)Bridge API】

    本模块提供ArkUI端和AndroidiOS平台端消息通信的功能,包括数据传输、方法调用和事件调用
    的头像 发表于 05-25 16:30 584次阅读
    <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'>调用</b><b class='flag-5'>说明</b>:【<b class='flag-5'>平台</b>桥接开发指南(<b class='flag-5'>Android</b>)Bridge API】

    鸿蒙ArkUI-X语言调用说明:【平台桥接开发指南(Android)BridgePlugin】

    本模块提供ArkUI端和Android平台端消息通信的功能,包括数据传输、方法调用和事件调用。需配套Ar
    的头像 发表于 05-22 14:52 1093次阅读
    <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'>调用</b><b class='flag-5'>说明</b>:【<b class='flag-5'>平台</b>桥接开发指南(<b class='flag-5'>Android</b>)BridgePlugin】

    鸿蒙ArkUI-X平台差异化:【运行态差异化(@ohos.deviceInfo)】

    逻辑不同,或使用了不支持平台的API,就需要根据平台不同进行一定代码差异化适配。当前仅支持在代码运行态进行差异化,接下来详细介绍场景及如何
    的头像 发表于 05-25 16:37 1793次阅读
    <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'>差异化</b>(@ohos.deviceInfo)】

    ArkUI-X开发指南:【SDK配置和构建说明

    ArkUI-X SDK是ArkUI-X开源项目的编译产物,可将ArkUI-X SDK集成到现有AndroidiOS应用工程中,使开发者基于
    的头像 发表于 05-25 16:48 2486次阅读
    <b class='flag-5'>ArkUI-X</b>开发指南:【SDK配置和构建<b class='flag-5'>说明</b>】

    资讯速递 | ArkUI-X 预览版已正式开源!

    较高。使用ArkUI-X平台项目后,复杂单品详情页代码一次编写支持运行到AndroidiOS和HarmonyOS(OpenHarmony
    发表于 08-11 16:10

    资讯速递 | ArkUI-X 预览版已正式开源!

    开发的精美、高性能应用同时运行在AndroidiOS等其它OS平台上。 ArkUI-X开源项目地址:https://gitee.com/arkui
    的头像 发表于 08-22 22:19 794次阅读
    资讯速递 | <b class='flag-5'>ArkUI-X</b> 预览版已正式开源!

    鸿蒙平台框架:【ArkUi-X】创建工程

    鸿蒙推出了鸿ArkUi-X 框架所以就写个文章分享一下
    的头像 发表于 05-13 17:48 848次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>框架:【<b class='flag-5'>ArkUi-X</b>】创建工程

    鸿蒙ArkUI-X平台技术:【开发初体验】

    在DevEco Studio中导入ArkUI-X Sample,快速创建平台工程。
    的头像 发表于 05-17 15:54 569次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>技术:【开发初体验】

    鸿蒙ArkUI-X平台开发:【 应用工程结构说明

    本文档配套ArkUI-X,将OpenHarmony ArkUI开发框架扩展到不同的OS平台,比如AndroidiOS
    的头像 发表于 05-19 21:05 534次阅读
    <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'>说明</b>】

    鸿蒙ArkUI-X语言调用说明:【平台桥接(@arkui-x.bridge)】

    平台桥接用于客户端(ArkUI)和平台AndroidiOS)之间传递消息,即用于ArkUI
    的头像 发表于 05-21 15:09 655次阅读
    <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'>调用</b><b class='flag-5'>说明</b>:【<b class='flag-5'>平台</b>桥接(@<b class='flag-5'>arkui-x</b>.bridge)】