Hello Air, hello Android :C|

07.06.2010 09:42

Adobe AIR für Android ist da. Mit CS5 kann man direkt für Android APK Pakete erstellen. Dieser Artikel erklärt wie man AIR auf Android mit FlashDevelop entwickeln kann.

Mit Guave Studios einen Blick auf Adobe AIR

Da wir bei Guave Studios daran intressiert sind, in den verschiedensten Kanälen interaktive Inhalte bereitzustellen, beschäftigen wir uns intensiv mit den Möglichkeiten, die uns mobile Endgeräte bieten. Ein wichtiger Faktor für uns ist eine möglichst plattformunabhänige Lösung, um keinen unnötigen Aufwand zu generieren. Unter Plattformunabhänig verstehen wir nicht “Eine generelle Lösung für alle” sondern “Eine Lösung für den Einzelnen basierend auf der Lösung für alle”.  Adobe AIR bietet einen gemeinsamen Nenner. Ich denke, dass für viele Applikationen – vorallem im promotionalen Bereich – Adobe AIR ausreicht. Sollte dies nicht der Fall sein, kann eine spezielle Lösung in betracht gezogen werden.

AIR for Android

AIR gibt es für den Android Emulator und auch die Devices mit Android 2.1 (7) oder 2.2 (8). Derzeit befindet sicht AIR noch in der Entwicklung (Beta). Benötigt wird ebenfalls das Android SDK.

Flash CS5

Nachdem man die Vorraussetzungen (AIR auf dem Device/Emulator, Android SDK) installiert und konfiguriert hat (weiter unten) kann man relativ schnell mit der Entwicklung loslegen.

Der Workflow gestaltet sich recht einfach. Unter File -> AIR Android Settings kann man die Parameter für die Erstellung anpassen. Hier hat man die Möglichkeit einen Schlüssel zu generieren der danach zum signieren verwendet wird. Beim Veröffentlichen wird die APK generiert und automatisch bei angschlossenem Device oder Emulator direkt auf dem Endgerät gestartet. Somit kann auch sofort getestet werden.

Nur: Wer codet denn in CS5 ;) ?

Flash Develop

(Tutorial)

Wir hätten auch die Möglichkeit mit Flash Develop über CS5 zu publishen. Ich zeige hier aber die Lösung ohne CS5 benützen zu müssen.

Mit ein paar Einstellungen und einem Template bekommen wir das auch auf Flash Develop oder anderen IDEs zum laufen. Der ganze Worklfow kann per Kommandozeile nachgebaut werden. Selbst debugging direkt in Flash Develop wird möglich.

Hierfür brauchen wir aber noch folgendes:

Dann einfach die Flex SDK entpacken. In denselben Ordner können dann die AIR 2.5 Dateien entpackt werden. Dann noch die playerglobal.swc in den Ordner flex40sdk\frameworks\libs\player\10.1 entpacken.

Android SDK entpacken und Setup ausführen. Die aktuellen APIs updaten. Um testen zu können benötigen wir hier jetzt den Emulator. (USB weiter unten).  Hier wird Android 2.1 oder 2.2 erstellt. Auf der Seite AIR 2.5 SDK muss man noch die APK Datein für den Emulator und eventuell für das Device runterladen. Ich würde empfehlen, den AndroidSDK/tools Pfad zu den Umgebungsvariablen hinzuzufügen (Rechtsklick auf Computer->Erweiterte Systemeinstellungen -> Umgebungsvariablen-> PATH)

Wir können jetzt in der Kommandozeile einen Sever starten mit adb start-server. Wenn wir jetzt den Emulator per emulator -avd [EmulatorName] starten. Mit “adb devices” sehen wir ob unser Emulator erkannt wurde. Sonst nochmal per “adb kill-server” und “adb start-server” probieren.

adb-kill-startserver

Wenn wir jetzt das air.apk für den Android Emulator ausgepackt haben, können wir per adb install Runtime_Emulator_Eclair_20100517.apk (Eclair ist Android 2.1)

Flash Develop (ab 3.1.1) normal installieren und mit dem Flex SDK verbinden (über Einstellungen->AS3 Context->Path to Flexsdk)

Das Flash Develop Template airandroid.fdz kann jetzt ausgeführt werden. Dies ist standardmässig auf Windows mit Flash Develop verlinkt und wird dann automatisch installiert. Alternativ kann man auch die Datei auf .zip umbenennen und in den Flash Develop/Projects Ordner entpacken.

Mit Flash Develop kann jetzt ein Projket vom Typ “Air Android AS3″ erstellt werden. Der Parameter Name ist Pflicht und sollte wenn möglichst klein und ohne Leerzeichen geschrieben werden. Der Package Path kann ich auch empfehlen auszufüllen, da die erstellte Android ApplikationsID sich dann aus packagepath.projectname zusammensetzt.

AIR Android Flash Wizzard

Wir können das Projekt jetzt anlegen.

Im src Ordner kann jetzt die Datei Main.as editiert werden. Ein kleines trace(“Hello World”); sollte für unseren ersten Test reichen.

Im Projektordner scripts sollte man noch die settings.bat anpassen um individuelle Keys zu generieren. Es kann auch hier direkt ein Key hinterlegt werden. (CERTIFICATE_FILE). Es kann hier auch ein Passwort spezifiziert werden. Dies ist dann aber während der ganzen Zeit in der Datei gespeichert. Ich würde empfehlen während des Entwicklungsprozesses den SelfSigned Key zu verwenden und erst beim Release auf den richtigen Code Signingkey zu verwenden. Derweilt wird das Passwort automatisch beim Debuggen aus der settings.bat gelesen.

Endlich testen!

Jetzt können wir das Projekt direkt per F5 oder dem Run Button testen.

Ablauf:

  1. .swf File wird gebuildet
  2. key wird gecheckt und evtl generiert
  3. IP Addresse wird ermittelt um den Debugger zu connecten (Erste IPv4 im ipconfig)
  4. Das APK wird gebuildet und mit dem Key gesigned
  5. Die Applikation wird auf dem verbundenen Device deinstalliert (falls installiert)
  6. Die Applikation wird auf dem verbundenen Device installiert
  7. Die Applikation wird auf dem Device gestartet
  8. Der Debugger connected zum Debugger auf der hinterlegten IP
  9. Hello Android müsste in der Console auftauchen

Anmerkungen zum Device USB Debugging

Das heikelste war es, mein HTC Desire mit Android 2.1 für die Entwicklung zu präparieren. Ich habe viele Informationen im Internet gefunden, jedoch nur wenige waren erfolgreich.

Was ich speziell zum HTC Desire sagen kann ist, den Treiber der auf der SD Card ist zu benutzen. Dieser wird mit HTC Sync installiert. Aktiviert man auf dem Device das USB Debugging, sieht das Device mit “adb devices”.

Für das Flash Debugging wird WLAN Access benötigt. Mit einer zugewiesenen IP (DHCP zb) kann man das Device zum Debugger verbinden.

Und voila, viel Spass beim Applikationen schreiben.

Links


Martin Muther Martin Muther

3 Antworten to “Hello Air, hello Android :C|”

  1. Ben Tandy says:

    Thank you so so much. Danke!!!

    Stopped me pulling my hair out. Now onto the fun stuff.

  2. Doggy says:

    Greatings, Super post, tienen que marcarlo en Digg

  3. Anonymous says:

    [...] [...]

Antworten