2011-02-01 2 views

ответ

8

Android не является Java ME или Java SE. Android - это другая платформа и платформа, но Java - это язык программирования для Android SDK. Android не использует виртуальную машину Java, но Dalvik. Существует также Android NDK для C/C++.

+0

thnx jonas, вы говорите, что Java является языком программирования для Android SDK. Вопрос в том, какая версия java используется в android J2ME или java SE. –

+0

@ Adil: Это не Java ME или Java SE, которые используются, это Android. Это другой компилятор и другая виртуальная машина. Таким образом, вы можете видеть Android как другую версию Java. Android использует только подмножество библиотек Java SE, но также использует другие настраиваемые библиотеки. – Jonas

+0

thnx jonas теперь я понимаю –

5

Android использует Dalvik

Dalvik является виртуальной машины (VM) в операционной системе Андроида Google. Dalvik является неотъемлемой частью Android, который обычно используется на мобильных телефонах , таких как мобильные телефоны, планшетных компьютеров и нетбуков. Перед выполнением , Android приложения преобразуются в компактный Dalvik Исполняемый (.dex) формат, который предназначен для быть пригодны для систем , которые ограничены в терминах памяти и скорости процессора.

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

+0

Хорошо спасибо SQLMenace –

+2

«Android Runtime (ART) был включен в Android 4.4« KitKat »как предварительный просмотр технологии. ART заменяет Dalvik полностью на Android 5.0« Lollipop », – michael

14

Все это прямо здесь, но позвольте мне немного прояснить всю процедуру - как она работает:

  1. Мы используем обычный Java компилятор из стандартного дистрибутива J2SE и генерировать файлы .class - также известный как байт-код для Java VM
  2. Затем, используя инструмент, включенный в Android SDK (aapt), мы генерируем из .class файлов .dex файлов - другими словами Dalvik VM bytecodes
  3. В конце концов мы сжимаем все эти файлы (.dex + ресурсы) в почтовый архив, который мы использовали, чтобы назвать в качестве .apk файла - своего рода Android исполняемого

Так что с этой точки зрения - это ясно, что Android ни J2ME (которые запускают так называемые байт-коды Kylobyte VM), ни J2SE (который запускает байт-коды Java VM) ...

Но с другой точки зрения Android определенно ближе к J2SE - поскольку он основан на вершине байт-кодов JVM.

0

Проект GNU "J2SE for Android".

  1. он предоставляет классы Swing и AWT, поэтому вы можете запускать приложение J2SE на Android с помощью этой библиотеки.
  2. он реализует большинство функций, а не все.
Смежные вопросы