портирование javac и dx на андроид - PullRequest
0 голосов
/ 31 декабря 2011

Привет, я планирую перенести компилятор javac и dx-конвертер на android .. Это будет тривиальной задачей или есть какие-то серьезные препятствия?

Моя идея состоит в том, чтобы создать приложение, чтобы люди могли компилировать исходный код Java на устройствах Android и, возможно, даже создавать приложения Android на тех же устройствах Android ...

это возможно?

1 Ответ

4 голосов
/ 31 декабря 2011

Большинство людей не сочли бы это тривиальным.

Вы указываете javac и dx как вещи, которые необходимо перенести.Это, безусловно, требования.Вам нужно будет создать порт ARM javac (и все системные библиотеки, которые он может использовать, которых нет на Android).Вам также нужно будет попытаться создать версию dx, которая будет работать на виртуальной машине Dalvik, как написано для Java VM.

Помимо этого, вам потребуется портировать, как минимум:

  • aapt и все системные библиотеки, которые он может использовать, которых нет на Android
  • aidl, и все системные библиотеки, которые он может использовать, которых нет на Android
  • компилятор LLVM
  • Ant (написанный на Java, но для Java VM и, скорее всего, не будет работать на виртуальной машине Dalvik без изменений)
  • весь использованный импортированный набор задач Antпроцессом сборки (также написанным для Java VM)
  • другими инструментами Java SDK, используемыми этими задачами Ant как частью процесса сборки (например, jarsigner, keytool)

И тогда вам нужно будет создать приложение для Android, которое могло бы вызывать задачу Ant для выполнения сборки, учитывая, что оболочка Android довольно ограничена и может предположительно создавать свои собственные препятствия для этого процесса.Такое приложение должно было бы захватывать stdout и stderr и сообщать о результатах пользователю (например, ошибки компиляции).Скорее всего, вам также потребуется развернуть свою собственную миниатюрную среду разработки, если только для этого нет существующего текстового редактора.

Я бы оценил это как превышение 100 инженерных месяцев.Так что, если ваша фирма поручила команде проекта небольшого размера, вы могли бы сделать это через год или около того.

...