服务器热修复,热修复探究,hotfix,patch

常见场景App打包发出后

1.忘了关掉Log输出了

2.存在一个业务逻辑触发必崩溃

3.某个本地图标忘了替换成新的

遇到这些问题,若是Web站点,Mobile站点问题都不大,因为这些具有“持续发布”的特长,但是App的特点是“版本发布”,每个版本需要打包,上传到应用市场,经过审核后,发布。这一些过程,3-7天不等。另外更新频率过快,用户体验也不好。另外若没有实现增量更新,App的包又比较大,还有一点,需要紧急修复的一般也没有多少功能,所以用户会比较反感。

那么如何有效解决这些问题呢?热修复

热修复几个属性如下

价值:线上问题第一时间能够被修复

特点:App无需发版,用户无感知,体积小,灵活

本质:打补丁

可以看到两个痛点都被解决了1.无需发版2.用户无感知

看到后有点小激动了,来看热修复示意图:

cc56e7d77b8a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

从示意图可以看到,重点有三个问题

1.服务器端需要下发和管理补丁,并提供安全传输部署工作

2.客户端App下载补丁,并处理

3.补丁的编写

后面说如何针对这三个问题解决

热修复目前iOS与Android平台均支持

iOS主流推荐:

JPatch官方提供支持后台,但要嵌入SDK

若使用GitHub上开源实现,需要自己处理及维护后台

补丁主要技术:使用JavaScript调用任何Objective-C的原生接口,替换任意Objective-C原生方法

2.阿里百川

http://baichuan.taobao.com/?spm=a3c0d.7629140.1998907816.1.G9itXC官方文档

官方提供支持后台,同样需要嵌入SDK

补丁主要技术:1.JavaScript

3.lua脚本支持多目录多文件

Android主流推荐

Native,代表有阿里的Dexposed、HotFix、AndFix与腾讯的内部方案KKFix;

Java,代表有Qzone的超级补丁、大众点评的nuwa、百度金融的rocooFix,饿了么的amigo以及美团的robust,微信Tinker

1.支付宝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.com

4.美团Robust

原理:Robust是为每个函数都插入了一段逻辑,为每个class插入了ChangeQuickRedirect的字段

缺点:复杂,增加包体积

不提供支持后台

5阿里百川HotFix

官方文档

http://baichuan.taobao.com/?spm=a3c0d.7629140.1998907816.1.G9itXC特点:目前1.4最新版,预计17年2月之前发版2.0

1.4采用Java方式替换方法,解决业务场景较少。2.0会解决几乎所有场景

有官方支持后台

下面我们对比一下这些热修复方案

cc56e7d77b8a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

琳琅满目,方案众多

选择建议:

优先选择提供补丁管理,维护,下发的友好后台,会帮助开发者解决诸多小问题

优先选择该项目持续维护,保证出现问题第一时间能够解决

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5 填表 表单 input output 与表单验证

1.<output> Js计算结果 <form οninput"res.value num1.valueAsNumber*num2.valueAsNumber"> <input type"number" id"num1"> X <!-- 没有闭合</input> --> <input type"number" id…

人工智能如何获得知识?

原发&#xff1a;人民论坛学术前沿 2019年21期转自&#xff1a;南京大学哲学系摘要&#xff1a;人构造概念以认识世界&#xff0c;人的认知与人的身体密切相关。计算机是人类心灵的延伸&#xff1b;而人类发明的各种认知用仪器&#xff08;机器&#xff09;是人类感官的延伸&am…

报告:美国AI投资占全球56% 中国第二增长最快

来源&#xff1a;小小据外媒报道&#xff0c;由英国政府资助的科技企业家网络Tech Nation日前发布最新报告。报告显示了2015年至2019年各国企业在全球范围内获得的人工智能(AI)领域的投资情况。在这五年期间&#xff0c;美国吸引了全球56%的AI投资&#xff0c;紧随其后的是中国…

服务器图文消息发送规则,群发图文规则 - CurtainRight的个人空间 - OSCHINA - 中文开源技术交流社区...

2、上传图文接口内容信息对比&#xff1a;注意&#xff1a;除了群发图文之外&#xff0c;其余的图文消息都是没有Content&#xff0c;所以都是自己写页面&#xff0c;然后通过URL打开新的页面&#xff0c;那么你的图片就不能访问微信服务器上的图片。因为现在未经授权是不能访问…

rust怎么拆除墙壁指令_人类跌落梦境:城堡怎么过 不少玩家卡在了第六关城堡地图这里...

人类跌落梦境城堡怎么过&#xff1f;随着人类一败涂地手游上线&#xff0c;不少玩家卡在了第六关城堡地图这里。城堡怎么抓灯笼&#xff0c;这个图里风车要怎么用呢&#xff1f;这里就为大家带来人类跌落梦境第六关城堡攻略图解。人类跌落梦境城堡怎么过人类跌落梦境第六关城堡…

【工业智能】人工智能真的无所不能吗?

图1-1956年达特茅斯会议上的那些AI界大神们来源&#xff1a;产业智能官最近几年&#xff0c;随着AlphaGo逐渐干掉了人类的顶级棋手、波士顿“大狗”不断进化的能力使得人们对人工智能充满了期待&#xff0c;人工智能的热潮席卷了大学、企业&#xff0c;春风也吹进了工业这个一直…

Discuz网警过滤关键词库

