Как запустить adobe air на андроид
Давно хотел сделать хоть какую-нибудь игрушку для мобильника. Разработка игр – это одно из моих хобби. Времени я уделяю для этого крайне мало, но делаю это с удовольствием.
Раньше разрабатывал небольшие игрушки на PC (так, друзьям и коллегам поиграть), браузерные игры и игры для социальных сетей. Ничего особо выдающегося в этом направлении я не сделал, но неплохо провел время.
Ах да, еще работал в парочке фирм-разработчиков и издателях компьютерных игр программистом, но быстро понял, что увлечение – это одно дело, а работа в крупной фирме в области геймдева – совсем другое.
Никогда не делал игр для мобильных устройств и вот решил изучить вопрос, попробовать и разработку, и публикацию, и вообще узнать как там все.
Выбор технологии
Два раза устанавливал Unity, сделал тестовый проект и не знаю – что-то не лежит душа к этой технологии, все мне неудобно и навыворот сделано.
Пробовал sdl2 и cocos2d – намного больше понравились эти технологии, но обязательно натыкался на ограничения возможностей движка в некоторых аспектах, без которых можно было и обойтись, но очень хотелось больше пространства для маневров.
Пробовал haxe – очень интересная штука, но собирать приложение долго, часто глючит сборка через Android SDK/NDK (у меня несколько сред разработки по работе со своими хранилищами Android SDK/NDK, возможно они конфликтуют с haxe), да и производительность не сильно лучше Starling для AIR.
Ковырялся я долго в разных движках и в какой-то момент решил просто выпустить ради самого процесса игрушку. Поэтому я обратился к старому другу – AS3 с технологией AIR. Как-то делал небольшие радиоуправляемые игрушки и вместо пульта использовал телефон, на котором были разработаны простенькие интерфейсы джойстика управления по WI-FI. Как раз для этого я использовал AIR, ведь раньше я делал игрушки на Flash, и создание приложения для мобильника на AIR оказалось крайне быстрым и простым.
Stage3D
Векторная анимация никогда не отличалась хорошей производительностью, но небольшое количество анимаций работает отлично. Серьёзной игрушки на этом не сделаешь, да и давно хотел освоить работу с видеокартой через Stage3D. Пробовал еще bitmap blitting как ведет себя на мобильнике – очень не плохо, но так-как это все для личного удовольствия, я решил освоить таки Stage3D.
Сначала я взялся за Starling и Genome2D. Starling оказался очень удобным, но не оправдал моих ожиданий в производительности, если использовать анимации с различными фильтрами отображения, то лучше использовать обычный DisplayList и MovieClip. С Genome2D трудно работать и искать информацию, да и не на много производительнее. Посмотрев исходники, мне стало понятно, что эти движки – очень жесткая реализация возможностей Stage3D. Решил посмотреть на сам Stage3D.
Воодушевил меня на это bunnymark, разработанный на основе примера от Adobe – GPUSprite. Столько спрайтов скачет на экране, мне стало сразу интересно как.
Посмотрел этот небольшой движок (GPUSprite). В принципе почти все для счастья есть (камера, спрайты, вращение, перемещение, масштабирование, прозрачность), плюс все возможности, какие сам допишешь. Не хватало для маломальского движка в примере анимаций, нескольких фильтров отображения, ну и управления всеми возможностями.
Казалось бы, мало, но сделать это не так просто. Есть некоторые проблемы, исходящие из принципа работы с видеокартой. Можно для каждого спрайта выделять свой объект видеокарты, но это работает не так уж быстро, за то можно спокойно накладывать любые пиксельные шейдеры на конкретный спрайт и линейно наращивать количество спрайтов. Побольше спрайтов можно вывести если в одном объекте видеокарты хранить несколько спрайтов, если будем представлять спрайты в виде прямоугольников, то нам понадобится 4 вершины на спрайт. Но есть ограничение в количестве вершин объекта видеокарты, ну и можно привязать ограниченное число текстур (спрайтшитов). Для тех настроек, что применял я для большего охвата устройств получается 16384 спрайтов на объект и ограничился одной текстурой.
Также необходима сортировка по глубине отображения спрайтов. Из этого всего возникает такая картина:
• Перебираем спрайты в очередности прорисовки;
• Для первого спрайта создаем объект видеокарты и привязываем связанный спрайтшит в виде текстуры;
• Смотрим на следующий спрайт: если он из другого спрайтшита, заполнен лимит в 16384 спрайтов в объекте или требует другого пиксельного шейдера для эффектов отображения, то создаем новый объект видеокарты.
Управлять всем этим делом не просто, да и требует времени на обработку. Но можно делать и по-другому – не превращать спрайтшит как есть в текстуру, а создавать текстуру по мере отрисовки необходимыми спрайтами, и здесь свои минусы.
Способов я перебрал много разных, и в каждом были свои плюсы и минусы. В конце концов я убрал почти всю автоматическую обработку ради ручного управления. Сложно в применении, но КПД хороший. Иначе все что-то вроде Starling получается по производительности.
Сделал поддержку покадровой анимации и программной (костной анимации) и небольшие программы для преобразования MovieClip’ов из Adobe Animate в спрайтшиты и файлы описаний программной и покадровой анимации.
Потом хотел для элементов GUI использовать обычный stage, но это тормозило, отвлекся на разработку GPUGUI движка простенького и конвертором в растровые шрифты. С текстом вообще сложно тоже. Для простых редко меняющихся фраз сделал авто формирование спрайта путем отрисовки TextField в BitmapData.
Выводы
Развлекся, конечно, как мог. Десятки велосипедов наделал, но было увлекательно, и это все-таки хобби. Еще было несколько проблем с особенностью поведения Stage3D на Android. Например, при горизонтальной ориентации экрана, если во время игры кто-то позвонит, то после возвращения в игру остается белый экран, ну или такой цвет, какой вы выбрали в настройках фона по умолчанию. Притом можно тыкать на невидимые кнопки, слушать звуки и обычный stage работает, и весь код приложения функционирует, просто ничего не отображается. Об этой проблеме есть статьи в интернете.
Публикация в Google Play тоже веселое занятие, вроде все по-русски написано, но ничего так просто не понять и полезно почитать пояснения на сторонних сайтах опытных людей. Интерфейс китайцы им, наверно, сочиняют.
Для испытания всего этого я разработал простенькую аркаду «Древние Руны» и опубликовал ее на Google Play.
Пока займусь другими увлечениями, а потом интересно разработать небольшую онлайн игрушку для мобильных.
Вот, если интересно, пример apk бенчмарка от старлинга (я поменял только статичные картинки на анимации, возможно, там что-то можно ускорить) и пример движка на основе GPUSprite от Adobe с анимацией
Чтобы начать работу, установите и настройте AIR SDK и Flex SDK. В данном учебном пособии используется компилятор AMXMLC из пакета Flex SDK, а также AIR Debug Launcher (ADL) и AIR Developer Tool (ADT) из пакета AIR SDK. См. раздел «Настройка Flex SDK».
Также необходимо загрузить и установить Android SDK с веб-сайта Android, как описано на странице Разработчики Android: установка SDK.
Примечание. Дополнительные сведения о разработке приложений для iPhone см. в разделе «Создание приложения Hello World для iPhone с помощью Flash Professional CS5».Создание файла дескриптора приложения AIR
В этом разделе описаны принципы создания дескриптора приложения, представляющего собой XML-файл со следующей структурой:
Создайте XML-файл HelloWorld-app.xml и сохраните его в каталоге проекта.
Добавьте элемент <application> , включая атрибут пространства имен AIR:
<application xmlns="http://ns.adobe.com/air/application/2.7"> Последний сегмент пространства имен (2.7) задает версию среды выполнения, которая требуется для приложения.
Добавьте элемент <id> :
<id>samples.android.HelloWorld</id> Идентификатор приложения однозначно идентифицирует приложение в сочетании с идентификатором издателя (который AIR извлекает из сертификата, используемого для подписи пакета приложения). Рекомендуемым форматом является обратная запись строки DNS с использованием точки в качестве разделителя, например "com.company.AppName" .
Добавьте элемент <versionNumber> :
<versionNumber>0.0.1</versionNumber> Помогает пользователям определить, какую версию приложения они устанавливают.
Добавьте элемент <filename> :
<filename>HelloWorld</filename> Имя, используемое для выполняемого файла приложения, каталога установки и аналогичных ссылок на приложение в операционной системе.
Добавьте элемент <initialWindow> , содержащий следующие дочерние элементы, чтобы указать свойства исходного окна приложения:
<content>HelloWorld.swf</content> Определяет корневой HTML-файл приложения AIR для загрузки.
Добавьте элемент <supportedProfiles> .
<supportedProfiles>mobileDevice</supportedProfiles> Указывает, что приложение запускается только в профиле мобильного устройства.
Сохраните файл. По завершении файл дескриптора приложения должен иметь следующий вид:
В этом примере устанавливается всего несколько возможных свойств приложения. В файле дескриптора приложения также можно использовать другие настройки. Например, можно добавить значение <fullScreen>true</fullScreen> в элемент initialWindow, чтобы создать полноэкранное приложение. Для включения удаленной отладки и функций управляемого доступа на платформе Android в дескриптор приложения необходимо добавить разрешения Android. Данное простое приложение не требует разрешений, поэтому сейчас их добавлять не нужно.
Написание кода приложения
Создайте файл с именем HelloWorld.as и в текстовом редакторе добавьте следующий код:
Компиляция приложения
Перед выполнением и отладкой приложения скомпилируйте код MXML в SWF-файл с использованием компилятора amxmlc. Компилятор amxmlc находится в каталоге bin пакета Flex SDK. При необходимости можно включить каталог bin пакета Flex SDK в переменную среды для пути на компьютере. Настройка пути делает выполнение утилит в командной строке более простым.
Откройте командную среду или терминал команд и перейдите к папке проекта приложения AIR.
Введите следующую команду:
При выполнении компилятора amxmlc создается файл HelloWorld.swf , содержащий скомпилированный код приложения.
Примечание. Если не удается скомпилировать приложение, исправьте синтаксические или орфографические ошибки. Ошибки и предупреждения отображаются в окне консоли, используемом для выполнения компилятора amxmlc.Проверка приложения
Чтобы выполнить и протестировать приложение из командной строки, используйте инструмент AIR Debug Launcher (ADL) для запуска приложения с помощью соответствующего файла дескриптора приложения. (Инструмент ADL находится в каталоге bin пакетов AIR SDK и Flex SDK.)
Создание файла пакета APK
Если приложение успешно запущено, можно использовать утилиту ADT, чтобы упаковать приложение в файл пакета APK. Файл пакета APK — это собственный формат файлов приложений Android, которые используются для распространения приложениям пользователям.
Все приложения Android должны быть подписаны. В отличие от файлов AIR приложения Android должны быть подписаны с помощью самозаверяющего сертификата. Операционная система Android не пытается установить личность разработчика приложения. Для подписания пакетов Android можно использовать сертификат, сгенерированный с помощью ADT. Сертификаты, используемые для приложений, которые размещаются на Android Маркете, должны иметь срок действия не менее 25 лет.
Создание самозаверяющих подписывающих сертификатов и пары ключей
Создание пакета AIR
Будет выдано предложение ввести пароль для файла ключей. Введите пароль и нажмите клавишу Enter.
Установка среды выполнения AIR
Последнюю версию среды выполнения AIR на устройство можно установить с Android Маркета. Кроме того, можно установить включенную в SDK среду выполнения на устройство или в эмулятор Android.
В качестве значения флага -platformsdk укажите путь к Android SDK (родительский каталог папки tools).
ADT устанавливает файл Runtime.apk, включенный в SDK.
Установка приложения AIR
В качестве значения флага -platformsdk укажите путь к Android SDK (родительский каталог папки tools).
Чтобы запустить приложение, нажмите на значок приложения на экране устройства или эмулятора.
На посты, размещаемые в Twitter™ и Facebook, условия Creative Commons не распространяются.
Пользователи приложения могут установить среду выполнения AIR и приложения AIR, используя обычный механизм распространения, предусмотренный для их устройства.
Например, на Android, пользователи могут устанавливать приложения с Android Маркета. Если в разделе «Настройки приложения» разрешена установка приложений из неизвестных источников, пользователи могут устанавливать приложения по нажатию ссылки на веб-страницы, а также скопировав пакет приложение на устройство и открыть его. Если пользователь пытается установить приложение Android, но еще не установил среду выполнения AIR, он автоматически будет перенаправлен на Маркет, где он сможет установить среду выполнения.
В iOS предусмотрено два способа распространения приложения для конечных пользователей. Основным методом распространения является Apple App Store. Также можно использовать метод специального распространения, чтобы разрешить определенному числу пользователей установку приложения без перехода в App Store.
Установка среды выполнения AIR и приложений для разработки
Поскольку приложения AIR на мобильных устройствах устанавливаются как собственные пакеты, для установки приложений для тестирования можно пользоваться стандартными инструментами платформы. Для установки среды выполнения AIR и приложений AIR можно использовать команды ADT, если они поддерживаются. В настоящее время данный подход поддерживается на Android.
В iOS установку приложения для тестирования можно выполнить с помощью iTunes. Протестированные приложения должны быть подписаны с помощью сертификата для подписи кода Apple, выданного специально для разработки приложений, и упакованы с помощью профиля поставки. Приложение AIR в iOS представляет собой автономный пакет. Отдельная среда выполнения не используется.
Установка приложений AIR с помощью ADT
При разработке приложений AIR с помощью ADT можно устанавливать и удалять среду выполнения и приложения (эти команды также могут быть интегрированы в ИСР, поэтому запускать ADT отдельно не потребуется).
Среду выполнения AIR можно установить на устройство или эмулятор с помощью утилиты AIR ADT. При этом требуется установить SDK для устройства. Используйте команду -installRuntime :
Если параметр -package не указан, пакет среды выполнения, предназначенный для устройства или эмулятора, выбирается из списка доступных в установленном AIR SDK.
Чтобы установить приложение AIR в ОС Android или iOS (AIR 3.4 и более поздних версий), воспользуйтесь похожей командой -installApp :
Значение аргумента -platform должно соответствовать устройству, на которое выполняется установка.
Примечание. Существующие версии среды выполнения AIR и приложение AIR необходимо удалить перед повторной установкой.Установка приложений AIR на устройства с iOS с использованием программы iTunes
Чтобы установить приложение AIR на устройство iOS для тестирования, выполните следующие действия.
Откройте приложение iTunes.
Если это еще не сделано, добавьте профиль обеспечения данного приложения в iTunes. В iTunes выберите «Файл » > «Добавить в медиатеку». Затем выберите файл профиля обеспечения (с типом файла mobileprovision).
В некоторых версиях iTunes не выполняется замена, если уже установлена та же версия приложения. В таком случае удалите приложение с устройства и из списка приложений в iTunes.
Дважды щелкните IPA-файл для приложения. Он должен быть указан в списке приложений в iTunes.
Подключите устройство к порту USB компьютера.
В iTunes перейдите на вкладку «Программа» для устройства и проверьте, что программа выбрана в списке устанавливаемых.
Выберите устройство в списке на левой панели программы iTunes. Затем нажмите кнопку «Синхронизировать». По окончании синхронизации приложение Hello World появится на устройстве iPhone.
Если новая версия не установилась, удалите приложение с устройства и из списка приложений в iTunes, а затем повторите процедуру. Такое происходит, если текущая установленная версия использует тот же идентификатор приложения и номер версии.
Запуск приложения AIR на устройстве
Установленные приложения AIR запускаются через пользовательский интерфейс на устройстве. Приложения также можно запускать удаленно с помощью утилиты AIR ADT, если эта функция поддерживается:
Чтобы запустить приложение, для аргумента -appid следует указать идентификатор приложения AIR. Используйте значение, указанное в дескрипторе приложения AIR (без префикса air., который добавляется при упаковке).
Если подключено и запущено только одно устройство или эмулятор, флаг -device можно не указывать. Значение аргумента -platform должно соответствовать устройству, на которое выполняется установка. В настоящее время поддерживается только значение android.
Удаление среды выполнения AIR и приложений
Для удаления приложений можно использовать стандартные средства, доступные в операционной системе устройства. Кроме того, для удаления среды выполнения и приложений AIR можно использовать утилиту AIR ADT. Для удаления среды выполнения используйте команду -uninstallRuntime :
Для удаления приложений используйте команду -uninstallApp :
Если подключено и запущено только одно устройство или эмулятор, флаг -device можно не указывать. Значение аргумента -platform должно соответствовать устройству, на которое выполняется установка. В настоящее время поддерживается только значение android.
Настройка эмулятора
Для запуска приложения AIR на эмуляторе устройства обычно требуется с помощью SDK для этого устройства создать и запустить экземпляр эмулятора на компьютере. Затем можно установить версию эмулятора для среды выполнения AIR и приложение AIR в эмулятор. Обратите внимание, что приложения в эмуляторе обычно работают намного медленнее, чем на реальном устройстве.
Создание эмулятора Android
Запустите Android SDK и приложение AVD Manager:
В ОС Windows запустите файл SDK Setup.exe из корневого каталога Android SDK.
В ОС Mac OS запустите приложение aindroid из подкаталога tools в каталоге Android SDK.
Выберите пункт «Available Packages» (Доступные пакеты). Отобразится список доступных Android SDK.
Выберите совместимый Android SDK (Android 2.3 или более позднюю версию) и нажмите кнопку «Install Selected» (Установить выбранное).
Выберите пункт «Virtual Devices» (Виртуальные устройства) и нажмите кнопку «New» (Создать).
Установите следующие настройки:
Имя виртуального устройства
Целевой API-интерфейс, например Android 2.3, API level 8
Размер SD-карты (например 1024)
Схема оформления (например, Default HVGA)
Обратите внимание, что создание виртуального устройства может занять длительное время, в зависимости от конфигурации системы.
После этого можно будет запустить новое виртуальное устройство.
Выберите виртуальное устройство в приложении AVD Manager. Виртуальное устройство, которое было создано ранее, должно быть представлено в списке.
Выберите виртуальное устройство и нажмите кнопку «Start» (Начать).
На следующем экране нажмите кнопку «Launch» (Запуск).
На компьютере откроется окно эмулятора. Это может занять несколько секунд. Инициализация операционной системы Android может занять некоторое время. Установить пакет приложения на эмулятор можно с помощью команд apk-debug и apk-emulator. Приложения, упакованные для целевой платформы apk, не работают в эмуляторе.
Как установить последнюю версию Adobe AIR
Во-первых, посетите Google Play магазин с вашего устройства Android
Следующий поиск Adobe AIR приложение
устанавливать приложение, или, если оно у вас уже есть, удалите его, а затем установите снова
Перезагрузите ваше устройство
После перезапуска устройства вам потребуется обновить остальные приложения, особенно приложения, которые вызывают сбой Adobe AIR. Следуйте инструкциям ниже, чтобы обновить ваши приложения.
Посетить Google Play магазин с вашего устройства Android
Нажмите кнопка меню в верхней левой части приложения
Нажмите Мои приложения игры
Нажмите Обновить все
Этот процесс может занять некоторое время. Оставьте свое устройство и вернитесь к нему позже
После обновления приложений перезагрузите устройство
Надеюсь, теперь проблема должна быть решена
Кроме того, если у вас ограниченный тарифный план на передачу данных, вы можете загружать обновления только для тех приложений, которые, как вы обнаружили, вызывают сбой в работе Adobe AIR на вашем устройстве. Каждый раз, когда вы получаете сбой, посетите магазин приложений и найдите приложение, которое вы только что использовали, а затем установите обновление для этого приложения.
Помогите! Я не могу найти Adobe AIR в магазине Google Play
Если вы не можете найти Adobe AIR в Google Play Store, это означает, что ваше устройство не поддерживает среду выполнения Adobe AIR. Из-за этого каждое приложение, использующее Adobe AIR, не будет работать должным образом. Если вы не используете Android 4.0 или выше, вы можете сделать следующее, чтобы проверить наличие обновлений. Однако, если вы не можете найти какие-либо обновления, в этом случае ваше устройство, к сожалению, не сможет запускать определенные приложения, связанные с Adobe AIR.
Чтобы попытаться обновить Android, посетите Приложение настроек
Прокрутите вниз и нажмите О телефоне
Нажмите Проверьте наличие обновлений
Если доступно обновление, вам будет предложено загрузить и установить его
После установки вы сможете установить Adobe AIR из магазина Google Play.
Если вы можете установить Adobe AIR, у вас больше не должно быть проблем с запуском приложений.
На некоторых устройствах Обновление программного обеспечения Кнопка должна быть найдена в меню настроек под телефоном, так что следите за ней, если вы не можете найти ее, используя шаги, описанные выше.
Помогло ли это руководство решить «к сожалению, ошибка Adobe AIR прекратилась?» Дайте нам знать!
Читайте также: