随着Android生态,技术越来越成熟,目前市场很多Android的项目工程很大,团队人数多,慢慢衍生出了许多组件化插件化技术。
同时也因为Android安装包apk也在逐渐增大,每次发布,用户更新apk环境复杂,如果全量更新下载apk的话在使用流量情况下,网络环境不好等等,对于用户体验是非常不好的。

首先区分下几个概念

组件化 : 把常用的模块代码,抽取lib工程或者jar达到复用的效果。
插件化:目的是把需要实现的模块或功能当做一个独立的提取出来,减少宿主的规模,当需要使用到相应的功能时再去加载相应的模块。涉及动态代理,ClassLoader,以及另一个apk资源的加载。例如:360的DroidPlugin (推荐)
热修复:往往是从修复bug的角度出发,强调的是在不需要二次安装应用的前提下修复已知的bug(涉及关键词:Hook技术、动态代理等)。例如:阿里 AndFix。
增量更新:APK增量更新是很多大厂APP采用的技术。bsdiff库生成补丁文件方式下载跟旧版本APK合成生成新版APK的原理(ligbspatch.so)。手机游戏app增量更新使用较多。例如:SmartAppUpdates

阅读剩下更多