按需下载!!全动态插件化框架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地址

感谢阅读:

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

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

相关推荐
一尘之中12 小时前
操作系统内核架构深度解析:从单内核、微内核到鸿蒙分布式设计
架构·harmonyos·ai写作
2501_9160137413 小时前
iOS 26 系统流畅度检测 从视觉特效到帧率稳定的实战策略
android·macos·ios·小程序·uni-app·cocoa·iphone
秋月的私语13 小时前
如何快速将当前的c#工程发布成单文件
android·java·c#
sibylyue15 小时前
微服务服务治理
微服务·云原生·架构
StevenGerrad17 小时前
【读书笔记】架构整洁之道 P2~3 编程范式&设计原则
设计模式·架构·软件工程
、BeYourself17 小时前
Android 常见界面布局详解
android
weixin_4111918418 小时前
安卓Handler+Messenger实现跨应用通讯
android
咕噜企业签名分发-淼淼18 小时前
App防止恶意截屏功能的方法:iOS、Android和鸿蒙系统的实现方案
android·ios·harmonyos
Digitally19 小时前
如何将文件从电脑传输到安卓设备
android
比特森林探险记1 天前
MySQL 架构全景解析
数据库·mysql·架构