Android JVM的运行过程

JVM有三重意思:java virtual machine specification,java virtual machine implementation, java virtual machine runtime instance. 作为Android系统的使用者,我们主要关心runtime instance,不过为了对JVM全貌有个了解,还是需要简要回顾一下JVM specification描述的模型。
因为涉及体系结构,编译器和操作系统铁三角,这个话题还是很大。不过我们的目标是理解一个APK是如何在Android JVM上运行的,所以重点关注操作系统方面,编译器和体系结构部分且当作黑盒子看待。

JVM 模型

JVM是一个抽象的计算机,在它上面运行的程序是平台无关的。JVM通过Class loader来加载class并执行其中的bytecode。执行bytecode的execution engine根据具体的实现有很大差异。JVM 可以通过native method来与host platform交互。

JVM conceptual arch:
这里写图片描述
JVM上memory包含集中类型: method area, java heap, java stack, native heap, native stack:
Runtime data areas shared among all threads:
这里写图片描述

Runtime data areas exclusive to each threads:
这里写图片描述

JVM class loader:
这里写图片描述

ART JVM runtime implementation

How did ART VM come?

  1. Boot-loader loads kernel and start init process;
  2. Init start Zygote process;
  3. Zygote initializes a Dalvik/ART VM which preloads and pre-initializes core libraries classes;
  4. Zygote keeps in an idle state by system and waits for socket requests;
  5. Once an application execution request occur, Zygote forks itself and create new process with pre-loaded Darvik/ART VM;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值