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

本文主要是介绍鸿蒙ArkUI-X跨语言调用说明:平台差异化【Android、ios动态化】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

动态化介绍

简介

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公共资源

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

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

加载优先级

  • module加载:优先从应用根目录下寻找,如果找不到则去沙箱内尝试加载;
  • systemres加载:同上,优先加载应用根目录下的资源,找不到则去沙箱内加载;

    注意:不建议应用同一个module,即预制到应用内又在沙箱同时部署。

最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

高清完整版请点击→《鸿蒙NEXT星河版开发学习文档》

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细资料鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

《鸿蒙 (OpenHarmony)开发学习视频》

图片

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

OpenHarmony北向、南向开发环境搭建

图片

《鸿蒙开发基础》

  1. ArkTS语言

  2. 安装DevEco Studio

  3. 运用你的第一个ArkTS应用

  4. ArkUI声明式UI开发

  5. .……

图片

《鸿蒙开发进阶》

  1. Stage模型入门

  2. 网络管理

  3. 数据管理

  4. 电话服务

  5. 分布式应用开发

  6. 通知与窗口管理

  7. 多媒体技术

  8. 安全技能

  9. 任务管理

  10. WebGL

  11. 国际化开发

  12. 应用测试

  13. DFX面向未来设计

  14. 鸿蒙系统移植和裁剪定制

  15. ……

图片

《鸿蒙开发实战》

  1. ArkTS实践

  2. UIAbility应用

  3. 网络案例

  4. ……

图片

 获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

这篇关于鸿蒙ArkUI-X跨语言调用说明:平台差异化【Android、ios动态化】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997500

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型