Lade Inhalt...

Entwicklung von Apps für Android

Effiziente Entwicklung, Guidelines und Generatoren

Bachelorarbeit 2012 52 Seiten

Informatik - Programmierung

Leseprobe

Inhaltsverzeichnis

1 Einführung
1.1 Motivation
1.2 Problembeschreibung
1.3 Ziele der Arbeit
1.4 Aufbau der Arbeit

2 Entwicklung mit der Android SDK
2.1 Android-SDK
2.2 Tools
2.3 Vertreibung der App

3 Richtlinien
3.1 Android Design Guideline . .
3.2 Allgemeine Design Richtlinien

4 App Generierung
4.1 Projektbeschreibung
4.2 Android SDK (Referenz)
4.3 (Native) WebApps
4.4 Adobe AIR
4.5 Inhaltsbasierte Generatoren . .
4.6 Vergleich der Ergebnisse
4.7 Versionen

5 Fazit

Tabellenverzeichnis

Abbildungsverzeichnis

Literaturverzeichnis

Danksagungen

An dieser Stelle möchte ich bei allen Personen Danke sagen, ohne deren Unterstützung diese Arbeit nicht in dieser Form vorliegen würde:

Ein großer Dank geht daher an den Betreuer Dipl.-Ing. Mag. Dr. Thomas Neubauer, für die unkomplizierte und einfache Kommunikation und sein konstruktives Feedback.

Vor allem möchte ich mich aber bei meiner Familie bedanken. Ohne deren Unterstützung wäre nicht nur diese Arbeit nicht geglückt, sondern das gesamte Studium wäre nicht möglich gewesen. In diesem Sinn, ein ganz großes Dankeschön.

Vorwort zur veröffentlichten Version

Bei diesem Werk handelt es sich um meine Bachelorarbeit für das Studium Software and Infor mation Engineering an der Technischen Universit ä t Wien.

Diese Arbeit wurde mit der Note Sehr gut beurteilt.

Die Programmierbeispiele dieser Arbeit können Sie erreichen unter: http://goo.gl/ DmDTo. Zum Entpacken benötigen Sie das Passwort bachandroid.

Abstract

The importance of Android Apps is still growing. So it is necessary to deal with the app develop- ment. The design of software for a mobile device is different than the one for normal computer. So the developer has to recognize other guides and tools. However many developer don’t do this, and generate apps in an own way. This thesis gives an insight to the right development. For this it will picture important tools and design guidelines. Following some other technologies for development (alternates to the standard Android SDK) will be reviewed with a hands-on exam- ple. So there should be a road to success for efficient and sensible apps. With the app generators the developer can design an application with less (or other) technical knowledge. This thesis can be used to give an impression of the state of the art technologies, guidelines and tools for developing Android Apps.

Kurzfassung

Die Bedeutung von Apps für Android nimmt stetig zu. Wodurch es wichtig ist, sich mit der Entwicklung dieser auseinander zusetzen. Da es sich bei der Entwicklung für mobile Geräte al- lerdings um eine andere Disziplin handelt, müssen andere Gedanken und Programme verwendet werden. Viele App Entwickler lassen dies außen vor und entwickeln nach ihrem eigenen Muster. Diese Arbeit vermittelt einen Einblick in die Entwicklung, indem wichtige Hilfsprogramme und Design-Richtlinien vorgestellt werden. Anschließend werden die Möglichkeiten der Entwick- lung abseits der Standard-Entwicklungsform, der Android SDK, an einem praktischen Beispiel untersucht. Damit wird ein Weg aufgezeigt, um Apps effizient und sinnvoll zu entwickeln. Mit- hilfe der Generatoren können auch Apps gestaltet werden, bei denen weniger (oder anderes) technisches Wissen notwendig ist. Diese Arbeit kann verwendet werden um einen Überblick über die momentan vorhandenen Technologien, Richtlinien und Hilfsprogramme zu bekommen.

KAPITEL Einführung

Dieses erste Kapitel soll grundlegende Informationen über den Aufbau und Inhalt dieser Arbeit vermitteln. Es soll als Einleitung in die Thematik dienen und das grundlegende Verständnis liefern, welches für das Lesen der eigentlichen Arbeit nötig ist.

1.1 Motivation

Dieser Abschnitt soll verdeutlichen, warum die Entwicklung von Apps für Android ein wichtiges Thema ist. Dafür werden die Begriffe Android und App kurz atomar beschrieben.

