Flash Android Entwicklung mit FlashDevelop und Adobe “Air for Android”

Da nun die Air 2.5 runtime offiziell im Android Market zu finden ist, es aber noch kaum Apps gibt, denke ich ist es an der Zeit wie auch für das iPhone eine FlashDevelop Project Vorlage zu erstellen. Sie erlaubt es eine fertig .apk zu erstellen und diese auch gleich zu installieren (sofern ein Android Gerät am Pc angeschlossen ist oder der Emulator läuft).

Im Gegensatz zum iPhone sind jedoch die mit den Android “Packager” erstellen Applikationen nicht alleine lauffähig! Android Applikationen sind Air Programme und benötigen daher eine installierte Air Runtime am Gerät. Ob diese nun installiert ist oder nicht spielt für den Entwickler jedoch kaum eine Rolle, da bei einer nicht vorhandenen Runtime der Benutzer automatisch darauf hingewiesen wird, dass diese benötigt wird. Ryan Stewart (“Adobe Evangelist”) hat dies in seinem Blog genauer erläutert.

So sieht die "bitte Air installieren" Meldung aus.

So sieht die "bitte Air installieren" Meldung aus.

Das Template bzw. die enthaltene PackageApplication.bat basiert auf den Vorarbeiten von Philippe Elsass (FlashDevelop Forum) und Alan Langlois (Adobe “Air for Android” Prerelease Forum).

Voraussetzungen

