android热更新

HotFix

简介:阿里的热补,https://github.com/dodola/HotFix
阿里巴巴无线事业部最近开源的Android平台下的无侵入运行期AOP框架Dexposed,该框架基于AOP思想,支持经典的AOP使用场景,可应用于日志记录,性能统计,安全控制,事务处理,异常处理等方面。阿里巴巴的开源热补框架:http://www.jianshu.com/p/14edcb444c51

  • 注意
  • 1.分包的时候有坑
  • 2.在兼容性稳定性上, ClassLoader方案很可靠 ,如果需要应用 不重启就能修复 ,而且方法足够简单
  • 3.Dexposed支持从Android2.3到4.4(除了3.0)的所有dalvid运行时arm架构的设备,稳定性已经经过实践检验。但高版本存在缺陷。

Nuwa

简介:能自动生成jar包的热补框架,https://github.com/jasonross/Nuwa

  • 已不更新
  • 开发的时候特别方便,但是由于要自己去维护,所以不适合短期接入。

RocooFix

简介:hotfix和Nuwa的混合版

https://github.com/dodola/RocooFix

  • 支持两种模式
    1. 静态修复某种情况下需要重启应用。
    2. 动态修复,无需重启应用即可生效。
    3. 新增so修复,beta中
  • 支持DalvikVM和ART VM
  • 制作补丁更加方便
  • 支持com.android.tools.build:gradle:1.3.0->com.android.tools.build:gradle:2.1.2

Thinker

简介:腾讯微信团队的热更开源框架,https://github.com/Tencent/tinker

  • 已知问题
  • 1.不能更新androidmaifest
  • 2.部分version21的三星机型不支持

Bugly

简介:依赖于腾讯的热更平台
https://bugly.qq.com/v2/

  • 注意
  • 1.接入后有bug分析功能
  • 2.能实时发布热补
  • 3.能面向测试设备发布热补(debug和release可以设置)

Reactive-Native

该方案适合bundle替换,只要远程提供打包好的bundle,app下载后重新加载即可

巧妙利用AssetManger+dex热更方式来实现替换资源

http://blog.csdn.net/tuhuolong/article/details/52384417

风险分析

简介:分析腾讯应用的热补过程,Andfix、QZone、微信几套方案的实现,以及它们方案面临着的问题。http://www.07net01.com/program/2016/11/1706227.html

若采用插桩导致所有类都非preverify,这导致verify与optimize操作会在加载类时触发。这会有一定的性能损耗,微信分别采用插桩与不插桩两种方式做过两种测试,一是连续加载700个50行左右的类,一是统计微信整个启动完成的耗时。

《android热更新》 Paste_Image.png

1.占用Rom体积;这边大约是你修改Dex数量的1.5倍(dexopt与dex压缩成jar)的大小。
2.一个额外的合成过程;虽然我们单独放在一个进程上处理,但是合成时间的长短与内存消耗也会影响最终的成功率。

参考表格:

《android热更新》 Paste_Image.png

    原文作者:jimdear
    原文地址: https://www.jianshu.com/p/c12063b41aa2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