Einführung in Android

Google übernahm 2005 das Start-up-Unternehmen Android Inc. Zu dieser Zeit gab es keine wirklichen Standards im Bereich mobiler Endgeräte. So waren meist proprietäre Betriebssyste- me der Gerätehersteller installiert. Damit waren auch die Schnittstellen für die Entwicklung von Programmen sehr unterschiedlich und oft auch restriktiv. Im Gegensatz dazu sollte die Android- Plattform offen und vielfältig sein.[48]

2007 wurde die Open Handset Alliance von Google und 33 Partnern gegründet. Das Haupt- ziel dieser Vereinigung ist es offene Standards für mobile Endgeräte zu schaffen. Diese Allianz entwickelte Android als Open-Source-Betriebssystem für mobile Endgeräte[3]. Bei Android handelt es sich um ein Betriebssystem, welches auf den Linux Kernel basiert und in vielen Punkten an die Gegebenheiten eines mobilen Endgerätes angepasst wurde. Unter anderem wer- den diese Geräte von der knappen Stromversorgung und dem kleinen Display beschränkt.[53]

Erkennbar ist Android an seinen Maskottchen: dem grünen Roboter. Dieser steht unter der Creative Common Licence und darf damit frei modifiziert und verwendet werden, wenn die Quelle angegeben wird.[24] [51]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.1: Android Roboter[24]

Im Laufe der Zeit wurde Android das Smartphone Betriebssystem mit dem größten Marktanteil[59]. Darüber hinaus wird das System auch auf Tablets eingesetzt, zudem basieren auch weitere Geräteklassen auf Android1. Damit besitzt Android eine sehr hohe Verbreitung und einen hohen Bekanntheitsgrad.

Was sind Apps?

Bei Apps handelt es sich um Programme, welche Funktionalität in ein System bringen. Der Bezug von Apps wird oft über App Stores bereitgestellt. Für Android gibt es dafür den Google Play Store 2. In diesem Store befindet sich eine Unmenge an Apps und Spiele. Die Installation einzelner Apps läuft sehr einfach ab. Statt der (mehr oder minder aufwändigeren) Installation von Programmen am Computer werden Apps mit einem Klick heruntergeladen und vollautomatisch installiert. Damit ist der Bezug von Apps sehr einfach und erfreut sich großer Beliebtheit bei den Endanwendern.

Natürlich betrifft dies nur den Bezug von Apps aus dem Store. Die Installation von Apps aus fremden Quellen kann ein Sicherheitsrisiko darstellen. Aber dadurch lassen sich auch Apps installieren, welche (noch) nicht im Store zu finden sind. Der Play Store besitzt klare Regeln3, was eine App machen darf und welche Arten von Apps in diesem Store nicht erlaubt sind. Sollte gegen diese Regeln verstoßen werden, so wird eine App aus dem Store entfernt. Diese Regeln dienen der Sicherheit des Nutzers. Außerdem behält sich Google das Recht Apps direkt von jedem Gerät wieder entfernen zu können. Apps werden in eigenen Umgebungen (sogenannte Sandboxen) ausgeführt, damit die Auswirkungen bei Sicherheitsproblemen minimal sind.[60]

1.2 Problembeschreibung

Für die Entwicklung von Apps gibt es mehrere Möglichkeiten. Die Umfassendste ist die Ent- wicklung mithilfe des Android-SDK 4. Damit lassen sich native Apps entwickeln. Die Möglich- keiten, welche damit gegeben sind, hängen nur von dem SDK ab. In der SDK-Beschreibung5 ist es Entwicklern möglich, die Informationen zu finden, welche für die Programmierung einer App nötig sind. Voraussetzung um diese Beschreibung zielführend zu verstehen ist der Besitz von generellen Programmierkenntnissen beziehungsweise JAVA-Kenntnisse. Die SDK verändert sich mit jeder Version. Diese Versionen sind aufwärts kompatibel. Aber nicht unbedingt nach unten. Das bedeutet, dass eine Mindestversion bei der Programmierung festgelegt und auf Funktionen, die später aufgenommen wurden, verzichtet werden muss.