积累近几年discuz关键词过滤 使用方法&#xff1a;1.进入后台/内容/词语过滤批量添加。2.打开CensorWords.txt&#xff0c;复制里面的文本信息到批量添加的输入框内&#xff0c;点击确定即可。如图&#xff1a; 关键词下载&#xff1a;Keywords.zip转载于:https://www.cnblogs.…

AI解读医学影像能力超越人类?BMJ综述:此类研究大多存在偏差

图片来源&#xff1a;Pixabay来源&#xff1a;BMJ翻译&#xff1a;阿金审校&#xff1a;戚译引许多研究宣称&#xff0c;人工智能在解读医学影像方面具备和人类专家同等甚至更强的能力。但是&#xff0c;BMJ 近期发表的一篇综述指出&#xff0c;这些研究质量堪忧&#xff0c;有…

收藏!全国31个省市区重点产业布局!

图片&#xff1a;IC photo来源&#xff1a;世界科技创新论坛一、天津优势产业﹕航空航天、石油化工、装备制造、电子信息、生物医药、新能源新材料、轻工业、国防、现代物流、海洋经济。重点招商引资产业﹕现代服务业的高端商业和电子商务&#xff0c;研发、结算中心和企业总部…

高德sdk_联手HERE,高德进军地图海外市场 | CES 2020

升级为国民出行平台之后&#xff0c;高德地图宣布进军海外市场。1月8日&#xff0c;高德与HERE 地图共同宣布&#xff0c;基于海外地图及动态信息服务展开合作。HERE地图将为高德提供中国以外地区的地图数据及交通信息等&#xff0c;高德从而可实现为用户提供全球路径规划引导、…

养成一个新习惯,只需要这个大脑区域兴奋0.5秒

图片来源&#xff1a;Pixabay文章来源&#xff1a;达特茅斯学院翻译&#xff1a;毛千芊审校&#xff1a;张毛毛每天&#xff0c;人类和动物依靠习惯完成日常起居&#xff0c;如吃饭和睡觉。习惯使我们能不加思考地做事。当大脑开始养成一种新习惯时&#xff0c;只需半秒钟&…

android 瀑布流

最终效果图 1.item_demo5.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"wrap_con…

$.ajax 加了headers报错_Springboot解决Ajax跨域的三种方式

这篇文章不华丽&#xff0c;但比较实用&#xff0c;能解决不少大家实际业务中的问题。大家可以收藏起来&#xff0c;以备用时之需&#xff01;1.同源策略 1.1 含义ajax出现请求跨域错误问题&#xff0c;主要原因就是因为浏览器的“同源策略”&#xff1b;1995年&#xff0c;同…

高精度惯性传感器如何实现全球自动化愿景?

来源&#xff1a;MEMS如果农场基于丰富的传感器内容来联合利用自动化地面车辆和航空器&#xff0c;那么地面作业将更加有效&#xff1b;如果手术室能够将经典的导引技术供精密制导机械臂使用&#xff0c;那么成功率将得到保障&#xff1b;如果救援行动中能够精准定位施救人员的…

catia怎么将特征参数化_搭建商城网站怎么将页面简洁化?这三个步骤不能少

随着用户群体的年轻化&#xff0c;消费者的习惯也会开始转变&#xff0c;简洁的风格设计能帮助商家更快的吸引到用户。制作自己的商城系统来进行产品销售是常见的方式之一&#xff0c;商家需要做好自己的网站规划&#xff0c;并向开发商提出相应的要求。那么&#xff0c;今天就…

宇宙是一个图网络?「全球最聪明的人」刚刚为物理基础理论指出了全新道路...

来源&#xff1a;机器学习研究组订阅号图片来源&#xff1a;机器之心「物理学已经很长一段时间没有出现任何显著进展了。探测引力波或许算是一个&#xff0c;」斯蒂芬沃尔夫勒姆表示。「我非常希望在纯技术层面上&#xff0c;我们所做的一切能够使理论物理学重新焕发活力。尽管…

python3字典写入excel_Python玩转Excel(第2期)~这里只有干货

第1期发布之后&#xff0c;反响特别好&#xff0c;很快通过审核&#xff0c;不到2小时推荐量2600多&#xff0c;还是挺高的&#xff0c;说明大家对此版块内容还是感兴趣的&#xff0c;激发了我创作的动力。谢谢大家&#xff0c;今天加班再更新一期。一、如何创建数据的‘’粮仓…

信息通信业(ICT)十大趋势

来源&#xff1a;中国信息通信研究院&#xff0c;原文刊载于《互联网天地》2020年2期2019年12月26日&#xff0c;中国信息通信研究院在北京发布了信息通信业&#xff08;ICT&#xff09;十大趋势。这十大趋势是&#xff1a;1、5G时代起航&#xff0c;开辟数字化转型新空间2、信…

小括号教学设计导入_2020年小学教师资格证复习资料之小学课堂教学导入-教师吧...

本节内容为2020年下半年小学教师资格证考试科目二《教育教学知识与能力》小学课堂教学导入考点详解。【考点&#xff1a;小学课堂教学导入】一、课堂教学导入概述(一)教学导入的概念所谓教学导入,是指在上课之初,教师利用几分钟的时间,运用简洁的言语或行为,将学生的注意力吸引…

RPU4+1视图(转)

41视图模型概况 Kruchten 提出了一个"41"视图模型&#xff0c;从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面&#xff0c;5个试图结合在一起才能反映系统的软件体系结构的全部…