本文字数:3545字
预计阅读时间:11分钟
一旦发布版本 用户手中的app就无法控制了
所以就产生了热修复的库或者说第三方
1,首先,你需要了解一下热修复的原理:
2,然后再去看看市场上的热修复对比,如何接入
3,后面会对tinker和tinkerpatch以及Andfix着重讲解。
热修复就可以解决:
修复方案:替换方法,方法抛异常(修修补补,哪里坏了修哪里,定点修理)class -- method AndFix.so修复的包apk崩溃抛异常--等下版本升级修复线上bug,后台兼容处理从服务器下载包。
热修复技术要解决的问题
1.刚发布了应用就发现了比较严重的BUG
2.有一些小功能需要及时的推送给用户使用(支付宝每到节日都有小的变化)
热修复技术不会对我们应用有结构上的改变
主要目的
1.热用这些热门技术时要注意的问题
2.引入这些热门技术后的代码及版本发布的管理
3.热门框架的原理讲解,源码阅读,知其所以然
首先要了解知识详解模块
1.dex/class
2.classload深入讲解(javacalssloadandroidclassload)了解类是如何被加载到虚拟机中的
然后在看热修复
1.热修复原理深入讲解
2.如何合理的接入开源的热修复框架
3.开源框架的原理讲解及版本发布控制
classes文件与dex文件解析
每个android开发人员每天要面对的文件格式我们平时看到的是Java语言文件ide和安卓操作系统已经帮我们完成了dex与class的生成
1.class文件结构深入解析
2.dex文件结构深入解析
3.dex与class文件对比
必须对class和dex文件的概念有一定的了解
class文件详解
1.什么是class文件
2.如何生成一个class文件
3.class文件的作用
4.class文件格式详解
class文件是能够被JVM识别,加载并且执行的文件格式(如Mp4,rmvb等一种格式)
class字节码文件只有java原代码能生成吗?不是的
上面这几种语言均可生成class文件 被jvm识别并且执行
如何生成的?
ide(eclispse,AndroidStudio,IntelliJ IDEA等等)会自动帮我们build生成(就是通过Javac)
build生成(就是通过Javac)
通过java命令去执行class文件(在ide直接run)
首先编写一个java类 hello.java
javac 编译生成class字节码文件
java命令运行class字节码文件
打印出来:hello,android!
class 文件的作用
记录一个类文件中的所有信息,记住是所有!
(类的名称,方法,变量等远远多于java源代码能看到的信息)
例如:为何我们在类中没有定义this supper这样的关键字,但是我们却可以使用这些关键字来调用我们父类的方法。
或者当前类的变量因为生成class字节码文件的时候,java虚拟机帮我们记录了当前类this关键字和父类supper关键字,所以我们才可以这样去使用。所以从这个答案中可以看出,class记录的信息远远多于java源代码。
clas