Die Alternativen basieren auf diverse Möglichkeiten, welche mehr oder weniger technisches Verständnis benötigen und für sich ganz eigene Entwicklungsmöglichkeiten darstellen. Diese sind allerdings meistens eingeschränkter als bei der Android-SDK. So gibt es die Möglichkeit, eine App einmal zu entwickeln und anschließend ohne große Adaption die App auf andere Plattformen (zum Beispiel iOS von Apple) portieren zu können. Oder das die App nur Content, aus einer Webquelle, aufbereitet und darstellt.

1.3 Ziele der Arbeit

Diese Arbeit beantwortet die Frage, wie Apps effizient programmiert werden können. Die App sollte nach einem kostengünstigen Entwicklungsprozess wenige Fehler besitzen und gut zu be- dienen sein. Dafür ist es nötig, dass sich die App als Teil der Plattform verhält und somit die (Design-) Regeln dieser einhält. Damit soll die Benutzbarkeit gewährleistet werden und die Be- dienung dem Nutzer auch Spaß machen. Das Ziel dahinter ist, dass die App von möglichst vielen Nutzern gerne verwendet wird.

Um dies zu beleuchten, werden in dieser Arbeit Richtlinien für die Entwicklung erörtert. Der letzte Schwerpunkt ist es Alternativen beziehungsweise Ergänzungen zur Android SDK Pro- grammierung zu ermitteln. Diese App Generierungs-Möglichkeiten können mit unterschiedlich großem technischem Aufwand vollwertige Apps erzeugen. Allerdings werden dadurch auch die Möglichkeiten eingeschränkt. Wodurch sich diese Alternativen nicht für jede App beziehungs- weise für jeden Kontext eignen.

1.4 Aufbau der Arbeit

Im nächsten Kapitel (Kapitel zwei) wird auf die Entwicklung mit der Android-SDK eingegangen. Beginnend mit der Installation, über die zur Verfügung stehenden Tools bis hin zum Absatz der App über den Google Play Store. Dies stellt die gewöhnliche Entwicklungsroutine dar und es soll dabei auch auf Tools eingegangen werden, welche Fehler minimieren und damit die Effizienz in der Entwicklung steigern.

Das dritte Kapitel beschreibt im Anschluss Richtlinien für das Design. Da Android primär auf mobilen Endgeräten eingesetzt wird, müssen bei der Entwicklung andere Prinzipien beachtet werden: So sind die Bildschirme kleiner, der Nutzer ist auf einen Akku angewiesen und einige weitere Punkte. Der Designer einer App sollte sich an Richtlinien für diese Umgebungen hal- ten. Im Besonderen beschreibt dieses Kapitel die Android Design Guidelines. Diese sollen ein einheitliches Look and Feel auf die Android-Plattform bringen und dem Nutzer ein konsistentes Erlebnis ermöglichen.

Im vierten Kapitel werden die alternativen Entwicklungsformen verglichen und auf die Vorund Nachteile der Möglichkeiten eingegangen. Dafür wird dieselbe App mithilfe mehrerer Möglichkeiten umgesetzt und die Unterschiede diskutiert.

Im fünften Kapitel befindet sich noch eine kritische Auseinandersetzung und Reflexion mit dem gesamten Themenblock.

Und abschließend noch der Anhang, hier sind im Literaturverzeichnis auch die Quellen zu finden, welche für die Erstellung der Arbeit verwendet wurden.

Die laufend eingefügten Fußnoten dienen nicht als Quellen, sondern sollen weitere Informationen (zum Beispiel die Web-Adresse) für interessierte Leser liefern. Maskuline Personenbezeichnungen sind prinzipiell geschlechtsneutral zu verstehen, sofern aus dem Zusammenhang nichts anderes hervorgeht.

Da der Inhalt der Seite developer.android.com unter der Creative Common Licence steht[51], darf der Inhalt frei verwendet werden. Durch diese Freiheit sind einige Bilder dieser Arbeit (zum Beispiel der Android Robot in diesem Kapitel) von jener Seite entnommen worden. Natürlich wird bei den entnommenen Bildern im Bildtitel auf die Originalquelle mithilfe einer Zitierung hingewiesen.

KAPITEL Entwicklung mit der Android SDK

Um die effiziente normale Entwicklungsroutine vorzustellen, behandelt dieses Kapitel die Android- SDK und einige wichtige Tools für die Entwicklung. Das Ziel dieser Tools ist es den Entwickler zu unterstützen und möglichst früh Fehler zu finden. Dies reduziert die Entwicklungsdauer und -kosten. Im Anschluss befasst sich dieses Kapitel mit der Veröffentlichung einer App, da dies bei den meisten produktiv umgesetzten Apps eine zentrale Rolle spielt.

