DexClassLoader简介

源码注释:

      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。


发布了8 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xnfreedom/article/details/17391057