gpt4 book ai didi

java - 如果同时使用 JVM 和 Dalvik,Android 如何更快

转载 作者:太空狗 更新时间:2023-10-29 16:36:26 27 4
gpt4 key购买 nike

我知道 Android 使用它自己的名为 Dalvik 的虚拟机,它运行 .dex 文件而不是 .class 文件。

According to Wikipedia ,

Programs are commonly written in Java and compiled to bytecode for the Java virtual machine, which is then translated to Dalvik bytecode and stored in .dex (Dalvik EXecutable)

为什么Android需要先编译成JVM字节码(.class)再翻译成Dalvik字节码(.dex),为什么不能直接从.java编译成Dalvik字节码文件 ? ?

如果它使用两个 VM,首先是 JVM,然后是 Dalvik,那么它不会使编译过程变慢吗?

更新:

如果我在 Java 中运行一个程序,它将把 .java 文件编译成字节码 (.class) 然后解释它,如果我在 Android 中运行相同的程序,它会先把.java文件编译成.class,把.class编译成.dex,然后运行...相比之下,Android 会不会更慢?

最佳答案

Why Android needs to first compiled into bytecode for the JVM and then translates into Dalvik bytecode.? why can't it directly compiled to Dalvik byte code from .java file ?

如果您想为此编写一个完整的编译器,它可以。 new Jack compiler for Android显然是这样做的。

一般来说,编写字节码转换器比编写完整的编译器更容易。

then doesn't it make the compiling process slow ?

转换过程确实增加了开销。 “慢”是一种观点陈述,所以我不知道字节码转换是否使“编译过程变慢”对于你定义的“慢”。

关于java - 如果同时使用 JVM 和 Dalvik,Android 如何更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27724841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com