Ускоренная Компиляция Для Ios С Air 4

Перевод статьи, посвященной новому режиму компиляции Adobe AIR, который позволяет быстрее компилировать приложения для iOS, не снижая при этом производительность тестируемого приложения.

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

Ссылка на оригинал: «Быстрая компиляция с помощью AIR для iOS»



Введение

Приложения AIR для iOS можно упаковать несколькими способами: с помощью варианта быстрой упаковки (интерпретируемый режим) или стандартного (компилируемый режим).

Интерпретируемый режим, который в основном используется для отладки, компилируется быстрее, чем скомпилированный режим.

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

Разработчики, публикующие приложения в AppStore, используют скомпилированный режим для повышения производительности.

Однако длительное время, необходимое для упаковки в скомпилированном режиме, не вызывает положительных эмоций.

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

Бета-версия переработанного компилятора в настоящее время доступна всем разработчикам.

(в данном случае речь идет об AIR4, также известном как AIR 12) Обзор режима компиляции При упаковке приложения AIR для iOS: SWF-файл разработчика анализируется для извлечения блоков байт-кода Action Script (abc).

После анализа содержимого abc и использования ЛЛВМ API Каждая функция AS транслируется в соответствующую встроенную функцию.

С помощью генератора кода LLVM создается объектный файл для целевой платформы.

Создается исполняемый файл, связывающий объектные файлы и библиотеки среды выполнения AIR. Платформа iOS не поддерживает динамическую загрузку исполняемого кода.

Однако это ограничение позволяет упаковщику AIR использовать методы оптимизации для повышения производительности во время выполнения.

Такая оптимизация возможна, поскольку весь код доступен во время компиляции.

На рисунке 1 показана иллюстрация упаковки приложения AIR в скомпилированном режиме.



Ускоренная компиляция для iOS с AIR 4

Рис.

1 Устаревший компилятор по сравнению с новым компилятором Новый компилятор построен на базе виртуальной машины Action Script. Далее следует сравнение переработанного компилятора и устаревшего компилятора.

Старый компилятор Новый компилятор
Разработано с использованием Java и взаимодействует с LLVM с помощью JNI, что плохо влияет на производительность.

Разработан с использованием C++, большая часть кода взята из виртуальной машины.

Генерирует вызов функции для каждого кода операции (код операции abc).

Преобразует код операции (код операции abc) в SSA на основе IR (промежуточное представление) и генерирует оптимизированный IR.
Компилирует встроенную библиотеку каждый раз при упаковке приложения.

Выполняет инкрементальную компиляцию.

Это означает, что встроенная библиотека компилируется только один раз и поставляется с AIR SDK.

См.

рисунки 2 и 3 для иллюстрации изменений в обновленном компиляторе.



Ускоренная компиляция для iOS с AIR 4

Рис.

2

Ускоренная компиляция для iOS с AIR 4

Рис.

3

Использование нового режима упаковки

В AIR 14 можно использовать любой из следующих методов, чтобы начать использовать новый компилятор.

Командная строка Чтобы начать использовать новый компилятор для упаковки вашего IPA, используйте параметр –useLegacyAOT и установите для него значение no:

   

<AIR SDK>/bin/adt -package -target ipa-app-store -useLegacyAOT no -provisioning-profile abc.mobileprovision -storetype pkcs12 -keystore abc.p12 HelloWorld.ipa HelloWorld-app.xml HelloWorld.swf

Флэш-строитель Чтобы использовать эту функцию в Flash Builder 4.7: 1. Нажмите «Проект» > «Отладка/Выполнить» > «Конфигурации отладки/Выполнить конфигурации».

2. Нажмите «Настроить запуск» в диалоговом окне «Конфигурации отладки».

В окне «Настройка параметров запуска» отображаются все параметры, переданные в ADT, вместе с их значениями.

Посмотрите на рисунок 4.

Ускоренная компиляция для iOS с AIR 4

Рис.

4 3. Нажмите «Добавить параметр», чтобы добавить новый параметр для нового компилятора.

4. Введите -useLegacyAOT в поле имени и no в поле значения.

Установите новую опцию «Разместить перед» -provisioning-profile. Нажмите «ОК», чтобы сохранить новый вариант запуска.

Посмотрите на рисунок 5. Новый параметр запуска теперь будет отображаться в окне настройки запуска.



Ускоренная компиляция для iOS с AIR 4

Рис.

5 5. Нажмите OK, чтобы сохранить конфигурацию отладки/запуска.

Теперь в комплект поставки будет входить новый компилятор.

Флэш Про Эта функция доступна в Flash Pro CC 2014 и более поздних версиях.

При упаковке для iOS выберите «Включить более быструю упаковку», чтобы включить -useLegacyAOT no.

Ускоренная компиляция для iOS с AIR 4

Начиная с AIR 15.0, режим упаковки с новым компилятором используется по умолчанию.

Это означает, что для всех целей AOT, таких как ipa-app-store, ipa-test, ipa-ad-hoc и ipa-debug , для упаковки используется новый компилятор.

Вы не должны использовать переключатель –useLegacyAOT чтобы использовать новый режим упаковки компилятора.

Примечание.

Если вы хотите использовать устаревший режим упаковки, используйте ключ –useLegacyAOT со значением yes в командной строке или в Flash Builder при упаковке IPA.

Результаты
Новый компилятор значительно сокращает время упаковки при сохранении той же производительности.

Время упаковки На рисунках 6 и 7 показано, что новый компилятор почти в 5–20 раз быстрее старого.

Для небольших приложений выигрыш в основном достигается за счет предварительно скомпилированной встроенной библиотеки.



Ускоренная компиляция для iOS с AIR 4

Рис.

6

Ускоренная компиляция для iOS с AIR 4

Рис 7. Производительность во время выполнения Вы не должны заметить значительных изменений в производительности при запуске приложений, упакованных с помощью нового компилятора.

Сообщайте в Adobe о любых проблемах с производительностью, с которыми вы столкнулись при запуске приложения.



Известные вопросы

Новые функции компилятора доступны в бета-версии.

Хотя это работает для большинства приложений, у вас могут возникнуть некоторые проблемы со стабильностью.

Для получения дополнительной информации посмотрите Известные вопросы .

Теги: #быстрая упаковка #air mobile #Flex SDK #air sdk #Adobe Flash #Apache Flex

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.