android热更新

作者: jimdear | 来源:发表于2016-12-02 09:42 被阅读294次

    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行左右的类,一是统计微信整个启动完成的耗时。


    Paste_Image.png

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

    参考表格:

    Paste_Image.png

    相关文章

      网友评论

        本文标题:android热更新

        本文链接:https://www.haomeiwen.com/subject/rrxfmttx.html