ArkUI-X在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里初始化框架,提前完全引擎库加载,提高跨平台模块加载速度;
ArkUI-X在Android平台动态化开发指南的更多相关文章
- android平台手电筒开发源代码
android平台手电筒开发源代码,AndroidManifest.xml文件的入口是startapp,这个文件没上传上来,大家可以自己写. 1. [代码]android 1 2 3 4 5 6 7 ...
- Android平台的开发环境的发展演变
因为之前学习java语言的时候安装过了eclipse,所以想在eclipse上搭建android平台,在参照知乎上大神们的意见,发现了AS强大的代码提示.实时预览和搜索匹配等出色功能,最后还是选择在A ...
- 作业1.3——Android平台的开发环境的发展演变
一开始的打算是在eclipse的基础上搭建Android平台,在ADT.SDK上兜兜转转,听过一些前车之鉴后,还是选择了Android studio.因为之前安装过eclipse,就省去了JDK下载和 ...
- kotlin, 一种新的android平台一级开发语言
最近看到一则科技新闻, 大致内容是google将kotlin语言作为android应用开发的一级语言, 与java并驾齐驱, 这是一个开发界的大事件大新闻, 连google的亲儿子go语言也没有这种待 ...
- Android平台Native开发与JNI机制详解
源文链接: http://mysuperbaby.iteye.com/blog/915425 一个Native Method就是一个Java调用非Java代码的接口.一个Native Method是这 ...
- 调研Android平台的开发环境的发展演变
· 安卓是以linux为基础的开放源码操作系统.因为安卓的开源等原因,所以现在市场上会有大量的APP可供使用,且各个方面都功能强大. · 也许是因为开源的原因,安卓过于碎片化.每个APP互相独立. ...
- 《Android插件化开发指南》面世
本书在京东购买地址:https://item.jd.com/31178047689.html 本书Q群:389329264 (一)这是一本什么书 如果只把本书当作纯粹介绍Android插件化技术的书籍 ...
- cocos2dx3.2 android平台搭建开发环境纠错备忘录
平台:win32 + android cocos2d版本号:3.2 搭建cocos2d-x android 常见问题: 问题1: Android platform not specified, sea ...
- 《Android插件化开发指南》勘误
一些常识: 1)全书70个代码例子中,涉及到插件的例子,请先assemble插件的项目,这会在HostApp项目中生成assets目录,并在该目录下plugin1.apk.这样,HostApp才能正常 ...
- Android:cmake开发指南
一.静态库与动态库构建 (.so)共享库,shared object:节省空间,在运行时去连接,如果执行机器上没有这些库文件就不能执行. (.a)静态库,archive:静态库和程序化为一体,不会分开 ...
随机推荐
- 手把手教你下载b站视频并生成音频字幕
1.下载b站视频: 可以直接使用https://bilibili.iiilab.com/ 贴进去网址就能下载了 2.提取音频 可以使用 ffmpeg 将音频文件提取出来(ffmpeg直接去官网下载即可 ...
- 【Docker】简介
Docker 简介 某个应用,如果可以提供服务,那么就可以打包成docker供给他人使用 是什么 我们具体来看看Docker. 大家需要注意,Docker本身并不是容器,它是创建容器的工具,是应用容器 ...
- 使用Nginx反向代理本地服务(无固定公网IP通过端口映射公开的服务)的坑
使用Nginx反向代理本地服务(无固定公网IP通过端口映射公开的服务)的坑 前言:之前公司的服务器都是云服务器,性能比较差,而我们有一些内部使用的系统和极少数外部用户使用的系统,对资源有一定的要求,也 ...
- CentOS linux安装jdk
1.查找系统是否安装jdk java -versionrpm -qa | grep jdk 2.卸载原jdk rpm -e --nodeps jdk..(这里为自己jdk路径) 3.下载指定版本rpm ...
- uniapp阻止Modal模态框关闭
要阻止uniapp的Modal模态框关闭,没有找到相关api,但可以通过保存配置立即打开的方式变相实现阻止关闭: const option = { title: "输入礼品券名称" ...
- krpano场景拖动时拖动惯性消失的问题
问题背景:在写一个基于krpano的全景项目时突然发现场景拖动时拖动惯性消失了.查看官方文档,检查和控制相关的control标签的参数没有问题,并且也一直没有修改过. 排查过程:推测为某插件调用了相关 ...
- Wan2.1 t2v模型Lora Fine-Tune
Wan2.1 t2v模型Lora Fine-Tune 1. Wan2.1模型 Wan2.1是由阿里巴巴开源的AI视频生成大模型,具备强大的视觉生成能力,支持文本到视频(T2V)和图像到视频(I2V)任 ...
- 在 .NET 中使用 Sqids 快速的为数字 ID 披上神秘短串,轻松隐藏敏感数字!
前言 在当今数字化时代,数据的安全性和隐私性至关重要.随着网络应用的不断发展,数字 ID 作为数据标识和访问控制的关键元素,其保护显得尤为重要.然而,传统的数字 ID 往往直接暴露了一些敏感信息,如顺 ...
- css_初阶
s10.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- 原生JS表格数据常用总结
主要是在数据报表这块, 做了好几年发现, 其实用户最终想要看的并不是酷炫的BI大屏, 而是最基础也是最复杂的 中国式报表. 更多就是倾向于从表格中去获取数据信息, 最简单的就是最好的, 于是还是来总结 ...