2.1 Android-SDK

Die Abkürzung SDK steht für Software Development Kit und meint eine Sammlung von Tools und Anwendungen, welche für die Entwicklung von Software benötigt wird. Mithilfe der Do- kumentation und der SDK kann ein Softwareentwickler Programme schreiben, welche auf die SDK basieren.

Die Dokumentation zur Android-SDK befindet sich auf der Seite für Android Developer1

Installation der Android-SDK

Die Installation besteht aus mehreren Teilen. So wird zuerst nur die CoreSDK2 installiert, welche benötigt wird, um weitere Teile nachladen zu können. Dieser Teil prüft das System auf die nötigen Programme. Sollte kein Java SE Development Kit (JDK) installiert sein, so wird auch dies in diesem Schritt nachgeholt.[33]

Damit wurde der Android-SDK-Manager installiert, welcher genutzt wird, um die Tools und Plattformen downloaden und aktualisieren zu können. Für die Entwicklung wird zumindest eine Plattform benötigt. Die Plattformen unterscheiden sich in der Version der SDK, welche in der Regel nur aufwärts kompatibel ist. Es wird also eine Mindestversion benötigt.[32]

Sollte mit Eclipse 3 entwickelt werden, so gibt es dafür ein Plugin, welches die Tools mit Eclipse verknüpft. Diese Tools nennen sich Android Development Tools (ADT) 4. Zu diesem Paket gehören auch die im Folgenden erläuterten Tools.

2.2 Tools

Um die Fehlerarmut und gute Performance zu erreichen, ist es nötig die App mit vielen Tools zu überprüfen und die daraus gewonnen Erkenntnisse in die App einzuarbeiten. Dies führt zu einer inkrementellen Qualitätsverbesserung und soll daher nicht unterschätzt werden. Um die Übersicht über die folgende Auflistung zu verbessern, befinden sich in den Überschriften Tags, welche den Verwendungszweck kurz herausheben sollen.

ALLGEMEIN: emulator

Um eine App zum Testen ausführen zu können, gibt es prinzipiell zwei Möglichkeiten: das Ausführen auf einem echten, über USB angeschlossenen Gerät oder mithilfe des Emulators. Sollte der Emulator verwendet werden, muss im Android Virtual Device Manager ein Gerät eingetragen sein. Dabei wird die Version der Android-Plattform und die Hardware des virtuellen Gerätes festgelegt.

Beim Ausführen der App wird diese im virtuellen Gerät installiert und gestartet.

Darüber hinaus ist es auch möglich, den Emulator auf Konsolen-Ebene zu bedienen.

Das Testen im Emulator ist in manchen Punkten eingeschränkter als mit einem realen Gerät. So können keine Verbindungen am USB-Anschluss oder von Kopfhörern getestet werden. Auch ist es nicht möglich, den Netzwerkstatus oder den Batterie Level auszulesen. Bluetooth wird in seiner Gesamtheit nicht unterstützt. Weitere Einschränkungen besitzt der Emulator in den Berei- chen: Wi-Fi, NFC und Kameraaufnahmen. Die Simulation von Anrufen und SMS ist allerdings möglich.[37] [46]

CODEANALYSE: Android Lint

Android Lint analysiert den Code und versucht damit Fehler zu finden. Es läuft unabhängig von der verwendeten IDE5 auf Konsolen-Ebene, allerdings gibt es bei den ADT eine Integration in Eclipse. Beispielhaft erkennt Lint Fehler bei den Übersetzungen. So werden Sprachcodes ge- kennzeichnet, welche nicht in allen Sprachen übersetzt wurden. Darüber hinaus werden auch

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.1: Screenshot des Emulator (App Launcher)

weitere Internationalisierungsprobleme erkannt. Diese können durch hart-codierte Strings entstehen und sollten besser in die Ressourcen (gegebenenfalls mehrsprachig) gelagert werden. Auch ungenutzte Ressourcen würden die App nur unnötig groß machen und werden von Lint erkannt. Sogar bei fehlerhaften Icons schlägt das Tool Alarm.

