Wir haben eine einfache Android App entwickelt, die eine
Service-Technologie nutzt, die Google unter dem Namen 'Cloud Endpoints' in
seiner App Engine zur Verfügung stellt. Bisher laufen die Dienste allerdings
nur auf einem Entwicklungssystem. Jetzt geht es an das Deployment, also die
Inbetriebnahme der Dienste in der Infrastruktur von Google.
Den Service zu Google bringen
Es gibt mehrere Möglichkeiten mit der App Engine zu
arbeiten. In jedem Fall benötigen wir aber ein eigenes Projekt. Eine Übersicht
der Projekte, die auf unserem Google-Konto hinterlegt sind, gibt es unter
Da unsere Liste vermutlich leer ist, lösen wir den Button
'Create Application' aus und registrieren einen neuen Service unter einem frei
wählbaren Namen und mit einer eindeutigen selbst gewählten oder der
vorgeschlagenen Project-ID.
In der tabellarischen Übersicht gibt es auch eine Spalte
namens Charges. Keine Sorge: Bis zu einem bestimmten Volumen sind die Services
kostenfrei. Bevor Kosten erhoben werden, müssen wir als Betreiber des Services
zustimmen!
In Eclipse wählen wir – wie abgebildet - im Projekt ‚Artists-AppEngine’
per rechten Mausklick das Formular 'Properties'. Im Feld 'Application ID' tragen wir die
Project ID ein, die wir im vorhergehenden Schritt gesetzt haben. Das ganze
Projekt übertragen wir per rechtem Mausklick, 'Google', 'Deploy to App Engine'
an Google. Die Übertragung verläuft flott, es kann allerdings sein, dass der
erste Start des Projektes etwas dauert. Nicht die Geduld verlieren, sondern
auch mal einmalig 30 Minuten Wartezeit in Kauf nehmen.

Wenn artists4711 die ID des Projektes ist, dann führt uns
zum vertrauten Service-Explorer. Dieses Mal werden aber nicht die Dienste, die wir am lokalen Server hinterlegt haben angezeigt, sondern diejenigen, die wir in der AppEngine publiziert haben. Wir finden unsere bandendpoint-API und nutzen den Dienst insertBand, um einige Datensätze in die leere Datenbank einzufügen. Nicht
vergessen: Es werden nur Name und Gründungsjahr der Bands gesetzt, die ID generiert das
System.
Eine letzte Änderung an der Android App
Nachdem wir den Service deployed und die Datenbank bestückt
haben, müssen wir noch einmal Hand an unsere Android App legen. Viel ist es nicht:
Als das Endpoint-Project deployed wurde, hat das
Eclipse-Plugin die ID des Projektes automatisch in der Android App hinterlegt. Da wir nicht mehr mit den lokalen Diensten arbeiten ist das Einzige,
was wir noch tun müssen, die Konstante LOCAL_ANDROID_RUN in der Klasse
CloudEndpointUtils auf false zu setzen. Wir können das Projekt im Emulator und
jetzt auch auf einem physikalischen Target installieren und werden dann mit dem
Service, der auf der AppEngine bei Google läuft, verbunden.
Fazit
Auf den ersten Blick sieht es möglicherweise sehr aufwändig
aus, eine Android App mit den Cloud
Endpoints zu verbinden. Aus meiner Erfahrung heraus ist dieser Weg bisher der Einfachste.
Ich habe schon Versuche mit SOAP oder Web-Services unter PHP oder anderen
Plattformen durchgeführt, um entfernte Dienste zu nutzen. Man kommt auch zum Ziel. Es ist aber alles mit
Bastelei verbunden. Der Workflow läuft einfach nicht rund. Insbesondere ist bei
der Arbeit mit den Cloud Endpoints das Eclipse-Plugin sehr hilfreich. Ich habe
lange auf diese Möglichkeit gewartet.
Keine Kommentare:
Kommentar veröffentlichen