动态加载技术学习

来源:互联网 发布:mac终端编辑文件命令 编辑:程序博客网 时间:2024/05/16 06:41


Android开发艺术探索

博客地址:

http://blog.csdn.net/singwhatiwanna/article/details/40283117

 github 地址:

https://github.com/singwhatiwanna/dynamic-load-apk


学习笔记:


加载代码:

DexClassLoader :可以加载文件系统上的jar、dex、apk

PathClassLoader :可以加载/data/app目录下的apk,这也意味着,它只能加载已经安装的apk

URLClassLoader :可以加载java中的jar,但是由于dalvik不能直接识别jar,所以此方法在Android中无法使用,尽管还有这个类


加载资源文件:


我们知道,activity的工作主要是由ContextImpl来完成的, 它在activity中是一个叫做mBase的成员变量。注意到Context中有如下两个抽象方法,看起来是和资源有关的,实际上context就是通过它们来获取资源的,这两个抽象方法的真正实现在ContextImpl中。也即是说,只要我们自己实现这两个方法,就可以解决资源问题了。

    /** Return an AssetManager instance for your application's package. */
    public abstract AssetManager getAssets();

    /** Return a Resources instance for your application's package. */
    public abstract Resources getResources();







0 0