服务器热修复,热修复探究,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,一经查实,立即删除!

相关文章

android 人脸识别边框_android Arcface人脸识别框/人脸抓拍框/人脸追踪框

为什么要改?先来看看sdk demo中提供的人脸框样式,这个框看上去并不是非常美观(个人觉得)再看看下面这个框是不是就要顺眼一点怎么换?先来看看原始的画法:Overridepublic void onAfterRender(CameraFrameData data) {mGLSurfaceVie…

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…

ajax官方api,yangguozhong

AjaxApi下面列出的接口基本都是可以直接使用的&#xff0c;如有问题记得告诉我哦1. 支持的请求方法GET(SELECT)&#xff1a;从服务器取出资源(一项或多项)。POST(CREATE)&#xff1a;在服务器新建一个资源。PUT(UPDATE)&#xff1a;在服务器更新资源(客户端提供改变后的完整资源…

改变网页标签图片(favicon)

<head>里添加如下标签&#xff1a; <link rel"shortcut icon" href"favicon.ico图片路径" type"images/x-icon" /> <link rel"icon" href"favicon.ico图片路径" type"images/x-icon" /> js动态…

报告:美国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.…

金蝶引出文件到服务器,金蝶K3标准凭证引出并引入

金蝶K3标准凭证引出并引入如下所示&#xff1a;一、首先登录需要引出的帐套&#xff0c;将凭证引出1、财务会计-总账-凭证处理-标准凭证引出2、进入到凭证引出向导界面&#xff0c;点击下一步3、选择引出标准凭证文件存放的位置&#xff0c;及填写名称&#xff0c;点击保存4、点…

中柏平板u盘启动_中柏电脑如何设置BIOS U盘启动

展开全部1、先将U盘插入到电脑中&#xff0c;然后在开机出e69da5e887aa3231313335323631343130323136353331333365666237现第一屏启动信息界面时按键盘上的DEL键&#xff0c;直接进入BIOS。2、进入后按键盘上的右方向键找到“Advanced”选项&#xff0c;最下面项是“USB Config…

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

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

Effective C++ 条款12

复制对象时&#xff0c;勿忘其每个成分 作者在本节条款提醒我们&#xff0c;在多重继承的情况下进行copy或者copy assignment 的operator的编写时&#xff0c;一定要考虑base 类部分数据的初始化后者复制。 对照一下代码&#xff1a; class Cutsomer { …… private:string nam…

米家电磁炉显示e10_米家电磁炉e10故障怎么回事

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。米家电磁炉e10故障即底部传感器温度高造成的&#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;同…