Как работают кросс-платформенные платформы разработки мобильных приложений?

Как Rhodes, Phonegap и Appcelerator могут взять Javascript или Ruby и скомпилировать их в двоичные файлы для SDK приложений, которые обычно требуют, чтобы приложения были написаны в Obj-C, Java и других?

Phonegap использует механизм рендеринга браузера по умолчанию и использует его для отображения вашего приложения. Затем javascript обрабатывается нативной (скомпилированной) частью фреймворка.

Appcelerator использует что-то симулятивное, но компилирует все приложение, если я правильно помню.

MoSync использует несколько симуляционную настройку как javaME.

Родос использует локальный сервер. Он использует это для связи с устройством.

Джефф Haynie, соучредитель Appcelerator, объясняет, как Titanium Mobile работает здесь .

Javascript-интерпретатор встроен в движок браузера webkit, а SDK iPhone / iOS предоставляет достаточный доступ к этому интерпретатору для запуска почти целого приложения, написанного на Javascript, с помощью всего лишь крошечной обертки Objective C для запуска.

Android поддерживает собственный машинный код ARM, хотя NDK, поэтому почти любой язык с компилятором, который может создавать автономный двоичный код ARM (но не требующий практически никакого доступа к ОС), может быть использован как библиотека и доступен через интерфейс NDK с Java Приложение.

Я создал проект с открытым исходным кодом http://propertycross.com, который помогает выбрать межплатформенную платформу для мобильных устройств, показывая одно и то же приложение, реализованное с Sencha, Titanium, Xamarin и другими. Проект также содержит подробную информацию о том, как работают каждая структура. Это должно помочь вам сравнить опыт конечного пользователя, код, опыт разработчиков и код, разделяемый между различными параметрами.