Auch Fehler im Manifest, welche sich sonst nur sehr schwer ausfindig machen lassen, werden gemeldet. So werden Tippfehler leichter gefunden oder auch Unstimmigkeiten bei der Programmierung und der deklarierten SDK-Version beziehungsweise fehlende Berechtigungen werden gemeldet.

Darüber hinaus gibt es viele weitere Regeln6 und es ist sogar möglich selber eigene Regeln7 zu definieren.

Wenn Probleme sich (semi-) automatisch beheben lassen, bietet Lint auch die Möglich- keit für Quick-Fixes an. Dieser kann von einer sinnvollen Änderung des Sourcecodes bis zum schlichten Ignorieren des Problems ganz unterschiedlich sein, abhängig von der verletzten Re-gel.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.2: Lint angewendet auf BachCam (siehe Kapitel 4)

In den Einstellungen des Eclipse Tools lässt sich auswählen ob die Fehler als Warning oder Error gemeldet werden sollen. Auch kann dabei gewählt werden, ob Lint automatisch ausgeführt werden soll. Die Verwendung von Lint ist jedenfalls sehr empfehlenswert, da damit Fehler deutlich schneller gefunden werden und bereits beim Erstellen des Fehlers auf diesen aufmerksam gemacht wird, wodurch die Auswirkungen noch minimal sind.[52]

DEBUG: DDMS

Der Dalvik Debug Monitor Server ist eine Debug-Perspektive in Eclipse. Dieser ist aber nicht auf Step-by-Step Debug ausgelegt. Sondern liefert viele weitere Informationen über die laufende App. DDMS arbeitet wie der normale Step-by-Step Debug mithilfe der adb 8.

In der linken Spalte werden die angeschlossenen realen und virtuellen Geräte angezeigt, und wenn diese aufgeklappt werden, erscheinen die laufenden und debug-baren Prozesse des jeweiligen Gerätes. Zu diesen Prozessen kann DDMS die Threads anzeigen, oder auch den Speicherverbrauch im Heap. In seiner neusten Version kann DDMS auch den Netzwerk Verkehr in einer detaillierten Version anzeigen.

Neben dem Gewinnen dieser zusätzlichen Informationen kann DDMS verwendet werden, um den Telefonstatus zu verändern. Dadurch lässt sich zum Beispiel die Internet-Geschwindigkeit auf EDGE drosseln. Zudem lässt er auch zu, dass ein Telefonanruf oder SMS Empfang vorge- täuscht werden kann. Mit dieser Hilfe können weitere Situationen direkt in der Entwicklungsum- gebung getestet werden, ohne auf ein weiteres, mit dem Testgerät interagierendes Gerät zurück- greifen zu müssen. Es ist möglich beliebige Anrufnummern zu verwenden und somit Grenzfälle in der App leichter zu testen. Auch die GPS-Position lässt sich modifizieren, um auch dadurch Spezialfälle testen zu können.[34] [47]

LogCat

Bei LogCat handelt es sich um den Logger, welcher Debug Informationen sammelt und ausgibt. Es ist im DDMS integriert und sammelt die aktuellen Informationen. Die Informationsstufe ist

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.3: Screenshot von DDMS bei der Analyse von BachCam (siehe Kapitel 4)

unterteilt nach: Verbose - Debug - Info - Warn - Error. Der Log ist sehr hilfreich, um den Grund für eine Runtime Exception zu finden.[34]

DEBUG (LAYOUT): Hierarchy Viewer

Um zu verhindern, dass das Layout der App das Programm verlangsamt, kann der Hierarchy Viewer die Struktur der Views untersuchen. Da der Hierarchy Viewer nur auf der Entwicklerversion von Android funktioniert, ist er vor allem mit dem Emulator nutzbar, aber nur selten mit einem realen Gerät. Wenn eine App ausgeführt wird, teilt sich die Eclipse Perspektive des Hierarchy Viewer in vier Bereiche.

- TreeView: der linke Bereich; stellt die Struktur in einer Baumstruktur dar.
- Tree Overview: oben rechts; hier wird die Baumstruktur klein als Übersicht angezeigt.
- Properties View: Mitte rechts; listet die Eigenschaften des ausgewählten Objektes auf.
- Layout View: unten rechts; ist eine andere Art der Navigation durch die App. Es wird das User Interface angezeigt.

Sinnvoll ist dieses Tool um Fehler zu finden oder die View zu optimieren. Da damit die Performance der View verbessert werden kann.[36] [49]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.4: Screenshot des Hierarchy Viewer[36]

