Кодовое название что происходит под капотом
Я должен оценить Codename One, но я не смог найти информацию о том, как развертывание работает под капотом и каков на самом деле конечный результат. Они кросс-компилируют мой Java-код в реальный нативный код, похожий на RoboVM, используют ли они JVM, похожую на Gluon, или у них есть свои собственные JVM?
1 ответ
Вы можете увидеть мой ответ здесь для получения дополнительной информации, но суть в том, что мы несколько отличаемся от RoboVM.
Мы переводим байт-код в C и компилируем его в нативный, используя xcode. Следовательно, вы получаете полностью нативное приложение и даже можете получить исходный код и скомпилировать его самостоятельно. Поскольку нативный код C/Objective-C - это официально поддерживаемый путь к iOS, используемый многими приложениями / играми, он гарантированно будет работать всегда.
RoboVM - это интерфейс LLVM для Java. Это довольно амбициозная вещь, которую Apple официально не поддерживает. В прошлом это создавало для них немало сложных ситуаций, например, этот пост сотрудника RoboVM, объясняющий, как трудно им было перейти на iOS 9... То же самое было и в отношении недавнего перехода на 64-разрядную версию и т. Д.
Для нас переход на iOS 9 и 64-битную версию был относительно безболезненным, наша база кода также меньше, поскольку мы ограничиваем использование JDK набором поддерживаемых классов для переносимости.
Обратите внимание, что наша полная виртуальная машина с открытым исходным кодом находится под деревом vm. Сначала мы использовали XMLVM, и когда RoboVM запустился, мы подумали о переходе на них, но решили, что написание собственной виртуальной машины снизит риск.
Часть виртуальной машины - очень маленькая часть нашего решения, например, мы можем перевести ваше приложение во что угодно, включая приложение JavaScript, благодаря TeaVM, который поддерживает потоки в JavaScript. В отличие от RoboVM Codename One - это настоящее решение для однократной записи в любом месте.