在Android J2ME或Java SE中使用哪个版本的Java?

Adi*_*wer 22 android

在Android J2ME或Java SE中使用哪个版本的Java?

Bar*_*ica 17

每个人都在这里,但让我稍微澄清整个过程 - 它是如何工作的:

  1. 我们使用来自标准J2SE分发的普通Java编译器并生成.class文件 - 也称为Java VM的字节代码
  2. 然后使用Android SDK(aapt)中包含的工具 - 我们从.class文件生成.dex文件 - 换句话说Dalvik VM字节码
  3. 最后我们将所有这些文件(.dex +资源)压缩成zip存档,我们以前将其命名为.APK文件 - 有点Android可执行文件

所以从这个角度来看 - 很明显Android既不是J2ME(运行所谓的Kylobyte VM字节码),也不是J2SE(运行Java VM字节码)......

但从其他角度来看,Android更接近于J2SE - 因为它基于JVM字节码.


Jon*_*nas 9

Android不是Java ME或Java SE.Android是一个不同的平台和框架,但Java是Android SDK的编程语言.Android不是使用Java虚拟机而是使用Dalvik.还有一个用于C/C++ 的Android NDK.


SQL*_*ace 5

Android使用Dalvik

Dalvik是谷歌Android操作系统中的虚拟机(VM).因此,Dalvik是Android的一个组成部分,通常用于移动设备,如手机,平板电脑和上网本.在执行之前,Android应用程序将转换为紧凑的Dalvik可执行文件(.dex)格式,该格式适用于受内存和处理器速度限制的系统.

http://en.wikipedia.org/wiki/Dalvik_virtual_machine

  • "Android Runtime(ART)作为技术预览包含在Android 4.4"KitKat"中.ART完全取代了Dalvik在Android 5.0"Lollipop" (2认同)