Android中的类装载器DexClassLoader,面试官问的那些安卓原理你都懂吗

DexClassLoader是Android中用于加载dex文件的类加载器,它可以从.jar或.apk中的classes.dex加载类。类加载器需要一个私有目录来缓存优化的类,不应将优化的类存储在外部存储上以防止代码注入攻击。使用DexClassLoader通常涉及获取apk路径、dex输出目录和库路径,然后创建类加载器实例并反射调用加载的类。
摘要由CSDN通过智能技术生成

地方是把class文件再重新打包成dex类型的文件,这种重新打包会对Class文件内部的各种函数表、变量表等进行优化,

最终产生了dex文件。dex文件是一种经过android打包工具优化后的Class文件,因此加载这样特殊的Class文件就需要特殊的类装载器,

所以android中提供了DexClassLoader类。

类装载器DexClassLoader类结构

继承关系:

A class loader that loads classes from .jar and .apk files containing a classes.dex entry. This can be used to execute code not installed as part of an application.

This class loader requires an application-private, writable directory to cache optimized classes. Use Context.getDir(String, int) to create such a directory:

File dexOutputDir = context.getDir(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值