【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )
文章目錄
- 一、Android 類加載器
- 1、ClassLoader 抽象類
- 2、BootClassLoader
- 3、BaseDexClassLoader
- 4、PathClassLoader
- 5、DexClassLoader
- 5、SecureClassLoader
- 6、URLClassLoader
一、Android 類加載器
Android 中的 類加載器 ClassLoader 繼承結構 如下 :
1、ClassLoader 抽象類
ClassLoader 是抽象類 , 是所有 類加載器 ClassLoader 的父類 ;
2、BootClassLoader
BootClassLoader 是 ClassLoader 子類 , 與 Java 虛擬機中的 BootstrapClassLoader 啟動類加載器 作用相同 , 用于加載 Java 核心類庫 ;
BootClassLoader 是單例類 , 全局唯一 ;
BootClassLoader 是由 Java 代碼實現的 , 這與 JVM 中的 啟動類加載器 不同 ;
3、BaseDexClassLoader
加載 Dex 字節碼文件的業務邏輯就是在 BaseDexClassLoader 中實現的 ;
BaseDexClassLoader 的 333 個子類 ,
- InMemoryDexClassLoader
- PathClassLoader
- DexClassLoader
沒有實現核心業務邏輯 , 只是調用父類的方法 , 進行不同類型的操作 ;
4、PathClassLoader
PathClassLoader 是 BaseDexClassLoader 子類 , 應用中的類 , 都是由 PathClassLoader 進行加載 ;
Android 系統相關的類 , 如 四大組件類 , Android 自帶類 , 都是由 PathClassLoader 加載的 ;
5、DexClassLoader
DexClassLoader 是 BaseDexClassLoader 的子類 , 該類可以加載任意目錄下的 DEX 或 JAR 格式的 字節碼文件 ;
熱修復 就是 加載 SD 卡中的 DEX 文件 , 插件化 也是加載 SD 卡中的 APK 文件中的 DEX 文件 ;
DexClassLoader 在 動態字節碼技術 , 熱修復 , 插件化 , DEX 加固 等方面使用廣泛 ;
5、SecureClassLoader
SecureClassLoader 繼承了 ClassLoader 抽象類 , 該類主要實現了一些權限相關的功能 ,
6、URLClassLoader
URLClassLoader 是 SecureClassLoader 的子類 , 其可以使用 url 路徑加載 JAR 文件中的類 ;
總結
以上是生活随笔為你收集整理的【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】类加载器 Cla
- 下一篇: 【Android 逆向】类加载器 Cla