574716

App-Entwicklung mit Java

17.09.2010 | 12:11 Uhr | Hans-Christian Dirscherl

Wer Apps für den Android-Market von Google entwickeln will, muss sich dafür registrieren. Für die Identitäts-Überprüfung fällt eine einmalige Gebühr von 25 US-Dollar an. Von den Einnahmen kostenpflichtiger Apps kassiert Google 30 Prozent. Das Geschäftsmodell von Google ist also annähernd identisch mit dem von Apple und dessen App Store.

Java ist die Programmiersprache für Android Apps, Eclipse die bevorzugte Entwicklungsumgebung. Allerdings greift man bei der Entwicklung auf viele in C/C++ geschriebene Bibliotheken zu, die besonders für Bereiche zur Verfügung stehen, bei denen die Ausführungsgeschwindigkeit wichtig ist. Beispielsweise Webkit für den Browser, die SQLite-Datenbank und die 3D-Grafikbibliothek. Wichtig für Programmierer: Mit jeder neuen Android-Version steigt der API-Level und die Anzahl der verfügbaren Bibliotheken. Zudem müssen Programmierer seit Android auch unterschiedliche Bildschirmgrößen und -Auflösungen berücksichtigen. Ebenfalls nicht unproblematisch: Android-Developer müssen Ihre Apps für unterschiedliche Hardware-Plattformen entwickeln.

Damit man eigene Android-Apps programmieren kann, benötigt man neben dem SDK für Java (das bei einer Installation von Eclipse ja mit dabei ist) noch das SDK für Android von Google. Google stellt Entwicklern aber nicht nur das SDK zur Verfügung, sondern auch Tutorials sowie Codebeispiele und gibt Tipps und Tricks. Eine Dokumentation finden Sie unter developer.android.com .

Eclipse ist wie bereits erwähnt die Entwicklungsumgebung schlechthin für Android-Entwickler. Wie so oft bei Eclipse sorgt eine kostenlos erhältliche Erweiterung dafür, dass aus dem Standard-Eclipse die ideale IDE für Android-Programmierer wird: Das so genannte ADT Plugin . Eclipse ADT bringt übrigens auch einen Editor zur Gestaltung der App-Oberfläche mit. Die Daten für das App-User-Interface werden damit wie bereits erwähnt in XML festgelegt.

Grundsätzlich kann man aber wie gehabt auch ohne spezielle IDE einfach nur mit einem Text-Editor samt Android Debugger, Java-Compiler und Cross-Assembler entwickeln, es ist halt nur mühsamer. Mit dem Android Emulator und anderen Simulations-Tools können Sie Ihre App unter realistischen Bedingungen testen, also beispielsweise den SMS-Empfang nachstellen und die Positionsbestimmung via GPS-Daten simulieren.

Wenn die App mit ihren dex-Dateien (mit dem Bytecode für die Dalvik VM) fertig ist, wird sie zusammen mit einem Manifest (AndroidManifest.xml) sowie allen nötigen Ressourcen (Bilder, Layout-Definitionen, sonstige Medien) im XML-Format in einem APK-Archiv gepackt und signiert. Im Manifest legt der Programmierer zum Beispiel fest, welche Versionsnummer die App hat, ab welcher Android-Version die App lauffähig ist und aus welchen Komponenten sich eine App zusammensetzt (genauer gesagt macht das Eclipse automatisch bei der Anlage eines Projekts) sowie - wichtig - welche Berechtigungen die App benötigt. Signieren bedeutet, dass die App eine digitale Unterschrift in Form eines Zertifikats bekommt. Das geht allerdings auch mit nicht beglaubigten Zertifikaten, man weiß also auf der Basis der Signatur nicht sicher, ob der Programmierer auch wirklich der ist, als der er sich ausgibt. Der eigentliche Sinn der Signierung besteht vielmehr darin zu zeigen, dass alle Anwendungen mit dem gleichen Zertifikat vom gleichen Hersteller stammen. Die Signierung hat bei Android also weniger Aussagekraft als bei Apple, wo die Identität des Entwicklers überprüft wird.

Übrigens: Wie bei jeder Smartphone-Plattform können Sie auch plattformübergreifend mit Javascript, HTML und CSS programmieren.

Wichtig: Bevor man mit der Programmierung anfängt, muss man sich überlegen, zu welchen Android-Versionen die eigene App kompatibel sein soll. Wenn Sie die allerneuesten APIs und Bibliotheken nutzen wollen, schließen Sie zwangsläufig Besitzer älterer Android-Geräte aus. In Eclipse mit Android-Plugin legen Sie diese Kompatibilität bei jedem Projekt von Anfang an mit "Build Target" fest.

PC-WELT Marktplatz

574716