做网站的中文名字,网页制作流程图片,聚名网是什么,国内营销策划公司常见场景App打包发出后1.忘了关掉Log输出了2.存在一个业务逻辑触发必崩溃3.某个本地图标忘了替换成新的遇到这些问题#xff0c;若是Web站点#xff0c;Mobile站点问题都不大#xff0c;因为这些具有“持续发布”的特长#xff0c;但是App的特点是“版本发布”#xff0c;…常见场景App打包发出后1.忘了关掉Log输出了2.存在一个业务逻辑触发必崩溃3.某个本地图标忘了替换成新的遇到这些问题若是Web站点Mobile站点问题都不大因为这些具有“持续发布”的特长但是App的特点是“版本发布”每个版本需要打包上传到应用市场经过审核后发布。这一些过程3-7天不等。另外更新频率过快用户体验也不好。另外若没有实现增量更新App的包又比较大还有一点需要紧急修复的一般也没有多少功能所以用户会比较反感。那么如何有效解决这些问题呢热修复热修复几个属性如下价值线上问题第一时间能够被修复特点App无需发版用户无感知体积小灵活本质打补丁可以看到两个痛点都被解决了1.无需发版2.用户无感知看到后有点小激动了来看热修复示意图从示意图可以看到重点有三个问题1.服务器端需要下发和管理补丁并提供安全传输部署工作2.客户端App下载补丁并处理3.补丁的编写后面说如何针对这三个问题解决热修复目前iOS与Android平台均支持iOS主流推荐JPatch官方提供支持后台但要嵌入SDK若使用GitHub上开源实现需要自己处理及维护后台补丁主要技术使用JavaScript调用任何Objective-C的原生接口替换任意Objective-C原生方法2.阿里百川http://baichuan.taobao.com/?spma3c0d.7629140.1998907816.1.G9itXC官方文档官方提供支持后台同样需要嵌入SDK补丁主要技术1.JavaScript3.lua脚本支持多目录多文件Android主流推荐Native代表有阿里的Dexposed、HotFix、AndFix与腾讯的内部方案KKFixJava,代表有Qzone的超级补丁、大众点评的nuwa、百度金融的rocooFix,饿了么的amigo以及美团的robust,微信Tinker1.支付宝AndFixhttps://github.com/alibaba/AndFixGithub不提供支持后台需要嵌入SDK技术核心底层采用native hook的方式这套方案直接使用dalvik_replaceMethod替换class中方法的实现特点无需重启应用直接生效缺点只支持原有方法上修改不能增加方法成员变量等等2.QZone超级补丁核心技术通过classLoader替换项目中的类缺点补丁包很大运行性能受到影响启动变慢不提供支持后台3.微信Tinker方案来源gradle编译的instant run与buck编译的exopackage核心技术dex替换优点解决几乎所有场景需要考虑的缺点1.7.6内核之后Tinker不再支持加固的动态更新 。另外 小问题 2. 补丁通过轮询方式获取,需要自己集成Push 达到下发补丁功能 通知客户端客户端调用Tinker主动获取补丁方法 3. 无法达到不重启APP的情况下的热修复提供后台 tinkerpatch.com4.美团Robust原理Robust是为每个函数都插入了一段逻辑为每个class插入了ChangeQuickRedirect的字段缺点复杂增加包体积不提供支持后台5阿里百川HotFix官方文档http://baichuan.taobao.com/?spma3c0d.7629140.1998907816.1.G9itXC特点目前1.4最新版预计17年2月之前发版2.01.4采用Java方式替换方法解决业务场景较少。2.0会解决几乎所有场景有官方支持后台下面我们对比一下这些热修复方案琳琅满目方案众多选择建议优先选择提供补丁管理维护下发的友好后台会帮助开发者解决诸多小问题优先选择该项目持续维护保证出现问题第一时间能够解决