DEBUG (PERFORMANCE): Traceview

Traceview wird verwendet, um die Performance der Software analysieren zu können. Mit die- sem Tool lässt sich die Laufzeit von Programmteilen messen und das Ergebnis verfolgen. Für die Erstellung der Trace Dateien gibt es zwei Möglichkeiten. Entweder es werden die Methoden der Debug Klasse verwendet oder die Funktion des DDMS. Die DDMS Methode ist weniger prä- zise, und der Entwickler hat weniger Kontrolle über die Erhebung und Speicherung der Daten. Allerdings hat dies auch den großen Vorteil, dass der Code nicht angepasst werden muss. Sollte die Präzision der ersten Methode nicht benötigt werden, ist es ratsam, nur die zweite Methode zu verwenden.[35] [50]

DEBUG (EINGABESIMULATION): monkey

Monkey ist ein Kommandozeilen Programm, welches User Interaktionen simuliert. Dafür werden pseudo-zufällige User-Events ausgelöst. Dies kann verwendet werden, um einen Stress-Test mit einer App auszuführen. Monkey bietet eine Menge an Einstellungsmöglichkeiten, so können die zu testenden Teile eingeschränkt werden. Es lassen sich auch die Events steuern, wie beispielsweise eine Verzögerung zwischen den einzelnen Events.[39]

IMAGES: Draw 9-patch

Anders als die vorherigen Tools handelt es sich bei Draw 9-patch nicht um ein Debug-Tool, sondern um ein Zeichenprogramm für 2D-Bilder. Nine-Patch Dateien sind normale Bilder mit der Endung .9.png und werden verwendet, wenn die Größe des Bildes sich an einen (dyna- mischen) Inhalt anpassen soll. Dies passiert dabei auf die Art, dass das Bild in drei Mal drei Felder unterteilt wird. Wobei sich die mittleren Felder beliebig strecken lassen. Dadurch passt sich das Bild mit seiner Größe an den Inhalt an. Beispielsweise könnte dies verwendet werden um einen Button-Hintergrund fest zulegen und der Button würde sich dann selbstständig an den Text anpassen und hätte die richtige Größe um den Text zu umschließen.[28]

Draw 9-patch ist ein Tool um solche 9-patch Bilder mit einen WYSIWYG9 -Editor zu erstellen. Es ist sehr einfach zu handhaben. Im Editor wird lediglich eine PNG-Datei geladen, und darin (horizontal beziehungsweise vertikal) der streckbare Bereich festgelegt. Daraufhin muss es nur noch als 9-patch gespeichert werden.[38]

SECURITY: ProGuard

Auch ProGuard beschäftigt sich nicht mit dem Testen der App, sondern bereitet die App für die Verbreitung vor. So wird der Code verkleinert, optimiert und verschleiert. Dies bedeutet, dass nicht benötigter Code gelöscht wird. Dadurch ergibt sich eine kleinere APK-Datei am En- de, welche somit schneller vom User bezogen werden kann. Darüber hinaus wird der Code verschleiert, dies bedeutet, dass die Namen skurril umbenannt werden. Dies erschwert Rever- se Engineering und damit wird es schwerer für Unberechtigte an den ursprünglichen Code zu kommen. Angreifer könnten ohne die Verschleierung an den Original-Code kommen und gezielt nach Schwachstellen suchen, welche sie danach gezielt aushebeln können. Mit ProGuard wird dies erschwert, jedoch nicht verhindert.

Dieses Tool ist in den Build Prozess integriert und wird daher automatisch ausgeführt wenn der Build im Release Mode arbeitet. Es ist daher nicht notwendig ProGuard manuell zu starten. Die Regeln für die Optimierung und Verschleierung können in der proguard.cfg im Projektver- zeichnis festgelegt werden. In der project.properties-Datei muss allerdings auf die proguard.cfg Datei hingewiesen werden, damit das Tool arbeiten kann. Ohne diesen Link wird ProGuard nicht ausgeführt.

Im Standardfall werden nur allgemeingültige Vorgänge optimiert. In manchen Fällen könnte diese Standardkonfiguration zu Fehler in der App führen. Da im Fehlerfall im ausgegebenen Stack Trace die verschleierten Klassennamen zu finden sind, wird es sehr schwer (oder gar unmöglich) zu debuggen. Glücklicherweise erzeugt ProGuard eine Datei mapping.txt, welche die Zuordnung der Verschleierten- und der Originalnamen ermöglicht.[40]

