源码注释:
1、DexClassLoader是一个可以从包含有{@code classes.dex}入口的{@code.jar}和{@code.apk}文件中装载class的class loader。它可以用于执行那些未被安装到应用中的代码。
2、这个class loader 需要一个应用私有的,可写的目录来存放这些优化的classes。可以使用{@code Context.getDir(String, int)} 来新建这个一个目录。
例如:
File dexOutputDir = context.getDir("dex", 0);
3、注意:不要把这些释放的class放到外部存储器上。
因为外部存储器没有必要的安全控制使你的应用免于注入型攻击。
public DexClassLoader(String dexPath, String optimizedDirectory, String libraryPath, ClassLoader parent);
1)、dexPath :包含class的jar/apk文件的列表,使用文件分隔符分开(android上使用":")。
2)、optimizedDirectory: dex之后的文件被写入的目录,必须不为空。
3)、libraryPath:包含native .so的目录,使用文件分隔符分开,可为空。
4)、父class loader。