Подтвердить что ты не робот

Как работает Appcelerator Titanium Mobile?

Я работаю над созданием iPhone-приложения с Titanium Mobile 1.0, и я вижу, что он компилируется до родного бинарного iPhone. Как это работает? Похоже, что для анализа кода JavaScript потребовалось бы много тяжелой работы и сделать прямой перевод в Objective-C без наличия языка надмножества, такого как 280 North Objective-J и Cappuccino.

4b9b3361

Ответ 1

Titanium берет ваш Javascript код, анализирует и препроцессирует его, а затем предварительно компилирует его в набор символов, которые разрешены на основе использования приложений Titanium API. Из этой символической иерархии мы можем построить матрицу зависимостей символов, которая сопоставляется с базовыми символами библиотеки Титанов, чтобы понять, какие API (и связанные с ними зависимости, фреймворки и т.д.), В частности, ваши приложения. Я использую символ слова в полу-общем виде, поскольку он немного отличается от языка. В iPhone символ сопоставляется с истинным символом C, который в конечном итоге сопоставляется с скомпилированным .o файлом, который был скомпилирован для архитектур ARM/i386. Для Java, ну, это более или менее файл .class и т.д. После того как внешний интерфейс может понять вашу матрицу зависимостей, мы затем вызываем компилятор SDK (например, GCC для iPhone, Java для Android), чтобы затем скомпилировать ваше приложение в финальную родной двоичный код.

Итак, простой способ подумать о том, что ваш JS-код скомпилирован почти один к одному в типичные символы в nativeland. Там все еще интерпретатор работает в интерпретируемом режиме, иначе такие вещи, как динамический код, не будут работать. Тем не менее, его гораздо быстрее, гораздо компактнее, и он примерно так же близок к чистому натурному картографированию, как вы можете получить.

У нас, очевидно, все еще есть много возможностей, чтобы улучшить это и работать над этим. До сих пор в нашем последнем тестировании 1.0 он почти неотличим от того же самого objective-c прямого кода (поскольку в большинстве случаев он точно сопоставлен с этим). С точки зрения CompSci, мы можем теперь начать оптимизировать вещи, которые человек действительно не мог легко сделать, - как и компилятор GCC уже сегодня.

Ответ 2

Как сказал jhaynie, приложение скомпилировано в собственный код, но на рабочем месте все еще есть интерпретатор для запуска некоторого javascript, который позволяет приложению быть очень динамичным.

тигр appcelerator

Ответ 3

Если я упакую свой простой полный код, я получаю архив размером ~ 80 МБ gzip (исходный код ~ 1kB). Внутри пакета - среди прочих - вы можете найти мои исходные файлы html и js. Существует также множество библиотек (например, ssl), поставляемых вместе с пакетом (потому что вы можете иметь доступ к низкоуровневому доступу к множеству вещей в рамках этой структуры).

Я думаю, что они берут ваш код и обертывают какое-то программное обеспечение и библиотеки интерпретатора. В моем случае это будет похоже на то, что я упакую код html и js рядом с крошечным браузером, который отображает только мой сайт.

Как бы то ни было, до тех пор, пока код работает на каждой поддерживаемой системе таким же образом, как это хорошо.