Android热更新

一.什么是热更新

热更新是众多App常用的更新方式。简单来说,就是在用户通下载安装APP之后,打开App时遇到的即时更新。

二.工作原理

热更新就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能,让开发者得以绕开应用市场的审核机制,避免长时间的审核等待以及多次被拒造成的成本。

**Android中如何动态修复bug

bug一般是一个或多个class出现了问题,在一个理想的状态下,我们只需将修复好的这些个class更新到用户手机上的app中就可以修复这些bug了。那要怎么才能动态更新这些class呢?其实,不管是哪种热修复方案,肯定都是如下这几个步骤:

    1.下发补丁(内含修复好的class)到用户手机,即让app从服务器上下载(网络传输)
    app通过"某种方式",使补丁中的class被app调用(本地更新)

   2. 这里的"某种方式",就是使用Android的类加载器,通过类加载器加载这些修复好的class,覆盖对应有问题的class,理论上就能修复bug了。

 

三.Android中的类加载器

Android是基于Java的,基于jvm的java应用是通过ClassLoader来加载应用中的class的,我们知道Android对jvm优化过,使用的是dalvik,且class文件会被打包进一个dex文件中,底层虚拟机有所不同,那么它们的类加载器当然也是会有所区别,在Android中,要加载dex文件中的class文件就需要用到 PathClassLoader 或 DexClassLoader 这两个Android专用的类加载器
 

Android热更新_第1张图片

你可能感兴趣的:(安卓开发)