Dalvik虚拟机加载类流程
2017-06-16 14:07:31 0 举报
登录查看完整内容
Dalvik虚拟机加载类的过程
作者其他创作
大纲/内容
invoke-kind
invoke-statichttp://source.android.com/devices/tech/dalvik/dalvik-bytecode.html
返回
NATIVE:{ \"defineClassNative\
native函数传入jni函数的参数保存在const u4* args中。args[0]即第一个参数,以此类推。name = dvmCreateCstrFromString(nameObj);descriptor = dvmDotToDescriptor(name);
Tips
BaseClassLoader
+ pathList: DexPathList
+ findClass(String name):returnType
没找到目标类,加载类
ClassLoader
+ parent :ClassLoader
DexClassLoader
开始分析
将加载的类加入hash表中,并且重新从哈希表中取出这个类。
Class findClass(String name)findClass会在PathList中去找,这个PathList在实例化类加载器的时候就建立的。如果在这个PathList中找不到,那么就会抛出异常。CALL: findClass() in http://androidxref.com/4.4.2_r2/xref/libcore/dalvik/src/main/java/dalvik/system/DexPathList.java#317
0 条评论
回复 删除
下一页