编译为dalvik字节码的编译器?

时间:2017-08-01 12:17:30

标签: android cross-compiling dalvik

所以我一直试图了解android的工作原理 从我到目前为止收集的内容:

- 似乎编写Android应用程序的唯一方法是使用java

-Apps在名为" dalvik虚拟机的虚拟机中运行"

- java文件被编译为dalvik字节码的方式,可以在虚拟机上运行,​​首先用java编译器编译它以获取java字节码,然后使用android提供的编译器来编译。翻译" java字节码到dalvik字节码。

我的问题是,如果那就是它的全部内容 然后就不可能创建一个可以编译成dalvik字节码的C / C ++(或任何其他编译语言)编译器吗?

我的意思是,我们已经拥有支持各种cpu架构的c ++跨平台编译器,为什么他们不支持dalvik"架构"还有吗?

2 个答案:

答案 0 :(得分:1)

  

似乎编写Android应用程序的唯一方法是使用java

You are welcome to use C/C++ as well

  

应用程序在名为" dalvik虚拟机"

的虚拟机中运行

仅适用于Android 4.4及更早版本。较新的设备使用名为ART的新运行时环境。

  

那么是不是可以创建一个可以编译成dalvik字节码的C / C ++(或任何其他编译语言)编译器?

你能编译其他编译成Dalvik字节码的语言吗?当然。你能将一些现有语言编译成Dalvik字节码吗?只有在Dalvik字节码中可以(合理地)实现该语言的语言特征。

答案 1 :(得分:1)

Dalvik字节码比x86或arm指令更有条理。它是以Java为中心的,具有高级概念,如类和方法,遵循java的语义。

作为粗略的近似,想象一下如何尝试将c ++转换为java程序。在尝试将c ++编译为dalvik字节码时,您将遇到所有相同的困难。

相关问题