【问题标题】:In the DVM architecture where is the machine code?在 DVM 架构中,机器码在哪里?
【发布时间】:2017-03-29 08:34:19
【问题描述】:

一直在寻找 stackoverflow 的答案,但无济于事。 来自本网站的链接 How an Android application is executed on Dalvik Virtual Machine. 有代码编译流程示意图

简单的问题是机器代码(或最终代码或本机指令)在哪里?

dalvik字节码是机器码(最终转换或编译后的代码)吗?

或者还有其他编译步骤?

还有被跟踪的 JIT 编译出现在块中的什么位置?是在 DEX 编译器中还是在 DVM 中?

感谢您的宝贵时间。

【问题讨论】:

  • 您可以找到 Dalvik here 的编译器部分。
  • @Michael 非常感谢您的信息。

标签: java android jvm jit dvm


【解决方案1】:

好吧,我想已经找到答案了。

1.编译流程

.java 文件——交给——java 编译器——生成——.class 文件。

所有.class文件--交给--dx工具--生成单个--dex文件

dex文件——交给——dvm——生成——最终机器码。

最终的机器码——交给——CPU——执行。

2.JIT 编译器是 JVM 的一项功能,可将 JVM 指令块编译为本机机器码。

如果有任何误解,请在 cmets 中通知。将修复答案。

感谢您的宝贵时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    相关资源
    最近更新 更多