Bevor man anfangen kann müssen erst eine Dinge erledigt werden. Um Applikationen im Android Market anbieten zu dürfen benötigt man zuerst einen Android Developer Account mit dessen Hilfe man die Applikationen hochladen kann (kostet einmalig $25 Anmeldegebühr). Anders als der App Store akzeptiert der Android Market beliebige (selbst erstellte) Zertifikate, solange diese mindestens bis zum 22.Oktober 2033 gültig sind.

  • Zertifikate(“.p12″ bzw. “.pfx”)

    Da man für Android Applikationen die Zertifikate selbst erstellen kann, kann jedes beliebige im PKCS 12 Format genutzt werden (Dateiendungen “.pfx” oder “.p12″). Es ist jedoch zu beachten, dass die Gültigkeitsdauer mindestens bis zum 22.Oktober 2033 reichen muss. Meist wird daher eine Gültigkeitsdauer von 25 Jahren eingetragen. Für mehr Informationen möchte ich hier auf die Android Dokumentation zum Zertifizierungprozess verweisen.

  • Flex 4 SDK, “Air for Android Build”, Android SDK und “Android Air runtime for Emulator”

    Den Flex SDK gibt es im OpenSource Bereich von Adobe zum Download. Ich habe für meine Tests die Version 4.1.0.16076 benutzt (download). Wurde dieser heruntergeladen und entpackt so fehlt noch der Android SDK (Version: android-sdk_r07-windows) (download) und schließlich der “Air for Android” Build des Air SDK welcher im Moment nur über die “Adobe Prerelease Community” zugänglich ist welchen man gratis von der Adobe Seite herunterladen kann. Hier wurde beim Test (damals noch Beta) die “Version” AIR25_win_sdk_20100930 verwendet (download). Der Air SDK muss entpackt und dessen Inhalt in den Flex SDK Ordner verfrachtet werden (einfach kopieren und ersetzen). Damit ist der SDK, mit dem später die Android taugliche Datei erstellt wird, vollständig.

    Möchte man die erstellten Applikationen auch am Emulator testen so benötigt man auch die entsprechende “Emulator Air Runtime” da die über den Android Market erhältliche Runtime laut Adobe am Emulator nicht funktioniert. Wie der SDK ist auch die “Emulator Runtime” aktuell nur über die “Adobe Prerelease Community” erreichbar. Bei diesem Test wurde die “Emulator Runtime” in der “Version” Runtime_Emulator_Froyo_20100930 verwendet.

    Laut Adobe sollen jedoch die Zugangsbeschränkungen zum “Android Air SDK” und der ” Emulator Runtime” in ein paar Wochen aufgehoben werden (update: ist nun öffentlich unter: http://www.adobe.com/products/air/sdk/).

    Hier nochmal eine Liste der benötigten Software:

  • FlashDevelop Android Project Template

    Dieser Teil ist einfach zu erledigen. Das FlashDevelop 3.2.2 RTM Template gibt es hier zum Download (Android AIR AS3 Projector Template). Diese zip-Datei muss nur entpackt und in das C:\[pfad_zu_FlashDevelop]\FlashDevelop\Projects\ Verzeichnis kopiert werden.

    Update: Das Template funktioniert auch mit FlashDevelop 3.3.0 und 3.3.1, allerdings gibt es in diesen Versionen einen Bug mit dem Flex SDK Pfad (FlashDevelop Bug im Forum) welcher zu Problemen führen kann.

    Update: Möchte man die Grundinstallation vom FlashDevelop sauber halten so kann man das Template auch im Benutzerverzeichnis (“Tools > Application Files …“) speichern.

    FlashDevelop Project Template im Ordner "Projects" einfügen.

    FlashDevelop Project Template im Ordner "Projects" einfügen.

    Ein Neustart von FlashDevelop ist nicht nötig, man kann das neue Projekt Template sofort im Menü auswählen und ein Android Projekt erstellen.

    Android Projektvorlage auswählen

    Android Projektvorlage auswählen

Ein Android Projekt konfigurieren und kompilieren

Nach dem nun alle Voraussetzungen erfüllt sind kann man ein Android Projekt erstellen. Erfahrene FlashDevelop und Android SDK Benutzer können diesen Teil überspringen und die im Projekt enthaltene readme.txt als kurze Anleitung verwenden.

  • Flex SDK eintrichten

    Da für ein Android Projekt der normale SDK nicht ausreicht muss der bereits vorbereitete “Flex SDK + Air for Android” genutzt werden. Rechtsklick auf den Projektnamen -> Properties... -> “Compiler Options” -> “Custom Path to Flex SDK” und dort trägt man nun den Pfad des vorbereiteten Flex SDK Ordners ein.

    Flex SDK Pfad im Flashdevelop Projekt anpassen

    Flex SDK Pfad im Flashdevelop Projekt anpassen

    Den Pfad zum Flex SDK kann man gleich mit Strg + c in die Zwischenablage kopieren, denn er wir im nächsten Schritt wieder benötigt.

  • PackageApplication.bat” anpassen

    In der Datei “PackageApplication.bat” muss der Pfad zum Flex SDK und zum Anroid SDK angepasst werden. Hierzu einfach in Flashdevelop doppelklick auf die Datei “PackageAppliaction.bat” und die Pfade an den im Bild gezeigten Stellen eintragen, indem man “C:\flex_4_sdk_width_android\bin” durch den Pfad des bin (!) Ordners des Flex SDK und “C:\android_sdk\tools” durch den Pfad des tools (!) Ordners des Android SDK ersetzt.

    Den Flex und Android SDK Pfad in der Datei "PackageApplication.bat" anpassen.

    Den Flex und Android SDK Pfad in der Datei "PackageApplication.bat" anpassen.

  • CreateCertificate.bat” anpassen

    In der Datei “CreateCertificate.bat” muss der Pfad zum Flex SDK angepasst werden. Hierzu einfach in Flashdevelop doppelklick auf die Datei CreateCertificate.bat” und den Pfad in der Zeile 9 eintragen, indem man “C:\flex_4_sdk_width_android\bin” durch den Pfad des bin (!) Ordners des Flex SDK ersetzt. Außerdem sollte man sich überlegen ob man nicht den Namen und das Passwort des Zertifikats ändern möchte.

    Den Flex SDK Pfad in der Datei "CreateCertificate.bat" anpassen.

    Den Flex SDK Pfad in der Datei "CreateCertificate.bat" anpassen.

  • InstallRuntime.bat” anpassen

    Möchte man über die Datei “InstallRuntime.bat” die Air Runtime im Emulator oder auf einem Gerät installieren so muss in dieser Datei der Pfad zum Android SDK eingefügt werden. Hierzu einfach in Flashdevelop doppelklick auf die Datei InstallRuntime.bat” und den Pfad in der Zeile 7 eintragen, indem man “C:\android_sdk\tools” durch den Pfad des tools (!) Ordners des Android SDK ersetzt.

    Den Flex SDK Pfad in der Datei "InstallRuntime.bat" anpassen.

    Den Flex SDK Pfad in der Datei "InstallRuntime.bat" anpassen.

  • Das Flash Develop Projekt fitt für Android machen

    Hat man ein fertiges Projekt erstellt sollte dieses ähnlich wie im Bild unten gezeigt aussehen. Im Vergleich zu einem normalen FlashDevelop Projekt fallen die Ordner “certificates” und “bin_android“, sowie das bereits gut gefüllte “bin” Verzeichnis ins Auge.

    Um das Projekt später in eine .apk packen zu können sollten zuerst die Zertifikat-Dateie in den “certificates” Ordner kopiert oder über die “CreateCertificate.bat” erstellt werden. Das Zertifikat muss den Namen “SelfSigned.pfx” haben.

    Möchte man mit der “InstallRuntime.bat” eine im Emulator oder am Gerät installieren so muss diese in “runtime.apk” umbenannt und im Ordner “bin_android” platziert werden.

    SelfSigned.pfx und runtime.apk

    SelfSigned.pfx und runtime.apk

  • Die SWF kompilieren

    Hat man den Flex SDK in Flashdevelop angepasst so kann man das Projekt wie gewohnt kompilieren und es startet über den “Air Debug Launcher” (adl). Das sollte in etwa so wie im unteren Bild aussehen. Wie man sieht zeigt der adl einen “Device” Eintrag im Menü an über welchen man mit der simulierten Umgebung interagieren kann.

    "Air Debug Launcher" mit einer Android Applikation

    "Air Debug Launcher" mit einer Android Applikation

  • Eine .apk erstellen

    Um den Vorgang der APK-Erstellung zu starten muss die “PackageApplication.bat” ausgeführt werden (Rechtsklick -> Execute). Danach wird erst einmal nach dem Passwort des Zertifikats gefragt. Anschließend wird die .apk erstellt und im Ordner “bin_android” gespeichert. Nach der Erstellung der .apk kann man diese auch gleich installieren lassen. Allerdings sollte man zuvor ein “Android Virtual Device” starten (siehe nächster Abschnitt). Die .apk kann mit den Optionen “apk-emulator“, “apk” oder “apk-debug” erstellt werden.

    APK erstellen mit der PackageApplication.bat

    APK erstellen mit der PackageApplication.bat

Die Applikation (.apk) installieren und testen

Wie bereits erwähnt erlaubt es die “PackageApplicatiobn.bat” auch die Applikation auf einem virtuellen Gerät zu installieren. Dazu muss aber erst einmal der Simulator gestartet und konfiguriert werden.

  • Android SDK and AVD Manager” starten

    Um ein simuliertes Android Gerät erstellen zu können benötigt man den “Android SDK and AVD Manager” welcher im Android SDK Ordner unter dem etwas verwirrenden Namen “SDK Setup.exe” zu finden ist. Das AVD im Namen steht hierbei für “Android Virtual Device“. Update: In neueren Versionen gibt es auch eine “SDK Manager.exe“, es macht allerdings vermutlich keinen Unterschied ob man nun die alte “SDK Setup.exe” oder die neue “SDK Manager.exe” verwendet.

    Den "Android SDK and AVD Manager" starten.

    Den "Android SDK and AVD Manager" starten.

  • SDK Dateien installieren

    Zuerst sollte man links in den “Available Packages” Bereich wechseln und die Pakete der Android Version auswählen auf welcher man die Applikation testen möchte (hier Android 2.2).

    SDK Dateien herunterladen und installieren.

    SDK Dateien herunterladen und installieren.

  • Ein “Android Virtual Device” (AVD) erstellen

    Da die benötigten Daten nun installiert sind kann ein entsprechendes virtuelles Android Gerät erstellt werden. Dazu welchselt man im Menü links auf “Virtual Devices” und klick dann rechts oben auf den “New…” Button.

    Ein neues "Android Virtual Device" (AVD) erstellen.

    Ein neues "Android Virtual Device" (AVD) erstellen.

    Im folgenden Dialog wählt man die Eigenschaften des zu erstellenden AVD und bestätigt die Auswahl mit “Create AVD“.

    Der AVD erstellen Dialog

    Der AVD erstellen Dialog

  • Das virtuelle Android starten

    Meist möchte man eine Applikation auf verschiedenen Versionen testen, es empfiehlt sich also mehrere Anroid AVDs mit unterschiedlichen Versionen zu installieren. Nach der Installation sollten die installierten AVDs im “Virtual Devices” Bereich aufgelistet sein. Nun steht dem Test nichts mehr im Weg, einfach das gewünschte AVD markieren und starten.

    "Android Virtual Dedvice" starten

    "Android Virtual Dedvice" starten

    So sollte dann die laufende AVD aussehen.

    Das gestartete AVD mit installierter Applikation.

    Das gestartete AVD mit installierter Applikation.

  • Ausgaben (Logging) und Fehler anzeigen mit “LogCat

    Nach der Erstellung und Installation der .apk erlaubt es die “PackageApplication.bat” den “LogCat” genannten Logger zu starten. Dieser verbindet sich automatisch zum Gerät und erzeugt umfangreiche Ausgaben. Wurde die apk mit der Option “-target apk-debug” erstellt so werden trace() Kommandos auch automatisch im Logger angezeigt.

    Und hier nochmals das FlashDevelop Android Project Template zum Download.

Update(23.10.2010): In der “PackageApplication.bat” kann man nun zwischen den Typen “apk”, “apk-debug” und “apk-emulator” auswählen, außerdem hab ich die Ausgabe etwas aufgeräumt.
Update(22.05.2011): Links wuren aktualisiert.

3 Responses to “Flash Android Entwicklung mit FlashDevelop und Adobe “Air for Android””

  1. darientoh sagt:

    hallo from malaysia.

    great sharing with android template.

    anyway, i just found that adb in android sdk has been moved from “tools” to “platform-tools”.

    my current revision Android SDK Platform tools is 2 while SDK is revision 8.

  2. ralff sagt:

    Guter Artikel, leider passen die Links nicht mehr und die PreRelease Community bietet zwar einen Login aber scheinbar keine Registrierung an.
    Besteht die Möglichkeit die Links anzupassen ?

  3. geo sagt:

    Danke für den Hinweis :)

    Den aktuellen Air SDK kann man unter Air SDK herunterladen, dieser sollte nun auch die Dateien zum Entwickeln für iOS, Android, etc. enthalten.

Leave a Reply