按需下载!!全动态插件化框架WXDynamicPlugin解析怎么支持的

插件模块按需下载,既能节省流量,又能减少体积。
WXDynamicPlugin全动态插件化系列文章如下:如不是很明白先看前面文章
Compose的全动态插件化框架支持了,已更新到AGP 8.6,Kotlin2.0.20,支持Compose

有介绍相关配置 和 推荐阅读顺序:

一、前言

WXDynamicPlugin 全动态插件化框架,开源已经快一年了,它即支持零反射,零Hook,还能支持所有逻辑全动态化,支持Debug等特性。

最近有网友反映它怎么支持按需下载?

  • 按需下载:即当真要用的时候,才去下载加载安装插件,比如说:当正要点击去一个单独模块页面时候,这时候才下载下来,然后加载完成,然后再进去。
  • 其实它本来是支持的,因为毕竟全动态化,所以想要什么功能,然后添加什么功能就行。无需更改宿主,所有想添加的逻辑都以插件化的方式打包进去。
  • 下面我来具体介绍下怎么实现的

二、按需下载添加逻辑实现:

  1. 假设我原实例项目里面的other, other2模块,都不做成在第一次安装启动时候下载了,要做成当点击去other,other2时候,才下载。
  2. 首先把other,other2两个配置的模块删掉,两个文件内都要删掉:如下:
    1)宿主包内默认配置other的地方 2)打包版本文件和vc文件的地方
  3. 然后去插件管理器里面添加引入我的下载加载插件逻辑模块:如下图
  4. 然后去插件管理器里面添加下载加载插件逻辑方法,添加如下图方法,我最新一版代码这个是提交上去了,可以就使用我这个方法,当然,如果觉得还有更好的写法,下面截图里面代码可以自己写,毕竟这是在插件管理器里面,它也是一个插件,全动态化的,想改成自己习惯的写法,可以自由发挥修改。
  5. 然后去我示例项目使用的的地方,点击去往other,和other2模块的地方。进行拦截判断
    1)注意:我示例项目中有3个地方点击去往other模块,有2个地方去往other2模块,所以要修改5个地方。
    2) 我最新一版 原来方案和按需下载方案代码都写上去了,提交上去了,把按需下载方案注释掉了,需要注释掉原来方案一,放开按需下载方案二。
    3) 如下图可见2中方案,我默认还是原来方案一。 首页点击去往底部菜单tab2,tab2,tab4,这里3个地方都是要进去other模块的,需要注释掉原来方案一,放开按需下载方案二 4)去往other2模块的有2个地方,1是首页新闻列表点击去详情去other模块,2是底部tab示例下面点击去other2模块 首页新闻列表点击处:需要注释掉原来方案一,放开按需下载方案二
    5)底部tab示例下面点击去other2模块item点击处:需要注释掉原来方案一,放开按需下载方案二
  6. 注意otehr,other2相关插件模块文件放在哪儿?答曰:宿主里面配置服务下载地址路径文件下面,即原来方案一时候放的地方。
  7. 以上修改的地方,宿主 WX-Host 下修改的地方需要重新安装宿主,WX-Plugin 插件目录下修改的地方需要重新打包重新发布。
  8. 以上修改验证按需下载 注意
    1)是需要将最新代码拉取下来,将宿主服务器地址配置成自己的服务器地址,具体怎么配置,参考我前面文章,去掉other集合数据,重新运行宿主。
    2)然后打包发布到自己的服务器地址。从上面图可以看到,插件模块更改有4处:首页模块打包修改,other-lib模块打包修改,打包插件版本模块和新的vc文件,管理器模块,这5个文件是修改过的,需要发布到自己服务器地址。 而我项目默认不是按需下载other,other2两模块的,默认是代码里面是方案一。所以我的那个服务器地址上放的这5个文件内容中的逻辑也是走的方案一逻辑,如果只去掉other集合里面内容,不修改插件存放地址,是不能生效的。
  9. 接入到自己项目里面,是不需要有2种方案逻辑的,只有一种存在的。

三、Other集合配置还可以怎样配置:

  1. 我上面提供了可以验证按需下载,是把宿主 other集和打包存放服务器文件的other集全部置空的
  2. 可以首次宿主和other集和打包存放服务器文件的other集 只配置一个other模块,也可以只有2个模块:other,和other2模块,然后第3,4,5,6,7...模块做成按需下载,这一切都是根据自己的业务来配置。

四、总结

本文主要分享了全动态插件化框架WXDynamicPlugin 如何按需下载:

  1. 在原实例项目里面内置了2种方案
  2. 需要验证的拉取下来,注释掉方案1即可验证按需下载。

github地址
gitee地址

感谢阅读:

欢迎用你发财的小手 关注,点赞、收藏

这里你会学到不一样的东西

相关推荐
alexhilton8 小时前
Android的Agent优先时代:构建时vs运行时
android·kotlin·android jetpack
Cutecat_9 小时前
视频字幕处理工具横向:提取模式 vs 编辑模式,该如何选择
android·前端·ios·语音识别
2601_9617652910 小时前
【分享】PlayerPro媒体音乐播放器 完整专业版
android·媒体
飞凌嵌入式11 小时前
T153核心板:异构架构赋能工业嵌入式,筑牢工业设备实时控制底座
架构
陈猪的杰咪11 小时前
GitHub Copilot 2026计费新规:AI Credits消耗解析与节省策略
人工智能·ai·架构·github·copilot
watersink12 小时前
MCP 协议与 Skill 开发架构培训文档
人工智能·架构
@insist12312 小时前
系统架构设计师-嵌入式处理器核心知识体系:从分类到架构选型全解析
架构·分类·系统架构·软考·系统架构设计师·软件水平考试
JohnnyDeng9412 小时前
【Android】Android 包体积优化:R8/ProGuard 深度配置全攻略
android·性能优化·kotlin·jetpack
故渊at12 小时前
第九板块:Android 多媒体体系 | 第二十四篇:Camera Service 与 HAL3 成像流水线
android·camera·多媒体体系·hal3
实在智能RPA13 小时前
航空维修知识库构建方法:从RAG到Agent-native的架构演进与全栈工程实践
人工智能·ai·架构