开始虚拟机的准备工作

int dvmStartup(int argc,const char* const argv[],bool ignoreunrecognized,JNIEnv* pEnv){

        int i,cc;

        assert(gDvm.initializing);

        LOGV("VM init args (%d):\n",argc);

       for(i=0;i<argc;i++){}

      setCommandLineDefaults();

        if(!dvmPropertiesStartup(argc))

             goto fail;

          cc=dvmProcessOptions(argc,argv,ignoreunrecognized);

         if(cc!=0)

           {

                    if(cc<0)

                           dvmFprintf(setderr,"\n");

                           dvmusage("dalvikvm");

                   goto fail;

        }

}

5.2 初始化跟踪显示系统         dvmAllocTrackerStartup(void);

5.3 初始化垃圾回收器 dvmGcStartup(void)

5.4 初始化线程列表和主线程环境参数

       bool  dvmThreadStartup(void)      Thread* thread;

5.5 分配内部操作方法的表格内存  dvmInlineNativeStartup

5.6 初始化虚拟机的指令码相关内容 dvmVerificationStartup(void)

5.7 分配指令寄存器状态的内存  dvmRegisterMapStartup(void)  

5.8 分配指令寄存器状态的内存  dvmInstanceofStartup(void)

5.9 初始化虚拟机最基本用的Java库

dvmClassStartup

5.10 进一步使用java类库线程类  dvmThreadobjectstartup初始化虚拟机进一步使用Java类库线程类。

5.11 初始化虚拟机使用的异常Java类库 dvmExceptionStartup初始化虚拟机使用的java类库

5.12 释放字符串哈希表 dvmstringInternStartup(void)

5.13 初始化本地方法库的表  dvmnativeStartup

5.14 初始化内部本地方法 dvmInternalNativeStartup初始化内部本地方法,建立哈希表,方便快速查找

5.15 初始化JNI调用表 dvmJniStartup初始化JNI调用表,以方便快速找到本地方法调用的入口。

5.16 缓存java类库里的反射类 dvmReflectStartup,调用dvmPrepMainForJni()准备主线程里的解释栈可以调用JNI方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值