Android热修复原理简要介绍和学习计划

在当今Android 开发中,出现了很多热修复框架,也有很多开发者将热修复放入到自己的app中,以达到如果遇到线上bug的时候不需要重新发版本的效果。
热修复所需要的理论知识还是很多很广的,虽然现在网上框架千万种,但究其原理也是基本上相当的,所以只要基本原理不变,以后出现再多的热修复框架,你也能轻而易举的掌握它。

热修复能够解决的问题

所有东西的产生都是为了解决某些问题的,热修复框架产生主要解决的问题我罗列了下基本有以下几点:

  1. 发不出去的版本出现了一个大bug,需要立马解决,但是传统的bug修复的话又需要发版本,时间周期拉长,影响用户使用
  2. 版本升级成本还是比较大的,对于一些经常不升级的用户来说,就会出现bug一直在的情况
  3. 对于一些功能点小但是比较重要的功能需要紧急上线的,就比如一些节日活动功能,发版本成本略高

主流热修复框架对比

这里我把几个有代表意义的大厂开源出来的热修复框架做了个对比,对比如下:
Android热修复主流框架对比

学习计划

总的来说,热修复分为三个大模块:资源修复、代码修复、.so动态库修复。

代码修复一般又分为热启动修复和冷启动修复。

热启动修复其实就是底层替换方案,是在虚拟机已经加载好类的基础上,直接替换掉相对应的方法,这种方法是可以即时生效的,因为这是在原来类的基础上进行的修改。但是这种方法适用范围比较窄,替换原有方法的时候不能破坏原有类的结构。

冷启动的话需要重新启动app才能产生效果,原理其实就是在app启动的时候让classLoader去加载相对应的新的类。这种方法适用范围比较广,就是即时生效性差,需要重启。

资源修复,其实简单的说就可以分成三种情况:

  1. 资源的增加。也就是热修复后的apk在某一个地方或几处地方增加引用了之前的包没用的资源。
  2. 资源的删减。这个很简单,你不用就可以了,所以这种情况其实可以不用考虑
  3. 资源的修改。替换掉某些资源。

所以重点资源修复我们要深入研究资源是如何打包到apk里的过程以及apk是如何读取到我要用的资源文件的,只有明白了这个流程,才能更好的理解资源修复的过程。

动态库修复,则需要去深究app启动的时候是如何加载相对应的动态库的,这才能获取到修复的最佳方案。

这样,Android热修复就简单介绍到这里了,接下来,我会根据我下面罗列的各个小点,深入到对应的源代码里面,一步一步的去解剖热修复原理。

Android热修复学习大纲

目录:

  1. Android资源编译和打包过程分析
  2. Android apk读取资源文件过程详解
  3. Google Instant Run源码分析
  4. 热修复框架资源修复过程分析
  5. JVM,Dalvik,ART类加载机制详解
  6. Sophix热修复代码修复原理详解
  7. Tinker热修复代码修复原理详解
  8. .so动态库加载过程详解
  9. 热修复框架.so动态库修复过程详解
  10. Android多渠道打包与热修复
  11. Android加固与热修复分析

个人微信公共账号已上线,欢迎关注:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值