插件化和热修复,都使用了一个技术点-动态加载技术,在android开发早期,很少用到动态加载技术,因为那时业务需求和应用开发的复杂度整体来说还不算太高,但随着互联网的极速发展,会出现以下几种情况。
1)业务复杂,模块耦合
2)应用间的接入
3)65535的限制
4)App越来越大,影响客户下载安装率的提升
5)应用占用内存越来越大
面临这么多问题,这时插件化应运而生,本文主要对于插件化实现框架中的VirtualAPK做一下源码分析,借此来一探插件化的原理。
本文基于VirtualAPK 0.9.8.6源码进行解析。
有人也许会说,面临以上的问题,我可以用组件化、模块化、分包等技术手段解决,不一定非得用插件化呀,但是当面临以下问题时,可能就不得不考虑插件化了。
无缝
接入,将流量引流到其他app估计还有人会问,小编为什么要基于VirtualAPK来进行插件化的原理分析,其实主要是因为下面一张图,如下是VirtualAPK和主流的插件化框架之间的对比。
特性 | DynamicLoadApk | DynamicAPK | Small |
---|