Android热修复,热更新 ,增量更新,插件化之间的区别

感谢这位老哥:https://www.jianshu.com/p/704cac3eb13d

热修复:

强调的是修改线上版本的bug,用技术去实现不更新整个apk的条件下,修改掉bug。

涉及到类的加载。比如可以new 一个BaseDexClassLoader动态的去加载修复apk的dex文件,再合并到正在运行PathClassLoader中(这只是其中一种思路)目前主流的热修复框架阿里AndFix、Sophix,微信Tinker,饿了么Amigo,美团Robust,他们的区别就不多说了,网上很多对比。其中收费的阿里的Sophix目前是做的最好的,免费的Amigo最好用吧。

热更新:

一般来说就是指的热修复

增量更新:

比如说王者荣耀,不可能每次更新就去下几百M,通过生成差分包的供下载,再合并达到更新的方式

(主要是生成差分包和合并的工作--不太熟悉)

插件化:

通过hook,动态代理等方式,启动另一个apk中的activity,或使用另一个apk的资源。主流的有360的DroidPlugin,Small,DynamicAPK(携程)。推荐360的DroidPlugin。

强调的是想把需要实现的模块或功能当做一个独立的模块提取出来

涉及动态代理,ClassLoader,以及另一个apk资源的加载

你可能感兴趣的:(android,知识点)