白话文--Android热修复
引言:这里不对Android热修复的具体技术进行具体的描述,因为本人觉得看代码更好一些,听别人说别人的观点(也就是瞎逼逼)用处其实不是很大,学到的才是自己的。我一直比较喜欢热修复,不能说研究的有多深,只是有一些浅显的认识,希望各位大佬指正,我一定虚心受教。
一.澄清篇(我不是黑科技)
总有些外行人说,“你们这些开发就是瞎搞,还我们Android一片蓝天,不要搞小动作。”
热修复和国内的一些”黑科技“还是不同的。例如以下”黑科技“?:
1.你是不是经常遇到”全家桶“?打开一个App就拉起了一票的App,手机瞬间卡的想要扔掉?
2.进程保活。也就所谓的进程常驻,在通俗点 怎么都杀不死的一种APP,万一不幸你中招了,感觉跟PC木马似的,爽到天。
3.app自行推送服务。打开app,好长的通知条。爽不爽。不幸再给你来两条短信?兜售点小饰品()?
……
如果你把热修复和这些混为一谈,那么你绝不是一个开发人员,至少不是一个懂技术的开发人员。热修复系统其实是用户和开发双赢的一种技术,不仅可以实现app的快速更新迭代,而且可以在用户无感知的情况下修复bug,节约开发和用户的时间。(目前来说热修复主要就是用于修复bug,而不是用户们所谓的搞事情。)
二.热修复介绍
什么是热修复呢?两张图来说明什么是热修复:
1.我们刚开发完新版本上线,突然发现紧急bug怎么办?正常流程如下:
用户所要经历的是什么?下载-安装-崩溃-下载-安装(万一没玩好,再来一遍)
由于Android开源的特性,厂商较多的问题,兼容性也是一大调整,万一开发没完好,是玩开发呢,还是玩用户呢??
2.如果我们有热修复,那么重复上述流程,应该就是这样的:
发版出问题怎么办?打个补丁,安全无痛苦。用户安装一次解决问题
三.热修复哪家强
目前热修复开源框架有很多,网上各种各样的教程也有很多,但是其实都是对于三点进行的着手
1.代码的热修复
2.资源的热修复
3.So库的热修复
这三点其实也就包含了apk所有的文件。
我稍微整理了下目前比较火的几个热修复框架:
目前除了最新出品的Sophix没有开源外,其他的都已经开源,而且网上有一大堆的点评,分析……
最厉害的,个人感觉还是阿里系列,最新的Sophix应该是目前最牛逼的吧。反正我感觉是这样的
但是对于不同公司的不同现状而言,每个项目都有不同的需求,其实热更新应该是订制的,你认为呢??
四.Android热修复不会下架!!!
很多人都知道了IOS中app若包含热修复代码会在app store中强制下架。有人会疑问,Android会被强制下架么?你的担心是多余的,Android因为开源的关系,而且依托中国的背景,众多的app平台(360,安智,等等)其实归结于两点:
1.Google和Apple在中国的地位不同
2.Android和IOS的开放性不同
Google想像Apple一样独裁是不可能的,Android是开源的,好多的厂家在进行订制。
而且个人认为,Android热修复不但不会被封杀,而且会越做越好。试问在开发和用户双赢的技术下,有哪家公司不是心动的呢》?
对于技术追求着的建议
个人意见,仅供参考,不喜勿喷
最近面试发现好多人简历都写着熟练掌握热修复。然后就多问了几句,总结几点
1.起码知道dex hotfix hook inject这些单词怎么读吧
2.热修复的点在于,资源,代码,so库这个起码要知道的吧
3.最简单的框架nuwa这个应该很了解其实现原理
4.对于热修复而言,你要做的还有很多,可能不知道代码怎么具体实现,但是实现原理一定要理解
技术的追求本来就是枯燥的,实事求是的态度才是做技术唯一的标准可言
结束语
静下来,想想我们需要做什么,怎么做。试一试,跑个demo试试 --Android程序员的建议
最后再重复下,技术的本身是乏味的,但是实现起来确是精彩的
(ps:有想要深入了解的童鞋可以留言或加微信)
关注微信公众号 Android历练记 或扫一扫二维码:
让我们一起来搞事情。
更多相关文章
- 传智播客成都java培训中心andriod实训班
- 【专家专栏】Android中的防缓冲区溢出技术
- Android实现信息安全中维吉尼亚密码技术
- Android(安卓)进程保活系列:(一)利用 Activity 提升权限
- ios android图设计
- Android梳理 Activity
- 移动支付-修复FireFox在android移动设备下面的Session 丢失的问
- Android(安卓)Marshmallow 6.0,Asking For Permission(未校验)
- Windows Phone之于Android的基因进化(认真看 不然你看不懂)