Портирование javac и dx на андроид
Привет, я планирую портировать Javac-компилятор и DX-конвертер на Android. Это будет тривиальной задачей или есть какие-то серьезные препятствия?
Моя идея состоит в том, чтобы создать приложение, чтобы люди могли компилировать исходный код Java на устройствах Android и, возможно, даже создавать приложения Android на тех же устройствах Android...
Это возможно?
1 ответ
Большинство людей не сочли бы это тривиальным.
Вы перечисляете javac
а также dx
как вещи, которые нужно портировать. Это, безусловно, требования. Вам нужно будет создать порт ARM из javac
(и все системные библиотеки, которые он может использовать, которых нет на Android). Вы также должны попытаться создать версию dx
это будет работать на Dalvik VM, как написано для Java VM.
Кроме того, вам нужно будет портировать, как минимум:
aapt
и все системные библиотеки, которые он может использовать, которые не на Androidaidl
и все системные библиотеки, которые он может использовать, которые не на Android- компилятор LLVM
- Ant (написан на Java, но для Java VM и, скорее всего, не будет работать на Dalvik VM без изменений)
- весь импортированный набор задач Ant, используемых процессом сборки (также написан для Java VM)
- другие инструменты Java SDK, используемые этими задачами Ant в процессе сборки (например,
jarsigner
,keytool
)
И тогда вам нужно будет создать приложение для Android, которое могло бы вызывать задачу Ant для выполнения сборки, имея в виду, что оболочка Android довольно ограничена и могла бы наложить свои препятствия на этот процесс. Такое приложение должно было бы захватить stdout
а также stderr
и сообщить о результатах пользователю (например, ошибки компиляции). Скорее всего, вам также понадобится свернуть свою собственную миниатюрную среду разработки, если только для этого нет существующего текстового редактора.
Я бы оценил это как превышение 100 инженерных месяцев. Так что, если ваша фирма поручила команде проекта небольшого размера, вы могли бы сделать это через год или около того.