引言:这里不对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历练记 或扫一扫二维码:
让我们一起来搞事情。

Android历练记

更多相关文章

  1. 传智播客成都java培训中心andriod实训班
  2. 【专家专栏】Android中的防缓冲区溢出技术
  3. Android实现信息安全中维吉尼亚密码技术
  4. Android(安卓)进程保活系列:(一)利用 Activity 提升权限
  5. ios android图设计
  6. Android梳理 Activity
  7. 移动支付-修复FireFox在android移动设备下面的Session 丢失的问
  8. Android(安卓)Marshmallow 6.0,Asking For Permission(未校验)
  9. Windows Phone之于Android的基因进化(认真看 不然你看不懂)

随机推荐

  1. It's Android Time—Google Android创赢
  2. 命令运行 andorid 模拟器
  3. Android关于EditText的一些常规用法,只输
  4. Android中限制EditText(输入框)文字输入长
  5. 【android】Android SDK 配置
  6. Android实现多语言
  7. Android开发之——布局实例
  8. 拖动条SeekBar的简单使用
  9. Android音频实时传输与播放(三):AMR硬编码与
  10. android:属性