Создание простого приложения на AIR for Android: Часть 1

Чтобы создавать приложения на AIR for Android нам нужно устройство с Android версии 2.2 минимум и установленный на этом устройстве AIR (он бесплатный, можно найти в Android Market или пройти через QR Code ниже). А так же нам понадобиться Adobe Flash Builder 4.5.1 (как пример будет использоваться русская версия).

Желательно, чтобы само устройство входило вот в этот список, ибо AIR еще работает не на всем.

Первым делом создадим проект:

  • Меню:  «Файл» -> «Создать» -> «Мобильный проект ActionScript».
  • Вводим имя проекта, указываем нужную папку для проекта. Жмем «Далее».
  • Ставим галку в «Целевой платформе» только на «Google Android»
  • Галочку «Автоматически изменять ориентацию» оставляем по желанию (я лично ее снял).
  • В разрешениях можно отметить галкой «WAKE_LOCK», чтобы приложение не засыпало.
  • Жмем «Далее». В следующей вкладке называем «Файл главного приложения» как «Main.as» и жмем «Готово».

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

Предлагаю вам сразу скачать Main.as, подменить его в своем проекте и дальше разбирать код параллельно со статьей.

Пропустим «официальную часть», где мы подключаем нужные библиотеки и запускаем конструктор. После конструктора мы переходим к функции init:

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

Функция fl_OptionsMenuHandler делает простую, но очень полезную вещь – обеспечивает выход из приложения по кнопке «Back», иначе бы оно у нас так и осталось висеть в процессах устройства.

Функция initStuff инициализирует уже наши переменные, настраивает слои (это пригодится в следующих статьях), создает текстовые поля, запускает механизм расчета FPS и памяти, а так же запускает функцию определения того, что поддерживает ваше устройство:

Сбор информации о возможностях вашего устройства на Android создает объект с настройками. Каждое значение является логической переменной, а ключ описывает настройку. В конце функции содержание объекта выводится на экран.

Сбор информации о возможностях вашего устройства на Android создает объект с настройками. Каждое значение является логической переменной, а ключ описывает настройку. В конце функции содержание объекта выводится на экран.

При выяснении, что у нас поддерживается, а что нет, попутно успеваем поймать один из багов AIR для AndroidMultitouch.maxTouchPoints почему-то возвращает значение 2, даже на тех устройствах, которые поддерживают большее число одновременных нажатий на экран. Надеемся, что это скоро поправят. Так же хочу объяснить, почему я отключил autoOrients – скорее всего в играх это не понадобиться. Ни где я не видел, чтобы была поддержка двух ориентаций экрана, так что мы можем смело отключить автоматическое ориентирование и делать все в каких-то одних пропорциях.

Отдельно хочется написать о множественных прикосновениях. В AIR поддерживается два типа мультитач – TOUCH_POINT, это когда мы просто прикасаемся пальцами к экрану, и GESTURE, это когда мы можем одним или (чаще) двумя пальцами совершать разные движения – листать, увеличивать, уменьшать, вращать, перетаскивать и т.д. Вместе эти режимы работать не могут, только каждый в отдельности. Так же приложение умудряется обрабатывать старые добрые события для мыши, хотя мыши у нас никакой нет, но можно спокойно кликать по кнопкам.

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

Как же теперь скомпилировать наш креатив?

  • Жмем на черный треугольничек рядом иконкой с жучком и выбираем «Конфигурация Отладка…».
  • В появившемся окне выбираем наше приложение в колонке слева и указываем нужную целевую платформу.
  • Выбираем «Способ запуска» как «Отладка с USB» и кликаем по ссылке «Справка по подключению устройства», читаем и делаем все что там просят.
  • Жмем «Применить», жмем «Отладка».
  • Дальше все либо соберется само без ошибок, либо будет несколько странных моментов:
  • Flash Builder может сказать, что на устройстве какая-то старая версия AIR и надо бы ее обновить. Все хорошо, но вот у нас, скорее всего, будет стоять AIR 2.7, а Flash Builder нам предложит версию 2.6. Жмем «Нет».
  • Устройство внезапно может отказать отладчику в соединении, выскочит окно, что девайс ждет еще минуту, потом работает дальше. Этого можно избежать, если компилировать не отладочную версию, а релиз. Настраивается все так же в соседней с жучком иконке – «Конфигурация Выполнить». Релизный билд и работать будет быстрее.

В итоге, если все сделали правильно, получаем установленное и запущенное приложение на нашем устройстве.

Все проверено на HTC Desire S.
Тестовое приложение заработать может не у всех!

Adobe AIR for Android:
Adobe AIR
Тестовое приложение:
test app

Похожие записи:

10 Responses to Создание простого приложения на AIR for Android: Часть 1
  1. Error202 Reply

    Жаль нельзя из флеша установить картинку на рабочий стол :(
    Я так понимаю, через fl_OptionsMenuHandler можно и другие вещи выполнять по клавише Back? например вызвать меню…

    • ekeeper Reply

      Да, я про кнопки управления отдельный маленький примерчик сделаю.

  2. Error202 Reply

    А, чуть не забыл, возможно ли в скомпилированном приложение поднять значения minSDK и targetSDK?

    • ekeeper Reply

      Вечером проверю, хотя не представляю зачем это надо. Напишу в следующем посте.

    • ekeeper Reply

      Походу нельзя это менять прям в коде, не нашел возможности.

  3. Михаил Reply

    В примере проект собирается в Adobe Flash Builder 4.5.1
    С использованием FlashDevelop его не собрать?
    Компилятор вроде один и тот же используется…

    • ekeeper Reply

      Может и соберется, но я вот не уверен, что во FlashDevelop есть автоматический упаковщик в apk, который тут же все это добро еще и на телефон зальет – мне без него неудобно. Я читал статьи как самому паковать и заливать… лень в консоли возится :)

      • Михаил Reply

        ок, да, пожалуй придется поставить…

  4. Dufa Reply

    Мое мобильное приложение на заднем фоне воспроизводит музыку.

    В разрешениях нужно отметить галкой «READ_PHONE_STATE» для приглушения звука во время телефонных вызовов?
    С помощью параметров какого класса это можно сделать в коде?

    • ekeeper Reply

      Слишком узкая задача, я увы, так глубоко еще не разбирался :(

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">