前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )

【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )

作者头像
韩曙亮
发布2023-03-30 09:05:49
7860
发布2023-03-30 09:05:49
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、Android 类加载器


Android 中的 类加载器 ClassLoader 继承结构 如下 :

在这里插入图片描述
在这里插入图片描述

1、ClassLoader 抽象类

ClassLoader 是抽象类 , 是所有 类加载器 ClassLoader 的父类 ;

2、BootClassLoader

BootClassLoaderClassLoader 子类 , 与 Java 虚拟机中的 BootstrapClassLoader 启动类加载器 作用相同 , 用于加载 Java 核心类库 ;

BootClassLoader 是单例类 , 全局唯一 ;

BootClassLoader 是由 Java 代码实现的 , 这与 JVM 中的 启动类加载器 不同 ;

3、BaseDexClassLoader

加载 Dex 字节码文件的业务逻辑就是在 BaseDexClassLoader 中实现的 ;

BaseDexClassLoader

3

个子类 ,

  • InMemoryDexClassLoader
  • PathClassLoader
  • DexClassLoader

没有实现核心业务逻辑 , 只是调用父类的方法 , 进行不同类型的操作 ;

4、PathClassLoader

PathClassLoaderBaseDexClassLoader 子类 , 应用中的类 , 都是由 PathClassLoader 进行加载 ;

Android 系统相关的类 , 如 四大组件类 , Android 自带类 , 都是由 PathClassLoader 加载的 ;

5、DexClassLoader

DexClassLoaderBaseDexClassLoader 的子类 , 该类可以加载任意目录下的 DEX 或 JAR 格式的 字节码文件 ;

热修复 就是 加载 SD 卡中的 DEX 文件 , 插件化 也是加载 SD 卡中的 APK 文件中的 DEX 文件 ;

DexClassLoader 在 动态字节码技术 , 热修复 , 插件化 , DEX 加固 等方面使用广泛 ;

5、SecureClassLoader

SecureClassLoader 继承了 ClassLoader 抽象类 , 该类主要实现了一些权限相关的功能 ,

6、URLClassLoader

URLClassLoaderSecureClassLoader 的子类 , 其可以使用 url 路径加载 JAR 文件中的类 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Android 类加载器
    • 1、ClassLoader 抽象类
      • 2、BootClassLoader
        • 3、BaseDexClassLoader
          • 4、PathClassLoader
            • 5、DexClassLoader
              • 5、SecureClassLoader
                • 6、URLClassLoader
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档