Можно ли запустить Java байт-код на Android

«Можно ли запустить Java байт-код на Android» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, но с ограничениями. Android использует Dalvik/ART, которые выполняют dex-байткод, а не стандартный Java байт-код. Однако:

  1. Можно конвертировать .class файлы в .dex с помощью dx/d8 инструментов
  2. Android Studio автоматически делает это во время сборки
  3. Для ручного конвертирования можно использовать:
d8 --output out.dex input.jar

Но некоторые Java-фичи (например, AWT/Swing) не поддерживаются в Android. Также важно учитывать, что с Android 9 (API 28) поддержка Java байт-кода через Runtime.exec() была ограничена.