2011-02-01 40 views

回答

8

Android不是Java ME或Java SE。 Android是一個不同的平臺和框架,但Java是Android SDK的編程語言。 Android沒有使用Java虛擬機,但Dalvik。 C/C++也有一個Android NDK

+0

thnx jonas你說java是Android SDK的編程語言。我的問題是Java的哪個版本在android J2ME或java SE中使用。 – 2011-02-01 20:10:43

+0

@Adil:這不是Java ME或Java SE,而是Android。它是一個不同的編譯器和不同的虛擬機。所以你可以看到Android是一個不同的Java版本。 Android僅使用Java SE庫的一個子集,但也使用其他自定義庫。 – Jonas 2011-02-01 20:12:55

5

Android使用的Dalvik

的Dalvik是 谷歌的Android操作系統的虛擬機(VM)。 Dalvik因此成爲 Android的重要組成部分,通常用於 移動設備,如手機, 平板電腦和上網本。 執行之前,機器人應用是 轉換爲緊湊的Dalvik 可執行(.DEX)格式,這是 設計成適合於被在 存儲器和處理器速度方面受限的系統 。

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

14

每個人都在這裏,但讓我有點澄清整個過程 - 它是如何工作的:

  1. 我們使用普通的Java編譯器標準的J2SE分佈和產生的.class文件 - 也稱爲Java VM的字節碼
  2. 然後使用Android SDK(aapt)中包含的工具 - 我們從.class文件生成.dex文件 - 換句話說,Dalvik VM字節碼
  3. 在我們用來命名爲.apk文件壓縮我們所有這些文件(.DEX +資源)成zip壓縮包到底 - 還挺Android的可執行
從這個角度來看

所以 - 很顯然,Android的既不是J2ME (運行所謂的Kylobyte VM字節碼)或J2SE(運行Java VM字節碼)...

但是從其他角度來看,Android更接近於J2SE--因爲它基於JVM字節碼頂部。

0

GNU項目「J2SE for Android」。

  1. 它提供了Swing和AWT類,因此您可以使用此庫在Android上運行J2SE應用程序。
  2. 它實現了大部分功能,並非全部。