2011
02.28

AIR for Android: Hello World!

1. Необходимые файлы.

Adobe AIR SDK 2.5: (depositfiles.com)
Android SDK: Свежие весии на android.com (depositfiles: sdk r09, sdk r10)
AIR Runtime Android: (один из них нужен, если будете устанавлиавать приложение на реальное устройство)
com.adobe.air.v2.5.0.1660.apk.zip
com.adobe.air.v2.5.1.1774.apk.zip
com.adobe.air.v2.6.apk.zip
AIR Runtime Android Emulator Froyo (для эмулятора):
Runtime_Emulator_Froyo_20100930.zip
Исходники приложения (FlashDevelop проект, примеры .bat-скриптов упаковки и устновки apk и скрипты apache ant): AF4droid.sources

2. Установка.

. Распаковываем Adobe AIR SDK 2.5 прямо в папку с flex sdk (я использовал версии 3.4 и 4.1 — обе успешно:) )

. Запускаем installer_r10-windows.exe.
. Если вас встречает такой скрин,

то вам нужко скачать Java JDK (depositfiles: JDK 6.24, win32 jdk-6u24-windows-i586.exe.zip).
. Next, Next.. Start SDK Manager:

. На следющем скрине выбираем пункты которые надо установить. Я добавил USB driver и выбрал sdk 2.2. Позже всегда можно доустановить необходимое. (все будет выкачиваться с сети)

. Ждем установки, потом появится “Done. 5 Packages Installed.” и жмем Close.
. Теперь слева выбираем Virtual Devices и жмем New.

. Выбираем необходимый API и другие настройки и жмём Create AVD:

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

. Пока эмулятор запускается, компилируем наше приложение. Собирается оно аналогично простому air-приложению за исключением:

  • application.xml:

    <?xml version="1.0" encoding="utf-8" ?>
    <application xmlns="http://ns.adobe.com/air/application/2.5">
      <id>AF4droid</id>
      <name>AF4_droid</name>
      <versionNumber>1.0</versionNumber>
      <supportedProfiles>mobileDevice</supportedProfiles>
      <filename>AF4droid</filename>
      <description></description>
      <copyright></copyright>
      <initialWindow>
        <title>AF4_droid</title>
        <content>AF4droid.swf</content>
        <visible>true</visible>
      </initialWindow>
      <!--<icon>
        <image72x72>icons/icon_72.png</image72x72>
      </icon>-->
    </application>

    1. versionNumber вместо version;
    2. иконка имеер размер 72х72 пикселя;
    3. добавлен тэг supportedProfiles.

  • При сборке APK-файла добавляется директива -target apk сразу вслед за -package
    Внимание: для приложений для эмулятора использовать надо -target apk-debug

. Создаем простое приложение и билд-скрипт для apache ant. Перепроверьте flexSDK, androidSDK и другие пути.

Main.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                      xmlns:s="library://ns.adobe.com/flex/spark"
                      xmlns:mx="library://ns.adobe.com/flex/mx">
 
  <fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
  </fx:Declarations>
 
  <s:Button label="My Button" />
</s:Application>

build.properties:

FLEX_HOME=D:/SDKs/flex_sdk_4.1.0.16076
dir.src =${basedir}/src
dir.lib =${basedir}/lib
dir.deploy = ${basedir}/bin
build.isDebug = true

ADL=${FLEX_HOME}/bin/adl.exe
ADT.JAR=${FLEX_HOME}/lib/adt.jar

APP_DESCRIPTOR = application.xml
STORETYPE = pkcs12
KEYSTORE = AF4droid.pfx
APP_ROOT_FILE = AF4droid.swf
AIR_FILE = ${basedir}/apk/AF4droid.apk

buildAPK.xml:

<?xml version="1.0" encoding="utf-8"?>
<project name="Android AIR" basedir="." default="BuildAPK">
  <property file="build.properties" />
  <taskdef resource="flexTasks.tasks" classpath="${dir.lib}/flexTasks.jar" />

  <target name="BuildAPK"> 
    <antcall target="Compile" />
    <antcall target="Package" />
  </target>
   
  <target name="Compile">
    <mxmlc file="${dir.src}/Main.mxml"
          output="${dir.deploy}/AF4droid.swf"
          incremental="true"
          debug="${build.isDebug}"
          warnings="true"
          strict="true"
          locale="en_US"
          show-unused-type-selector-warnings="false"
          target-player="10.0.0"
          optimize="true"
          use-network="false"
          configname="air"
          >
      <load-config filename="${FLEX_HOME}/frameworks/air-config.xml"/>
      <source-path path-element="${dir.src}"/>
      <default-size width="800" height="600" />
    </mxmlc>
    <echo>Building App finished successfully!</echo>
  </target>
   
  <target name="Package" description="">
    <delete dir="${basedir}/apk"/>
    <mkdir  dir="${basedir}/apk"/>
    <java jar="${ADT.JAR}" fork="true" failonerror="true">
    <arg value="-package"/>
    <arg value="-target"/>
    <arg value="apk-debug"/>
    <arg value="-storetype"/>
    <arg value="${STORETYPE}"/>
    <arg value="-keystore"/>
    <arg value="${KEYSTORE}"/>
    <arg value="-storepass"/>
    <arg value="fd"/>
    <arg value="${AIR_FILE}"/>
    <arg value="${APP_DESCRIPTOR}"/>
    <arg value="-C"/>
    <arg value="${dir.deploy}"/>
    <arg value="${APP_ROOT_FILE}"/>
    </java>
    <echo>AIR app packaging finished. AIR file: ${AIR_FILE}</echo>
  </target>
</project>

Результатом выполнения скрипта будет файл AF4droid.apk, который и будет устанавливаться на устройства.

. Вернемсяя к нашему эмулятору. Успешно запущенный эмулятор выглядит так:

.Теперь нам надо установить на эмулятор AIR Runtime.
Общий вид команды установки APK-файлов:

adb -e install -r %APK_FILE%

adb нахдится в android-sdk\platform-tools. Можете добавить путь к этой папке в системные переменные операционно системы.
ключ -e указывает что комманда должна выполняться на эмуляторе;
ключ -r указывает что приложение должно быть переустановленно в случае, если оно уже было установленно ранее.

. Копируем файл Runtime_Emulator_Froyo_20100930.apk в корень D:/ и устанавливаем его на виртуальное устройство:

adb -e install -r D:/Runtime_Emulator_Froyo_20100930.apk

Если установка успешна, то в Settings/Applications/Manage Applications/ появится Adobe AIR.

. Теперь надо установить наш APK-файл. Копируем его в корень D:/ (либо укажите полный путь к нему)

adb -e install -r D:/com.adobe.air.v2.5.15320.apk

. В меню появится наше приложение:

. И, собственно, само приложение :)

Пояснения:
Исходный код приложения:
Т.к. сертификат уже сгенерирован (со стандартным паролем fd), то для создания APK достаточно запустить ant-скрипт, который скомпилирует приложение и упакует APK.
Файлы InstallAPK.bat и PackageAPK.bat приведены для ознакомления.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

2 comments so far

Add Your Comment
  1. Я ничего не могу скачать с deposita.
    А статья хорошая, пробовал на реальных устройствах, еще до статьи…ооо ужас, с этими версиями компоновщиков в apk.

  2. zFScNH , [url=http://ktsxmmgwdgiw.com/]ktsxmmgwdgiw[/url], [link=http://jgnvohcwynra.com/]jgnvohcwynra[/link], http://jpagsltijbsx.com/

*