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

感谢阅读:

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

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

相关推荐
_一条咸鱼_29 分钟前
深度揭秘!Android HorizontalScrollView 使用原理全解析
android·面试·android jetpack
_一条咸鱼_30 分钟前
揭秘 Android RippleDrawable:深入解析使用原理
android·面试·android jetpack
_一条咸鱼_30 分钟前
深入剖析:Android Snackbar 使用原理的源码级探秘
android·面试·android jetpack
_一条咸鱼_32 分钟前
揭秘 Android GestureDetector:深入剖析使用原理
android·面试·android jetpack
_一条咸鱼_32 分钟前
深入探秘 Android DrawerLayout:源码级使用原理剖析
android·面试·android jetpack
_一条咸鱼_32 分钟前
深度揭秘:Android CardView 使用原理的源码级剖析
android·面试·android jetpack
_一条咸鱼_32 分钟前
惊爆!Android RecyclerView 性能优化全解析
android·面试·android jetpack
_一条咸鱼_34 分钟前
探秘 Android RecyclerView 惯性滑动:从源码剖析到实践原理
android·面试·android jetpack
_一条咸鱼_35 分钟前
深入探秘:Android Paint 使用原理的源码级剖析
android·面试·android jetpack
_一条咸鱼_36 分钟前
揭秘 Android NavigationView:源码级深度剖析使用原理
android·面试·android jetpack