2.3 Vertreibung der App

Wenn eine App geschrieben wurde, ist es wichtig, dass diese auch an Nutzern beziehungsweise Kunden gebracht wird. Nur dadurch kann die App von User verwendet werden. Unabhängig von der Art der Verbreitung bedarf dies ein wenig Wissen in Marketing. Doch bei Google wird vieles vom Google Play Store abgenommen. Dadurch wird auch die Veröffentlichung von Apps sehr einfach für die Entwickler.

Google Play Store

Die häufigste Form der Verbreitung einer Android-App ist die Veröffentlichung im Google Play Store10. Dieser ist auf der überwiegenden Anzahl an Geräten vorinstalliert. Es ist sogar möglich, über die Webseite Apps auf dem eigenen Gerät remote zu installieren. Kunden interagieren mit dem Play Store und können darüber unmittelbar Feedback zur App liefern. Durch die verschie- denen Kategorien kann der User immer gezielt nach den Apps suchen, die ihn interessieren.[23]

Auch Geld kann mit diesem Store verdient werden. So lässt sich eine App in 130 Länder zu unterschiedlichen Preisen verkaufen. Möglich ist es auch, dass innerhalb der App Zahlungsmög- lichkeiten angeboten werden, um damit weitere Funktionen freischalten zu können, ohne dass der User eine weitere App installieren muss. Das Zahlungsprozedere wird von Google abge- nommen und der Entwickler bekommt die Abrechnung und das verdiente Geld abzüglich einer Provision für Google. Auch über Rückgaben muss der Entwickler sich nicht kümmern.[22]

Darüber hinaus hat der Entwickler die Möglichkeit die App genau für sein Zielpublikum festzulegen. Eine technische Einschränkung ist das Voraussetzen von Funktionen am Zielgerät, welche für das fehlerfreie Laufen der App nötig sind. Wenn die App von Nutzern gefunden wird, liefert der Store viele Statistiken. Zum Beispiel kann abgerufen werden, wie viele Installationen in letzter Zeit durchgeführt wurden, oder auf welchen Geräten die App momentan installiert ist. Damit kann die weitere Entwicklung der App genau auf das Zielpublikum angepasst werden. [21]

Veröffentlichung im Google Play Store

Bevor ein Entwickler eine App veröffentlichen kann, muss er sich als Developer anmelden. Diese Registrierung erfolgt über die Google Play Android Developer Console 11. Nach Eingabe der Daten müssen zum Abschluss 25 US-Dollar Gebühren über Google Wallet12 bezahlt werden. Sollte angedacht sein, dass kostenpflichtige Apps verkauft werden, so muss dafür eine entsprechende Registrierung in Google Checkout13 vorgenommen werden.[26]

[...]


1 zum Beispiel die Google TV SetUp Boxen

2 http://play.google.com/store

3 Diese Richtlinien befinden sich hier: http://play.google.com/about/ developer-content-policy.html

4 Software Development Kit

5 http://develop.android.com

1 http://developer.android.com

2 Download von http://developer.android.com/sdk/index.html

3 Weitere Informationen und Download: http://www.eclipse.org/

4 Download von http://developer.android.com/sdk/installing/installing-adt.html

5 Integrated Development Environment, zum Beispiel: Eclipse, Netbeans,...

6 Vollständige Liste mit Lint Regeln: http://tools.android.com/tips/lint-checks

7 Eigene Lint Regeln erstellen: http://tools.android.com/tips/lint/ writing-a-lint-check

8 Android Debug Bridge

9 What You See Is What You Get

10 https://play.google.com/store

11 https://play.google.com/apps/publish/

12 Google Checkout ist Teil von Google Wallet[8]

13 http://checkout.google.com/sell

Details

Seiten
52
Jahr
2012
ISBN (eBook)
9783656291947
ISBN (Buch)
9783656294450
Dateigröße
14.1 MB
Sprache
Deutsch
Katalognummer
v203183
Institution / Hochschule
Technische Universiät Wien
Note
1
Schlagworte
Android Programmierung App Effizient Guideline Generator Tools Distribution Adobe AIR Titanium SDK PhoneGab Android SDK

Autor

Teilen

Zurück

Titel: Entwicklung von Apps für Android