
Ich habe mir endlich mal wieder ein neues Smartphone zugelegt, das HTC Desire HD.
Da Lee Brimlow auf gotoandlearn ein schönes Tutorial veröffentlichte, wie man relativ einfach Air-Apps über die Flash-CS5-IDE kompilieren kann, machte ich mich mal auf die Suche, wie man das Ganze direkt per ANT auch in FDT4 umsetzen und auf die jeweiligen Devices installieren kann.
Hierfür habe ich mir, in Anlehnung an ein älteres Kundenprojekt, eine kleine Physik-Applikation gebastelt, in der man einen Fußball per Druck auf das Toutchpad hochhalten kann.
Androidkick on HTC Desire HD
Hier nun die einzelnen Steps, die man beim Einrichten von Eclipse bzw. FDT4 beachten sollte:
SDK – Installation
Als erstes sollten die benötigten SDKs heruntergeladen werden, die Ihr für die Entwicklung benötigt:
Flex 4.1 SDK
Air 2.5 SDK
Android SDK
Google Android Development Tool (ADT)
Als nächstes installieren wir über das Softwarepanel ( Help > Install New Software… ) in Eclipse ADT. ADT ermöglicht es uns später Emulatoren für diverse Android-Systeme und Phones zu simulieren.
Diese können über die URL: “https://dl-ssl.google.com/android/eclipse/” installiert bzw. geupdatet werden.
Nach erfolgreicher Installation sollte der Android-Bot in unsere Arbeitsleiste erscheinen. Die ADT Ansicht kann also über den Bot oder die bekannte Ansichtsauswahl gestartet werden ( Window > Open Perspective > Other… ).
Nach dem Start des ADT sollten wir zuerst den Pfad der vorerst heruntergeladenen Android SDK angeben. Ist der SDK-Pfad richtig angegeben worden, können wir unter „Available Packages“ die benötigten Pakete und APIs anzeigen lassen und herunterladen.
Wichtig ist hierbei die SDK Plattform, sowie die Google API.

Erstellen eines Emulators
Nachdem alle wichtigen SDKs installiert sind können wir einen Emulator erstellen, auf dem wir später unsere AIR-Apps testen können.
Ein Emulator kann über “Virtual Devices – New” erstellt werden.
Hierbei sollte man darauf achten, die verwendete API des Phones anzugeben, sowie die Auflösung dessen Bildschirmes.

Nun können wir den Emulator starten. Dies kann einige Minuten dauern auch bei schnellen Rechnern. Also ist Geduld angesagt.
Danach solltet Ihr in etwa folgenden Screen sehen.

Konfigurieren von Ant und FDT
So, nun können wir uns an die eigentliche Entwicklung unsere App in FDT machen.
Mit Hilfe von Ant ist es uns möglich, Kommando Zeilen-Aufrufe auszuführen, um z.B. Compilerskripte aufzurufen, oder Dateien zu kopieren.
In Marvin Blase‘s blog post über Air 2 / FDT 4 walkthrough gibt es hierbei eine solches Ant-Skript, um Air-Applikationen zu kompilieren, an dem ich mich orientierte.
Neben dieser eigentlichen build.xml erstellen wir für das Kompilieren von Android-Apps jedoch noch eine weitere Applikation.xml, in der wir sämtliche Informationen über unsere App schreiben (MenuIcons, Name, Größe, Passwort etc.).
Die beiden XMLs findet Ihr im root-Verzeichniss meines Projektes:
build.xml
AndroidKick-app.xml (muss immer den Namen der Applikation beinhalten – Name-app.xml)
In der ANT-Ansicht sehen wir nun unser Build-Skript mit den jeweiligen Unterpunkten ( Windows > Show View > Ant ).

Nun können wir den Punkt „Util-1“ ausführen, um die AIR-SDK auf unserem Emulator zu installieren. Dies kann einen Moment dauern, ja nach Device. Wenn alles komplett installiert wurde, wird in der Konsole “[exec] Success” zurückgegeben.
Wenn bis hier hin alles funktioniert hat, ist unser Emulator nun bereit auch eine Air Applikation zu installieren.
Installation der AIR Applikation
Die Installation unsere App können wir nun ebenfalls über das Ant-Skript automatisieren. Über den Punkt „5.Install Applikation on Emulator“ werden die vorher generierten apk-Files im Emulator installiert.
Anschließend solltet ihr unter euren Apps die „AndroidKick“-App finden.

Ich habe im Sourcecode auch noch einen Listener integriert, damit die App auch über den Menu- oder Back-Button geschlossen werden kann. Ansonsten läuft die Applikation dauerhaft im Hintergrund, was den Speicher somit belastet.
if(Capabilities.
cpuArchitecture=="ARM")
{
NativeApplication.
nativeApplication.
addEventListener(Event.
ACTIVATE, handleActivate
, false, 0
, true);
NativeApplication.
nativeApplication.
addEventListener(Event.
DEACTIVATE, handleDeactivate
, false, 0
, true);
NativeApplication.
nativeApplication.
addEventListener(KeyboardEvent.
KEY_DOWN, handleKeys
, false, 0
, true);
}
………
private function handleActivate(event:Event):void
{
NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
}
private function handleDeactivate(event:Event):void
{
NativeApplication.nativeApplication.exit();
}
private function handleKeys(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.BACK)
NativeApplication.nativeApplication.exit();
}
Installation der AIR Applikation auf unserem Device
Um das Ganze nun auf unserem Phone Testen zu können, muss zuerst die Treibersoftware des HTC installiert werden. Diese findet sich auf dem SD-Speicher des Handys.
Einfach mal nach „HTCSync“ suchen. Das Programm dient eigentlich der Synchronisierung zwischen dem Phone und dem PC, installiert aber auch die benötigten Treiber, um eine Verbindung zwischen dem ADT-Panel und unserem Phone aufzubauen.
Alternativ bekommt man diese auch über die HTC-Homepage.
Wichtig ist, darauf zu achten, dass unser Smartphone im Debug-Mode läuft, um die apk-Files installieren zu können.
Ihr könnt das HTC über “Einstellung/Anwendungen/Entwicklung” auf USB-Debugging = true stellen.
Nachdem das HTC erkannt wurde können wir die Punkte „Util – 2 Install Air On Device“ & ” Android 7 – Install Application on Device“ ausführen. Nun sollt die App auch auf unserem Handy sichbar sein und steht zum Testen bereit.
AndroidKickGame

Das Spiel basiert auf einer einfachen Gravitationsberechnung. Es kann per Touch-Druck der Fussball in die Höhe geschossen werden. Solange dies gelingt, ohne dass der Ball den Boden berührt werden die Anzahl der Kicks mitgezählt. Das Abspeichern des Highscores konnte hierbei über die schon aus AS3 bekannten “SharedObjects”, also die Cookies am Phone abgespeichert werden.
Ich habe auch eine einfache Gesture-Erkennung implementiert, die das Zoomen des Balls ermöglicht.
Download Sourcecodes
Share on Facebook