类加载器 ClassLoader

http://blog.csdn.net/lfdfhl/article/details/52673536

类加载器有啥用?  顾名思义,加载类用的,是将类加载到内存中。

Android中每个App会创建一个类加载器也就是ClassLoader 去加载dex。

dex是android中可执行文件的类型。

.dex结构分成三部分:

文件头:表明了是dex文件,已经文件的大小等等数据

索引头:如下图所示

数据区:数据区,就像是jvm中的堆保存方法+变量。(写在这对jvm的常量池,堆栈,寄存器不是很清楚,准备专门在写一篇文章记录下加强自己的记忆)

ClassLoader是一个抽象类:有三个子类,

PathClassLoader 

它只能加载已经安装的apk中的资源,比如dex文件 

URLClassLoader 

它只能用于加载jar文件中的资源。但是dalvik不能直接识别jar,所以这个加载器极少使用。 

DexClassLoader 

它用于从.jar和.apk类型的文件内部加载classes.dex。该类加载器常用来完成动态加载apk的需求。

一个App中有两个加载器:PathClassLoader(加载dex)和BootClassLoader(系统启动时创建的,加载系统层级的类)

你可能感兴趣的:(类加载器 ClassLoader)