美团 Android 热更新方案 Robust 开源,包含自动化补丁工具

美团 Android 热更新方案 Robust 开源了。

Robust 是新一代热更新系统,对 Android 版本无差别兼容,无需发版就可以做到随时修改线上 bug,快速对重大线上问题作出反应。Robust 热更新系统借鉴 Instant Run 原理,实现了一个兼容性更强而且实时生效的热更新方案。其基本思路是,Robust 热更新系统在一个方法的入口处插入一段跳转代码,当发现某个方法出现 bug 就跳转执行补丁中的代码,略过原有代码的执行,否则执行原有方法体逻辑。

优势

支持 Android2.3-7.X 版本

高兼容性、高稳定性,修复成功率高达三个九

补丁下发立即生效,不需要重新启动

支持方法级别的修复,包括静态方法

支持增加方法和类

支持 ProGuard 的混淆、内联、优化等操作

需要保存打包时生成的 mapping 文件以及 build/outputs/robust/methodsMap.robust 文件。

自动化补丁

自动化补丁是 Robust 实现的一个跃进,开源版本中也已经包含这部分工作。使用者只需要提交修改完 bug 后的代码,运行和线上 apk 打包同样的 gradle 命令即可,会在项目的 app/build/outputs/robust 目录下生成补丁。

具体实现原理和样例请查阅项目文档。

本文来自开源中国社区 [http://www.oschina.net]

时间: 2024-08-04 09:59:15

美团 Android 热更新方案 Robust 开源,包含自动化补丁工具的相关文章

Android热更新开源项目Tinker集成实践总结

前言 最近项目集成了Tinker,开始认为集成会比较简单,但是在实际操作的过程中还是遇到了一些问题,本文就会介绍在集成过程大家基本会遇到的主要问题. 考虑一:后台的选取 目前后台功能可以通过三种方式实现: 1.自己搭建后台布丁下发系统 2.第三方提供的服务,目前如原微信simsun大神的个人tinkerpatch平台,目前出于内测阶段,暂时免费.后期应该会按下发量对app进行收费. 3.腾讯Bugly提供的服务,提供了热更新的下发后台,集成到了bugly的升级sdk中.免费. 根据公司的精神,我

干货满满,Android热修复方案介绍

摘要:在技术直播中,阿里云客户端工程师李亚洲(毕言)从技术原理层面解析和比较了业界几大热修复方案,揭开了Qxxx方案.Instant Run以及阿里Sophix等热修复方案的神秘面纱,帮助大家更加深刻地理解了代码插桩.全量dex替换.资源修复等常见场景解决方案,本文干货满满,精彩不容错过. 以下内容根据演讲视频以及PPT整理而成. 视频分享链接,点击这里! 在传统的修复模式下,如果线上的App出现Bug之后进行修复所需要的时间成本非常高,这是因为往往需要发布一个新的版本,然后将其发布到对应的应用

微信Android热更新Tinker使用详解(星空武哥)

Tinker是什么 Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码.So库以及资源,让应用能够在不需要重新安装的情况下实现更新.当然,你也可以使用Tinker来更新你的插件. 它主要包括以下几个部分: gradle编译插件: tinker-patch-gradle-plugin 核心sdk库: tinker-android-lib 非gradle编译用户的命令行版本: tinker-patch-cli.jar 为什么使用Tinker 当前市面的热补丁方案有很多,其中比较

React Native热更新方案

一.目标 React Native热更新就是下载新RN包替换老RN包,那么我们需要考虑的点就是增量更新,要达到增量更新的目的,就需要把老RN包与新RN包的差异找出来,并且可以将这些差异与老RN包还原出新RN包.bsdiff和bspatch相关技术能实现我们的目标. 二.基本流程 1.服务器 使用bsdiff算法将老RN包和新RN包生成一个补丁patch文件,供客户端下载. 2.客户端 下载patch文件,使用bspatch算法将补丁patch文件和老RN包生成一个新RN包. 3.目前情况 暂时由

业界首个非侵入式热修复方案Sophix重磅推出,颠覆移动端传统更新流程!

横空出世 阿里巴巴对Android热修复技术已经进行了长达多年的探索. 最开始,是手淘基于Xposed进行了改进,产生了针对Android Dalvik虚拟机运行时的Java Method Hook技术,Dexposed.但这个方案由于对底层Dalvik结构过于依赖,最终无法继续兼容Android5.0以后ART虚拟机,因此作罢. 后来支付宝提出了新的热修复方案Andfix.Andfix同样是一种底层结构替换的方案,也达到了运行时生效即时修复的效果,并且重要的是,做到了Dalvik和ART环境的

阿里推出业界首个非侵入式热修复方案Sophix,颠覆移动端传统发版更新流程!

阿里巴巴对Android热修复技术已经进行了长达多年的探索. 最开始,是手淘基于Xposed进行了改进,产生了针对Android Dalvik虚拟机运行时的Java Method Hook技术,Dexposed.但这个方案由于对底层Dalvik结构过于依赖,最终无法继续兼容Android5.0以后ART虚拟机,因此作罢. 后来支付宝提出了新的热修复方案Andfix.Andfix同样是一种底层结构替换的方案,也达到了运行时生效即时修复的效果,并且重要的是,做到了Dalvik和ART环境的全版本兼容

详解Android中实现热更新的原理_Android

这篇文章就来介绍一下Android中实现热更新的原理. 一.ClassLoader 我们知道Java在运行时加载对应的类是通过ClassLoader来实现的,ClassLoader本身是一个抽象来,Android中使用PathClassLoader类作为Android的默认的类加载器,PathClassLoader其实实现的就是简单的从文件系统中加载类文件.PathClassLoade本身继承自BaseDexClassLoader,BaseDexClassLoader重写了findClass方法

Android热修复

我们部门有很多Android的能力SDK,被很多App(约1000个)集成.每次SDK有微调发布新版本后,App集成需要花上1-2个月时间,很多时候SDK团队和App团队双方都很痛苦.16年10月份,Boss叫搞一个Android的热修复功能.神奇的是,居然让我一个从未搞过Android的人来负责(看来我在老板心中 只能充当救火队员).我在16年12月完成了第一个版本的实现,后面详细针对200多种机型的调试,就交给其他同事去了. 最近看见已在部门几个产品推广该功能了,想想还是记录下当时实现的思路

React Native热更新及混合开发

随着 React Native 的不断发展完善,越来越多的公司选择使用 React Native 替代 iOS/Android 进行部分业务线的开发,也有不少使用 Hybrid 技术的公司转向了 React Native .虽然React Native在目前来说仍有不少的坑,不过对于以应用开发为主的App来说完全可以胜任. 概述 在iOS应用开发中,由于Apple严格的审核标准和低效率,iOS应用的发版速度极慢,这对于大多数团队来说是不能接受的,所以热更新对于iOS应用来说就显得尤其重要.而就在