Java 中每一个类都是通过 ClassLoader 来加载的。对于基于 Java 的 Android 应用,这些 ClassLoader 是从哪来的呢。研究过 Android 插件化机制的都知道 Android 中有 PathClassLoader 和 DexClassLoader 这两个类,它们的概念和区别也许我们已经很熟悉了,但是对为什么应用的类加载器是 PathClassLoader,它是如何产生的这些问题却是不甚了解。本文就从应用的启动流程出发,来揭开 ClassLoader 的秘密。