Android 运行时(ART 或 Dalvik)是否包含 Java VM 堆栈或像 JVM 一样的本地方法堆栈?

Does Android Runtime(ART or Dalvik) contain Java VM stack or Native Method Stack like JVM?

根据 Oracle Docs Run-Time Data Areas 状态,JVM 包含数据区域的各个部分: 而且我还了解到JVM是stack-based,ART/Dalvik是register-based。 Dalvik堆由Active Heap和Zygote Heap组成。
问题如下:
1.stack-based中的"Stack"和JavaVM中的"Stack"有什么区别stack/Native方法栈。
2. ART/Dalvik 是否包含 JVM 中的 Java VM 堆栈之类的堆栈?
3. ART/Dalvik Run-Time 数据区是什么样的?

  1. What is the difference between "Stack" in stack-based and "Stack" in Java VM stack/Native Method Stack.

他们指的是同一件事。 "stack based" VM 使用其内存 space 的 stack 来执行逻辑和算术运算。

Does ART/Dalvik contain stacks like Java VM stacks in JVM?

Android VM 实现(Dalvik 和 ART)不是 Stack based,而是 Register based。这允许 Android 做的一件事是直接将虚拟寄存器映射到真实的硬件寄存器,从而提高执行速度和效率。

  1. What do ART/Dalvik Run-Time Data Areas look like?

您可以查看此示例,并阅读有关基于堆栈与基于寄存器的 VM 的更多信息here