首先要明白Android是使用Dalvik虚拟机加载可执行程序,所以不能像Java那样直接加载基于class的jar,而是需要将class转化为dex字节码。这一点在Android项目打包的apk中可以看出:引入其他Jar的内容都被打包进了classes.dex。
Android中支持的动态加载方案:
1. DexClassLoader:可记载jar/apk/dex
2. PatchClassLoader:只能加载已经安装在Android系统中的apk文件,也就是 /data/app 目录下的 apk 文件。