插件化、热修复、增量更新略知一二

前言

  • 插件化和热修复不是同一个概念,两者出发点不同
  • 从技术角度来讲,都是从系统加载器角度着手,无论采用hook,代理或其他底层实现,都是"欺骗"Android系统让宿主加载或运行插件(补丁)的内容
  • 插件化:目的是把需要实现的模块或功能当做一个独立的提取出来,减少宿主的规模,当需要使用到相应的功能时再去加载相应的模块
  • 热修复:往往是从修复bug的角度出发,强调的是在不需要二次安装应用的前提下修复已知的bug(涉及关键词:Hook技术、动态代理等)

目前主流热修复框架(热更新一般来说也是指热修复)

  • 阿里 AndFix
  • 阿里 Sophix (收费)
  • 微信 Tinker
  • 饿了么 Amigo (易用性)
  • 美团 Robust

插件化方案 (涉及动态代理,ClassLoader,以及另一个apk资源的加载)

  • 360的DroidPlugin (推荐)
  • Small
  • DynamicAPK(携程)

除了上面的2个概念,还有个增量更新的技术

  • APK增量更新是很多大厂APP采用的技术
  • bsdiff库生成补丁文件方式下载跟旧版本APK合成生成新版APK的原理(ligbspatch.so)

参考链接:

  1. https://study.163.com/course/courseLearn.htm?courseId=1209046860#/learn/live?lessonId=1278570364&courseId=1209046860
  2. https://segmentfault.com/a/1190000004062866 通俗易懂的动态加载技术描述
  3. https://www.jianshu.com/p/704cac3eb13d 插件化和热修复梳理

你可能感兴趣的:(插件化、热修复、增量更新略知一二)