Android培训班(77)Dalvik虚拟机的dvmInterpretStd函数

通上面的学习,先初始化解释器的状态,然后调用解释器来执行方法。解释器又分为两种,一种是使用汇编写成性能优化的解释器,一种是使用标准C语言写成的解释器,可以很通用,理解起来也容易一些。接着下来,就先来理解C语言写成的解释器,函数dvmInterpretStd的代码如下:boolINTERP_FUNC_NAME(Thread* self,InterpState* interpState){这个函数输入...
阅读(4363) 评论(2)

Android培训班(76)Dalvik虚拟机的CallStaticVoidMethod函数

在前面两个函数的介绍里,已经找到要执行方法的类,要执行的方法ID,那么接着下来要做的事情,就是执行方法,其实就是解释Java程序的字节码。那么Davlik虚拟机是怎么样执行方法的代码呢?又是怎么样解释这些字节码指令呢?因此,就先来分析函数CallStaticVoidMethod的代码,直接拿这个函数名称在源程序里查找,是查找不到的,因为代码里并没有直接使用这个名称来声明函数,其实是使用宏来实现的,...
阅读(9015) 评论(0)

Android培训班(75)Dalvik虚拟机的GetStaticMethodID函数

在Dalvik虚拟机启动时,曾经使用函数GetStaticMethodID获取静态函数main的ID,以便调用整个Java程序运行起来,那么这个函数怎么样从加载的类里查找到静态方法的ID呢?下面就来分析这个函数的代码,来回答这个问题。函数GetStaticMethodID调用JN...
阅读(8186) 评论(0)

Android培训班(74)Dalvik虚拟机的FindClass函数

从前面我们知道,在虚拟机初始化后,运行Java代码的方法时,要先查找到类,也就是调用函数FindClass。接着后面分析怎么样从dex文件加载类数据到内存,现在开始对查找函数FindClass进行分析,就很好理解了,因为前面介绍加载类到内存的流程已经很清楚。函数FindClass...
阅读(6556) 评论(0)
    个人资料
    • 访问:5594043次
    • 积分:73134
    • 等级:
    • 排名:第25名
    • 原创:1587篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2086条
    文章存档
    最新评论