Android热更新详解

一 前言介绍

正好最近又看到热更新,对以前Android 热修复核心原理:ClassLoader类加载机制做了点补充。

从16年开始开始,热修复技术开始在安卓界流行,它以classloader类加载机制为核心,可以不发布新版本就修复线上 bug ,让线上版本有能力去进行全量或者增量更新。

常见的思路有两种:

  1. 类加载方案,即 dex 插桩。该方案以腾讯系为主,包括微信的 Tinker、饿了么的 Amigo;

  2. 底层替换,即修改替换 ArtMethod。方案以阿里系的 AndFix 等为主;

本文主要介绍第一种方案。

1.1 ART 和 Dalvik

  1. Dex :全称为Dalvik Executable Format,由很多 .class 文件处理压缩后的产物,最终可以在 Android 运行时环境执行。它适合于内存和处理器速度有限的系统。

  2. Dalvik:Google设计的Android平台的Java虚拟机。支持转换为.dex格式的Java程序运行。DVM默认使用CMS垃圾回收器。

  3. ART:Android Runtime,于Android 4.4 引入,在 Android 5.0 及更高版本作为默认的 Android 运行时。ART做出的具体改进可看安卓官方文档介绍:运行时:Android Runtime (ART) 和 Dalvik。ART 和 Dalvik 都是运行 D

上一篇:了解 jvm+dalvik+art(2)


下一篇:基于栈与基于寄存器的指令集架构