Inhaltsverzeichnis

Werbung
Eclipse_als_Entwicklungsumgebung_für_das_Android
Hochschule:
Standort:
Studiengang:
Veranstaltung:
Betreuer:
Typ:
Themengebiet:
Autor(en):
Studienzeitmodell:
Semesterbezeichnung:
Studiensemester:
Bearbeitungsstatus:
Prüfungstermin:
Abgabetermin:
Fallstudienarbeit
Hochschule für Oekonomie & Management
Düsseldorf
Bachelor Wirtschaftsinformatik
Fallstudie / Wissenschaftliches Arbeiten
Prof._Dr._Uwe_Kern
Fallstudienarbeit
Location Based eBusiness
Sven Beckmann, Matthias Niehoff
Abendstudium
4
begutachtet
Inhaltsverzeichnis
• 1 Abkürzungsverzeichnis
• 2 Abbildungsverzeichnis
• 3 Tabellenverzeichnis
• 4 Einleitung
• 5 Grundlagen
♦ 5.1 Integrierte
Entwicklungsumgebung
♦ 5.2 Eclipse IDE
♦ 5.3 Android
◊ 5.3.1 Android OS
◊ 5.3.2 Android
SDK
• 6 Analysekriterien
• 7 Eclipse als
Entwicklungsumgebung
♦ 7.1 ADT Plugin für
Eclipse
◊ 7.1.1 Wizards
◊ 7.1.2 Editoren
◊ 7.1.3 DDMS
Perspective
♦ 7.2 Tools des SDK und
deren Integration
◊ 7.2.1 Android
Debug Bridge
◊ 7.2.2 Emulator
◊ 7.2.3 Android
Virtual Devices
◊ 7.2.4 Android
Asset Packaging
Tool
• 8 ADT Plugin im Einsatz
♦ 8.1 Projektanlage
Inhaltsverzeichnis
1
Eclipse_als_Entwicklungsumgebung_für_das_Android
♦ 8.2 Oberflächengestaltung
♦ 8.3 Konfiguration
♦ 8.4 Debugging
♦ 8.5 Signierung
♦ 8.6 Veröffentlichung
• 9 Bewertung
• 10 Fazit
• 11 Literaturverzeichnis
• 12 Fußnoten
1 Abkürzungsverzeichnis
Abkürzung
ADB
API
APK
ARM
AVD
DDMS
DVM
GPS
GUI
IDE
OS
OSGi
SDK
USB
VM
WYSIWYG
XML
Bedeutung
Android Debug Bridge
Application Programming Interface
Android Package
Advanced RISC Machine
Android Virtual Device
Dalvik Debug Monitor Server
Dalvik Virtual Machine
Global Positioning System
Graphical User Interface
Integrated Development Environment
Operating System
Open Services Gateway initiative
Software Development Kit
Universal Serial Bus
Virtuelle Maschine
What You See Is What You Get
Extensible Markup Language
2 Abbildungsverzeichnis
Abb.-Nr.
Abbildung
1
Eclipse Logo
2
Android Logo
3
Android Architektur
4
5
XML File Wizard
DDMS Perspective
Android Virtual
Device im Emulator
Layout Editor
6
7
1 Abkürzungsverzeichnis
Quelle
http://eclipse.org/eclipse.org-common/themes/Nova/images/eclipse.png
(09.05.2010 17:31)
http://www.android.com/media/android_vector.jpg (12.05.2010 15:34)
http://developer.android.com/images/system-architecture.jpg (12.05.2010
15:35)
2
Eclipse_als_Entwicklungsumgebung_für_das_Android
3 Tabellenverzeichnis
Tabelle Nr.
1
2
3
4
5
Bezeichnung
Übersicht der Eclipsepakete [1]
Übersicht der Tools [2]
Übersicht der Wizards
Übersicht der Editoren
Die DDMS Perspektive
4 Einleitung
Android gewinnt zunehmend an Bedeutung. Zuletzt sorgte die Meldung für Aufsehen, dass Android das Iphone
OS (Operating System) in den USA von Platz 2 der Handybetriebssysteme verdrängt hat und nun hinter Research
in Motion liegt[3]. Dies gilt zwar nur für die Verkäufe im ersten Quartal 2010 und nicht für bereits eingesetzte
Geräte, dennoch ist es ein klares Anzeichen dafür, dass sich der Ansatz eines freien Betriebssystems durchsetzen
kann.
Ein weiterer aktueller Trend sind sogenannten Apps für mobile Geräte. Das sind kleine Programme, die häufig
nur für eine kleine Aufgabe konzipiert sind. Auch für das Android gibt es eine Vielzahl dieser Apps, die man im
Android Market [4] herunterladen kann. Der Kurznachrichtendienst Twitter veröffentlichte seine offizielle App für
Android noch vor der für das iPhone[5].
Wie aber kommt es zu dieser Fülle an Anwendungen? Wie schwer ist es, eine Anwendung für Androidgeräte zu
entwickeln, insbesondere wenn die Entwicklung mit einer integrierten Entwicklungsumgebung wie Eclipse
gestützt wird. Welche Arbeit nimmt Eclipse einem ab und wo stößt es an Grenzen? Welche Prozesse lassen sich
durch Eclipse unterstützen und automatisieren und wo muss selbst "Hand angelegt werden"? Welche Vor- und
Nachteile bietet Eclipse und wie unterstützt es den Entwickler? Und letztendlich stellt sich auch die Frage, wie die
selbst entwickelten Programme verteilt werden und was man dann mit kommerziellen Produkten verdienen kann.
Im Rahmen dieser Arbeit sollen die oben genannten Fragen und besonders die Frage der Entwicklung mit Eclipse
genauer untersucht und analysiert werden. Um auch einen praktischen Eindruck von der Implementierung zu
gewinnen, soll nach einer Analyse der einzelnen Funktionen in Eclipse auch der Einsatz der Tools genauer
untersucht werden.
Im Verlauf dieser Arbeit soll nur so weit auf die Android-Programmierung eingegangen werden, wie es für die
Analyse des Plugins für Eclipse notwendig ist. Weiterhin soll diese Hausarbeit keine Anleitung für die Erstellung
einer Androidanwendung darstellen.
5 Grundlagen
5.1 Integrierte Entwicklungsumgebung
Unter einer IDE (Integrierten Entwicklungsumgebung, von englisch integrated development environment)
versteht man ein Anwendungsprogramm, welches die Entwicklung von Software unterstützt und vereinfacht. Sie
umfasst eine Reihe von Kernkomponenten, die zur Softwareentwicklung nötig sind[6]:
3 Tabellenverzeichnis
3
Eclipse_als_Entwicklungsumgebung_für_das_Android
Texteditor
Diese sind für die Entwicklung von Quellcode angepasst und bieten Erweiterungen wie
Zeilennummerierung, Syntaxhighlighting, Code Beautifier, Code Completion und vorgefertigte
Programmgerüste, sogenannte Skeletons.
Projektverwaltung
Refactoring
Compiler oder Interpreter, je nach Programmiersprache
Linker
Debugger
Dieser hilft zur Laufzeit beim Aufspüren von Fehler und ermöglicht es häufig Programme Zeile für Zeile
abzuarbeiten und Variableninhalte zu überwachen.
Viele umfangreiche IDEs bieten weitere Hilfestellungen wie zum Beispiel Versionierung, einfache GUI
(Graphical User Interface) Editoren oder Modellierungsfunktionen. Entwicklungsumgebungen sollen dem
Entwickler wiederkehrende Aufgaben wie Refactoring und die Anlage neuer Komponenten abnehmen oder
vereinfachen, damit sich der Entwickler auf seine eigentliche Arbeit konzentrieren kann. Sie bieten dabei häufig
eine grafische Oberfläche, um Kommandozeilenprogramme wie zum Beispiel den Compiler und Linker teilweise
automatisiert aufzurufen.
Es gibt heute eine Reihe von proprietären und freien IDEs. Die bekanntesten sind Eclipse, Netbeans, Microsoft
Visual Studio und KDevelop.
5.2 Eclipse IDE
Abb. 1 Eclipse Logo
[Quelle: http://eclipse.org/eclipse.org-common/themes/Nova/images/eclipse.png (09.05.2010 17:31)]
Die Eclipse IDE ist eine freie Entwicklungsumgebung. Die Plattform wurde bis 2001 von IBM entwickelt und
dann dem Eclipse Consortium als Open Source Projekt zur Verfügung gestellt. 2004 ging aus dem Eclipse
Consortium die gemeinnützige Organisation Eclipse Foundation hervor[7]. Eclipse selbst ist eine kleine Sammlung
von Plugins, welche die Grundfunktionalitäten des Programms zur Verfügung stellen. Man erhält durch die
Plattform in erster Linie GUI Funktionalitäten. Diese eröffnen die Möglichkeit auf Eclipse basierende Rich Client
Applications zu entwickeln[8].
Dank der guten Erweiterungsmöglichkeit durch die Implementierung der OSGi Service Plattform gibt es Plugins,
die zum Beispiel das Entwickeln mit anderen Sprachen wie C, PHP und Perl ermöglichen.
Die Java Development Tools stellen die Plugins dar, die die Java Entwicklung mit Eclipse ermöglichen. Sie
bieten unter anderem eine Reihe von Ansichten, sogenannte Views, Assistenten (Wizards), Editoren und
5.1 Integrierte Entwicklungsumgebung
4
Eclipse_als_Entwicklungsumgebung_für_das_Android
Refactoring Tools, die die Programmierung mit Java vereinfachen. Außerdem bieten sie erweiterte
Debuggingmöglichkeiten für Java Programme. Diese sind auch auch bei der Androidentwicklung hilfreich, da
auch hier mit Java entwickelt wird.
Die IDE ist eine weit verbreitete Entwicklungsumgebung für Java. Zu den Vorteilen der IDE gehören unter
anderem:
Open Source
Prinzipiell kann jeder mitentwickeln. Beiträge werden, nachdem sie begutachtet wurden, der
Allgemeinheit zur Verfügung gestellt.
Modularer Aufbau
Dank der Nutzung von Equinox als Implementierung der OSGi (Open Services Gateway initiative)
Service Plattform ist es unkompliziert eigene Plugins zu entwickeln und bereitzustellen.
Große Anzahl an Plugins
Zurzeit gibt es im Eclipse Marketplace knapp 1000 Plugins zum kostenfreien Download. Außerdem
findet man dort etwa 100 auf der Eclipse Technologie aufbauende Rich Clients[9]
Benutzerorientiert
Die Foundation geht bei der Entwicklung auch auf Wünsche der Nutzer ein, sodass der Nutzer in den
Entwicklungsprozess mit einbezogen wird.
Eclipse besteht aus mehreren Perspektiven. Diese fassen funktional zusammenhängende Einheiten wie Ansichten
oder Editoren zusammen. Es gibt für unterschiedliche Aufgaben auch unterschiedliche Perspektiven, zum
Beispiel eine Debugging Perspektive.
Seit der Version 3.2 im Jahr 2006 werden die Veröffentlichungen der wichtigsten Komponenten zu sogenannten
Simultaneous Releases zusammengelegt.[10]. Damit sollen Versionskonflikte zwischen den einzelnen
Komponenten vermieden werden. Die aktuelle Version 3.5 trägt den Namen Galileo. Weiterhin wird Eclipse in
mehreren vorkonfigurierten Paketen angeboten, welche sich in der Zusammenstellung der Komponenten und
Plugins unterscheiden. Die wichtigsten davon sind:
Tab. 1: Übersicht der Eclipsepakete
Paketname
Eclipse IDE for Java
Developers
Eclipse IDE for Java EE
Developers
Eclipse IDE for C/C++
Developers
Eclipse for PHP
Developers
Pulsar for Mobile Java
Developers
Beschreibung
Besteht aus den Basis Komponenten zum Entwickeln von Java Anwendungen
Enthält die Java IDE und zusätzlich Tools für Java EE und Webentwicklung
Speziell auf die C/C++ Programmierung abgestimmtes Paket
Paket für die Entwicklung von Webseiten mit PHP. Bietet zusätzlich
Integrationsmöglichkeiten für die Steuerung eines lokalen Webservers
Stellt Tools für die Erstellung von Applikationen für Handys bereit.
Die klassische Eclipse IDE mit den Java Development Tools, allerdings mit weniger
Funktionen als die IDE for Java Developers
Grundlage diese Arbeit ist die Eclipse IDE for Java EE Developers in der Version 3.5.
Eclipse Classic
5.2 Eclipse IDE
5
Eclipse_als_Entwicklungsumgebung_für_das_Android
5.3 Android
Abb. 2 Android Logo
[Quelle: http://www.android.com/media/android_vector.jpg (12.05.2010 15:34)]
Android ist ein freies und quelloffenes Betriebssystem für mobile Geräte. Es basiert auf einem Linux Kernel und
wird von der Open Handset Alliance, welche aus einer großen Anzahl von Netzbetreibern, Software Firmen und
Geräteherstellern besteht, entwickelt. Federführend ist Google. Android wurde am 21 Oktober 2008 veröffentlicht
und hat seitdem enorm an Popularität gewonnen. Die zurzeit aktuellste Version 2.2 ist bislang nur als SDK
(Software Development Kit) verfügbar und hört auf den Codename "Froyo"[11]. In unserer Arbeit arbeiten wir mit
der Version 2.1 (Eclair). Das "Android Open Source" Projekt besteht nicht nur aus einem Betriebssystem für
mobile Endgeräte, sondern außerdem aus Entwicklungskomponenten, Middleware und wichtigen Programmen
für ein mobiles Endgerät (z.B. Kalender, Browser).
5.3.1 Android OS
Das Betriebssystem Android OS basiert auf dem Linux Kernel in Version 2.6, der speziell auf die Verwendung
auf mobilen Geräten zugeschnitten wurde. Im Kernel von Android OS sind z.B. die Hardwaretreiber für das
Display oder die Kamera enthalten. Der Kernel ist für die typischen Aufgaben eines Betriebssystems
verantwortlich. Wie bei anderen Betriebssystemen auch, dient der Kernel bei Android OS ebenfalls als
Kommunikationsschicht zwischen Hardware und der restlichen Software[12].
Abb. 3 Android Architektur
[Quelle: http://developer.android.com/images/system-architecture.jpg (12.05.2010 15:35)]
Die Android Runtime stellt die Laufzeitumgebung für alle Programme zur Verfügung, die auf dem
Betriebssystem laufen und greift hierbei auf Kernelfunktionalitäten zurück. Des Weiteren werden in der Android
Runtime grundlegende Java Bibliotheken mitgeliefert, um die Entwicklung von Anwendungen zu erleichtern.
5.3 Android
6
Eclipse_als_Entwicklungsumgebung_für_das_Android
Anwendungen für Android OS können ausschließlich mit der Programmiersprache Java entwickelt werden. Dies
liegt unter anderem daran, dass alle Anwendungen in der sog. "Dalvik Virtual Machine" laufen, einer angepassten
Laufzeitumgebung für Java Programme, die besonders ressourcenschonend arbeitet. So wurden z.B. Reflections
weggelassen, um die DVM (Dalvik Virtual Machine) performanter zu gestalten[13]. Eine weitere Besonderheit der
Dalvik VM ist die Tatsache, dass jede Anwendung in einer eigenen VM gestartet wird. Dies bietet unter anderem
Vorteile bei der Sicherheit und Fehlerbehandlung von Prozessen bzw. Anwendungen. Die DVM wurde speziell
für ARM-Prozessoren optimiert, da diese im mobilen Bereich stark verbreitet sind.
Android OS liefert auch weitere Standardbibliotheken z.B. für die Persistenz von Daten, das Darstellen von
Grafiken und das Abspielen von Videos. Da diese Bibliotheken für uns im Rahmen dieser Arbeit nicht relevant
sind, verweisen wir auf die Android Dokumentation für weiterführende Information zu diesem Thema.
Besonders interessant für die Entwicklung von Anwendungen für das Android OS ist das mitgelieferte
Application Framework. Es vereinfacht eine große Anzahl von häufig auftretenden Problemen bei der
Entwicklung. Das Application Framework bietet simplen Zugriff auf gerätspezifische Funktionalitäten, z.B. die
Vibration oder der Alarm, aber auch Möglichkeiten zur schnellen Gestaltung von Benutzeroberflächen und
Zugriff auf die Benutzeroberfläche des Betriebssystems, z.B. für die Darstellungen von Warnungen oder eines
Tray-Icons[14].
Wie oben bereits erwähnt, enthält Android OS von Anfang an wichtige Programme für die tägliche Arbeit mit
dem Betriebssystem. Hierzu zählen unter anderem Browser, Kontaktverwaltung und die Geräteeinstellungen.
5.3.2 Android SDK
Das Android SDK bietet neben einer umfangreichen Dokumentation der gesamten API (Application
Programming Interface) einige Tools zum Erstellen von Anwendungen für Android OS. Es beinhaltet weiterhin
auch das Development Plugin für Eclipse und den Emulator[2].
Tab. 2: Übersicht der SDK - Tools
Name des Tools
Android Asset
Packaging Tool
Beschreibung
(kurz aapt) Ermöglicht das Erzeugen von APK (Android Package) Dateien
(kurz adb) Verwaltet und manipuliert den Gerätestatus von virtuellen oder physikalischen
Endgeräten
Ist das größte und wichtigste Tool des SDK. Mit Hilfe von android ist das Erzeugen von
android
virtuellen Maschinen und von Projekten möglich. Außerdem kann hierüber das SDK
aktualisiert und erweitert werden
Android Interface
Ist eine Sprache, die den Austausch von Objekten zwischen verschiedenen Anwendungen
Definition Language ermöglicht
Android Virtual
(kurz AVD) Stellt eine Konfiguration des Emulators da, wodurch sich verschiedene
Devices
Endgeräte besser nachbilden lassen
Backup Manager
(kurz bmgr) Ermöglicht einfache Sicherungs- und Wiederherstellungsfunktionen
Dalvik Debug Monitor (kurz DDMS) Bietet u.a. Thread und Heap Informationen, als auch Emulatorsteuerung
dx
Erzeugt Android Bytecode mittels normaler .class Dateien
Draw 9-patch
Erlaubt das einfache Erzeugen von sog. Nine-Patch Grafiken
Emulator
Ermöglicht das Testen und Entwickeln von Anwendungen ohne physikalisches Endgerät
Android Debug Bridge
5.3.1 Android OS
7
Eclipse_als_Entwicklungsumgebung_für_das_Android
Hierarchy Viewer
Hilft dem Entwickler beim Optimieren seiner grafischen Benutzeroberfläche
layoutopt
Optimiert Layouts und Layout-Hierarchien
mksdcard
Erzeugt Speicherabbilder, die im Emulator als Speicherkarte erkannt werden
UI/Application
Generiert zufällig Nutzereingaben und Systemereignisse um Anwendungen zu testen
Exerciser Monkey
sqlite3
Wird zur Speicherung von Daten genutzt
Traceview
Stellt Systemlogs grafisch aufbereitet dar
zipalign
Optimiert Android Application Dateien und passt diese an
Im Laufe dieser Arbeit werden ausschließlich Teile des SDK analysiert, die sich in Eclipse integrieren lassen.
Kleinere Tools werden dabei bewusst außen vor vorgelassen.
6 Analysekriterien
Für die Entwicklung von Anwendungen gibt es die verschiedensten Entwicklungsumgebungen. Eclipse ist
besonders stark im Bereich für Java vertreten. Ein Merkmal von Eclipse ist die einfache Erweiterbarkeit durch
sog. Plugins. Plugins erleichtern dem Nutzer die Arbeit in einem speziellen Themengebiet. Das Android Plugin
bietet keine neuen Funktionalitäten, sondern versucht die Funktionen der Android Tools in eine grafische
Oberfläche zu integrieren. Deshalb ist vor allem der Vergleich zwischen dem ADT (Android Developing Tools)
Plugin und den Tools von besonderer Bedeutung, wobei die Vereinfachung, die das Plugin mit sich bringt im
Mittelpunkt der Betrachtung steht. Da sich das Plugin als Gesamtlösung anbietet und eine ganzheitliche
Entwicklung ermöglichen will, stellt sich auch die Frage, wie komplett der Funktionsumfang ist. Wenn
essenzielle Funktionen fehlen ist das Plugin an sich überflüssig und würde nur für spezielle, einzelne Aufgaben in
Frage kommen.
Doch nicht nur der Vergleich mit den Android Tools ist von Bedeutung. Da das Plugin eine grafische
Benutzeroberfläche bietet, sind auch die Faktoren von Bedeutung, die für jede andere grafische Oberfläche von
Belang sind. Grafische Benutzeroberflächen sollten intuitiv und eingängig sein, also ein hohes Maß an
Übersichtlichkeit bieten. Des Weiteren ist Eingängigkeit besonders wichtig, da Programme, für deren Nutzung
eine hohe Einarbeitungszeit notwendig ist, häufig vom Anwender ignoriert werden, da durch die Einarbeitung der
Zeitvorteil, der eventuell erzielt werden kann, zunichte gemacht wird.
Wie von jedem anderem Programm erwartet der Entwickler von einem solchen Plugin auch ein stabiles
Laufverhalten. Datenverlust oder das erneute Ausführen von Arbeiten ist für ein solches Plugin inakzeptabel.
7 Eclipse als Entwicklungsumgebung
7.1 ADT Plugin für Eclipse
Wie schon unter Android SDK erwähnt stellt das Android SDK mit den Android Developing Tools (ADT) Plugin
eine Erweiterung für Eclipse bereit. Im Folgenden soll auf diese Erweiterung genauer eingegangen und die Vorund Nachteile dieser Integration analysiert werden.
Das ADT Plugin stellt in Eclipse zusätzliche Wizards, Editoren und Views für ein einfacheres Erstellen von
Android Anwendungen bereit.
5.3.2 Android SDK
8
Eclipse_als_Entwicklungsumgebung_für_das_Android
7.1.1 Wizards
XML File Wizard
Die nachfolgende Tabelle gibt einen Überblick über die zusätzlichen Wizards:
Android Project
Wizard
Android Test
Project Wizard
Vereinfacht das Anlegen eines Projektes durch automatisches Erstellen der Ordnerstruktur
und Anlegen einer ersten Aktivität.
Erstellt ein auf JUnit basierendes Testprojekt für ein Android Projekt. Dabei erstellt es
ebenfalls die Ordnerstruktur.
Mit diesem Wizard lassen sich XML (Extensible Markup Language) Files erstellen, die in
Android XML File
Android zur Konfiguration der Anwendung genutzt werden.
Bei allen Wizards lässt sich zusammenfassen, dass sie die Arbeit des Entwicklers erheblich vereinfachen. Die
Assistenten für neue Projekte bieten die von anderen Projekt Wizards in der Eclipse IDE (Java Project etc.)
bekannten Einstiegshilfen. Nach dem Durchführen eines Assistenten, der zum Beispiel für ein neues Projekt im
einfachsten Fall nur 3 Angaben braucht, steht in Eclipse ein lauffähiges Android Hello World Programm zur
Verfügung, mit dem die Entwicklung gestartet werden kann. Ohne Benutzung des Eclipse Plugins müsste die
Projektstruktur per Hand oder mit dem Kommandozeilen Tool android aus dem SDK angelegt werden.
Der "New Android XML File Wizard" ist eine hilfreiche Unterstützung, um die XML Konfigurationsfiles für
Android zu erstellen. Er bietet eine Reihe von Android spezifsche Ressourcen an, die erstellt werden können, und
einige dazu passende Qualifier, welche die Werte dafür darstellen. Durch die Generierung bleibt dem Benutzer
die Arbeit an XML Source erspart.
7.1.2 Editoren
Die durch das ADT Plugin zur Verfügung gestellten Editoren ermöglichen das Editieren der XML Datei anhand
von grafischen Oberflächen. Die einzelnen Editoren sind:
Android Layout
Editor
7.1.1 Wizards
Ermöglicht das Erstellen von Layouts im Stile eines WYSIWYG (What You See Is What
You Get) Editors.
9
Eclipse_als_Entwicklungsumgebung_für_das_Android
Android Manifest
Stellt eine grafische Oberfläche zum Editieren der Einstellungen in der
Editor
AndroidManifest.xml bereit.
Android Menu Editor Bietet eine Oberfläche zum Erstellen von Menüs
Android Resource
Einfache Möglichkeit Elemente in Resource Dateien zu verwalten.
Editor
Android XML
Einfache Möglichkeit Elemente in XML - Resource Dateien zu verwalten. Der Editor ist
Resource Editor
stark verwandt mit dem einfachen Resource Editor
Alle neuen Editoren bilden den kompletten Umfang der XML-Konfigurationen ab. Durch die Möglichkeit auch
die XML-Datei als Klartext zu bearbeiten, besteht jederzeit die Gelegenheit, die Konfiguration auch per Hand zu
ändern. Änderungen in der XML-Datei werden ohne Umwege im Editor sichtbar.
Im Layout Editor hat man weiterhin die Chance, das Design für unterschiedliche Gerätetypen und somit auch
unterschiedliche Bildschirmgrößen zu testen und anzupassen. Weiterhin gibt es verschiedene sogenannte Themes,
die direkt angeschaut werden können. Dabei handelt es sich um vorgefertigte Farbvorlagen für Android
Anwendungen. Es entfällt das Arbeiten im XML-Dokument und der Wechsel zu einer Vorschauseite. Als
Gestaltungselemente stehen sowohl verschiedene Layoutelemente als auch vorgefertigte Designelemente,
sogenannte Views, wie Button, Textboxen oder komplexe Elemente zum Beispiel Fortschrittsbalken oder Uhren
zur Verfügung.
Der Manifest Editor ist neben dem Layout Editor der Umfangreichste. Neben allgemeinen Attributen zur
Anwendungen lassen sich hier auf verschiedenen Reitern Einstellungen zu Berechtigungen, benutzten
Komponenten wie zum Beispiel der Kamera oder dem GPS-Sensor und Bestandteile der Anwendung festlegen.
Die grafische Oberfläche bietet dabei eine große Arbeitserleichterung, da eine Manifest Datei schnell eine Größe
von mehr als 1000 Zeilen erreicht. Wie bei Layout Editor und bei jedem anderen Editor besteht auch hier die
Möglichkeit die XML-Datei direkt zu bearbeiten.
Der Menu Editor und die Resourcen Editoren funktionieren alle nach demselben Prinzip. Sie sind nicht so
umfangreich wie der Layout und Manifest Editor. Sie bieten lediglich die Möglichkeit, vordefinierte Elemente in
den XML-Baum einzufügen. Die Anzahl und Art dieser Elemente ist in den einzelnen Editoren unterschiedlich.
Gemeinsam mit den anderen Editoren bieten auch sie die Gelegenheit die Konfiguration in den XML-Dateien zu
bearbeiten.
Zusammenfassend lässt sich sagen, dass die Editoren dem Entwickler die Arbeit erheblich vereinfachen. Durch
die strukturierte und eingängige Oberfläche ist es möglich auch große Konfigurationsdateien übersichtlich zu
bearbeiten. Dabei ist es in der Regel nicht notwendig direkt in der XML-Datei zu arbeiten, da alle
Funktionalitäten von der Oberfläche abgedeckt werden. Der Layout Editor ist dabei hervorzuheben, da er eine
einfache und intuitive Gestaltung der Anwendung erlaubt.
7.1.3 DDMS Perspective
7.1.2 Editoren
10
Eclipse_als_Entwicklungsumgebung_für_das_Android
DDMS Perspective
DDMS steht für Dalvik Debug Monitor Server. Die DDMS Perspektive ist eine Darstellung des DDMS Tools des
SDKs in Eclipse. Sie erlaubt damit weitreichendes Debugging und Monitoring von Anwendungen innerhalb der
IDE. Eine Perspektive besteht in Eclipse aus Views und Editoren. Die wichtigsten Views in der DDMS
Perspektive sind:
Devices
File Explorer
Eine Übersicht über aktuelle, gestartete, virtuelle Geräte und ihrer Prozesse.
Ermöglicht das Browsen durch das Dateisystem des Geräts.
Möglichkeit Eigenschaften des durch den Emulator simulierten Handys zu ändern (GPS
Emulator Control
Koordinaten, Telefonstatus, Telefonaktionen wie Telefonieren)
Weiterhin gibt es noch Ansichten (Views) zur Speicherkontrolle (Heap, Allocation Tracker), zum Logging (Log
Cat) und zur Threadübersicht (Threads)
In der Devices Übersicht findet man alle laufenden Prozesse der Emulation. Hier besteht die Möglichkeit die
Thread und Speicheranzeige zu aktivieren. Von hier lassen sich auch Prozesse debuggen - vorausgesetzt der
dazugehörige Java Code befindet sich im aktuellen Eclipse Workspace - und stoppen. Um diese Überwachungsund Debuggingfunktionalitäten bereitstellen zu können, greift der DDMS auf die Funktionen der ADB zurück.
Der File Explorer ermöglicht das Durchsuchen des Dateisystem und Hoch- und Runterladen von Dateien auf dem
Endgerät[15]. Mit der Emulator Control lassen sich externe Einflüsse auf die Emulation simulieren. Zu nennen
sind hier insbesondere die Verbindungsgeschwindigkeit des Netzes, die Möglichkeit eingehende SMS und Anrufe
zu simulieren und die Position des GPS zu ändern[16].
Durch das ADT Plugin gibt es in Eclipse einen zentralen Punkt, um die Emulation zu überwachen. Durch die
grafische Oberfläche ist es einfacher die Anwendung zu steuern und Parameter zu ändern. Besonders vorteilhaft
ist, dass dies nicht nur bei virtuellen Endgeräten, sondern auch auf über USB angeschlossenen Android Geräten
ermöglicht wird. Weiterhin hat man durch die GUI jederzeit alle wichtigen Parameter im Zugriff. Allerdings
bietet die Eclipse Integration nicht denselben Umfang wie das Tool. So bietet das Tool die Möglichkeit Dumps zu
erzeugen und Systeminformationen abzufragen. Die Nutzung des ADT Plugins ist aber auf Grund der oben
genannten Debuggingmöglichkeit für Prozesse als sinnvoller zu erachten, als das SDK Tool. Generell wirkt nicht
nur die Eclipse Perspektive ungeordnet, sondern auch das Tool selbst. Sowohl das Tool als auch die Perspektive
vereinen viele hilfreiche Funktionalitäten, die allerdings thematisch kaum zusammen passen (z.B. die Emulator
7.1.3 DDMS Perspective
11
Eclipse_als_Entwicklungsumgebung_für_das_Android
Control und die Loggin Funktion). Dies kann den Nutzer anfangs verwirren.
7.2 Tools des SDK und deren Integration
7.2.1 Android Debug Bridge
Die Android Debug Bridge, kurz ADB, ermöglicht umfassende Debugging Funktionalitäten. Durch die ADB
können Anwendungen auf AVD's wie bei gewöhnlichem Java-Code debuggt werden. Mithilfe des ADT Plugins
ist es möglich die Standard Debug Funktion von Eclipse zu nutzen, was für Entwickler sehr nützlich ist.
Entwickler, die beginnen mit Android zu arbeiten, ersparen sich dadurch viel Einarbeitungszeit und
Konfigurationsaufwand über die Kommandozeile. Ein einfaches Ausführen der geschriebenen Anwendung im
Debug-Modus genügt. Das ADT Plugin nimmt automatisch die erforderlichen Konfigurationen der Komponenten
der ADB vor.
Die Android Debug Bridge besteht aus drei Komponenten[17]:
• Client (wird vom ADT Plugin automatisch erzeugt)
• Server (steuert Kommunikation von Client und Deamon)
• Deamon (läuft in Virtueller Maschine)
7.2.2 Emulator
Android Virtual Device im Emulator
Mit Hilfe des Emulators können virtuelle mobile Endgeräte auf dem Computer ausgeführt und bedient werden.
Damit kann man seine selbst geschriebenen Anwendungen im Betrieb betrachten. Der Emulator stellt alle
Funktionen eines gewöhnlichen Endgeräts bereit. Dies ist beim Entwickeln einer Anwendung besonders hilfreich,
weil der Zugriff auf z.B. die Internetverbindung simuliert werden kann[18].
Des Weiteren ist der Emulator in der Lage gewöhnliche Anwendungsfälle zu simulieren. So kann man z.B. einen
eingehen Anruf simulieren um zu beobachten wie sich die eigene Anwendung verhält. Der Emulator unterstützt
den Entwickler also mit einer Reihe von Debug-Funktionalitäten.
Eine weitere nützliche Option des Emulators ist die Unterstützung von SD-Karten. Es können Dateipfade
eingerichtet werden, die im laufenden System behandelt werden, als wären es in einem Endgerät verwendete
7.2 Tools des SDK und deren Integration
12
Eclipse_als_Entwicklungsumgebung_für_das_Android
SD-Karten.
Die Funktionalitäten des Emulators sind zwar sehr umfangreich. Allerdings gibt es einige Funktionalitäten, die
bei einem echten Gerät vorhanden sind, vom Emulator aber nicht geboten werden. Z.B. ist es nicht möglich
Videos und Fotos mithilfe des Emulators in einem AVD aufzunehmen.
Der Emulator ist in der Lage verschiedene Betriebssystemversionen darzustellen. Er kann also Android OS 1.5
sowie auch Android OS 2.1 darstellen.
Der Emulator kann völlig unabhängig von Eclipse genutzt werden. In Verbindung mit dem ADT Plugin kann
jedoch auf die Debug-Funktionalität von Eclipse in vollem Umfang zugegriffen werden. Android Anwendungen
lassen sich wie jeder andere Java-Code auch mithilfe des Eclipse Debuggers Schritt für Schritt debuggen.
Außerdem können sämtliche Anwendungsfälle (z.B. eingehende Anrufe) direkt über die DDMS Perspektive
gestartet werden. D.h. auch hier werden Kommandozeileneingaben durch das ADT Plugin überflüssig gemacht.
Auch die Verbindungsgeschwindigkeiten des Emulators oder ortsbezogene Informationen können direkt in
Eclipse eingegeben werden. Das ADT Plugin bietet ebenfalls einen Dateibrowser mit dessen Hilfe direkt Inhalte
auf die virtuelle Maschine im Emulator geschoben werden können (siehe auch Abschnitt 6.2.3)
In Eclipse können dem Emulator auch Parameter übergeben werden, die das Verhalten einzelner AVD's
beeinflussen. Ein Nachteil der Integration ist allerdings, dass manche Hardwareinstellungen nach wie vor nur über
die Kommandozeile vorgenommen werden können[19].
7.2.3 Android Virtual Devices
Android Virtual Devices, kurz AVD, bestehen aus Konfigurationsinformationen, mit deren Hilfe sich
verschiedene Endgeräte nachahmen lassen. So kann z.B. die Größe des Speichers oder des Bildschirms gereglt
werden. Doch nicht nur die Hardware Eigenschaften lassen sich festlegen, auch die Version des Betriebssystems
ist konfigurierbar. Die ist hilfreich, wenn eine Anwendung versionsübergreifend bereitgestellt werden soll. Durch
die Möglichkeit AVD's mit verschiedenen Betriebssystem-Versionen auszustatten, kann ein Entwickler
sicherstellen, dass seine Anwendung auf allen Versionen lauffähig ist.
Das Erstellen von AVD's ist seit Version 0.9.3 des ADT Plugins mithilfe einer grafischen Benutzeroberfläche
möglich. Das Tool, welches diese Funktionalität bietet heißt AVD Manager. Diese Benutzeroberfläche des AVD
Managers kann aus Eclipse heraus gestartet werden, ist aber nicht direkt in die Eclipse Benutzeroberfläche
integriert. Für ältere Versionen des ADT Plugins wird ein Werkzeug namens "android" bereitgestellt, welches
ähnliche Funktionalitäten hat, jedoch keinerlei grafische Benutzeroberfläche anbietet.
Das Erstellen eines AVD's wird durch das ADT Plugin stark vereinfacht. Es ist keine Arbeit mit der
Kommandozeile notwendig. Um ein AVD zu erzuegen wird lediglich die Angabe eines Namens und einer
Zielumgebung benötigt.
Die Verwaltung von bereits erzeugten AVD's erfolgt ebenfalls über den AVD Manager. Es ist auch möglich
AVD's zu löschen und zu starten.
Soll ein Programm auf einer virtuellen Maschine getestet werden, so ist dies ebenfalls direkt aus Eclipse möglich.
Wenn man seinen Code ausführen möchte, bietet das ADT Plugin die Möglichkeit den Code als "Android
Application" ausführen zu lassen. Wird diese Option gewählt, wird automatisch der Emulator für AVD's gestartet
und die geschriebene Anwendung auf dem AVD installiert.
7.2.2 Emulator
13
Eclipse_als_Entwicklungsumgebung_für_das_Android
7.2.4 Android Asset Packaging Tool
Das Android Asset Packaging Tool, kurz AAPT, erlaubt dem Nutzer Ziparchive und Ähnliches aus seinem Code
erstellen zu lassen. Wichtiger ist jedoch das Kompilieren von Ressourcedateien. Eclipse baut auf AAPT auf um
Pakete von Source-Code erstellen zu lassen, die dann auf virtuelle Endgeräte geladen werden. Eclipse nutzt
AAPT jedoch nur indirekt. Der Nutzer hat keinen Einfluss auf das Verhalten von AAPT. Hierfür müsste das Tool
direkt aufgerufen werden.
8 ADT Plugin im Einsatz
8.1 Projektanlage
Die Projektanlage läuft denkbar einfach ab. Hierfür wird unter "File->New" ein "Android Project" ausgewählt,
um den entsprechenden Wizard zu starten. Der Wizard unterscheidet sich von einem normalen Java-Projekt
insofern, dass z.B. die Endgerätsversion angegeben werden kann oder Mindestanforderungen an das
Betriebssystem. Außerdem kann der Wizard auf Wunsch sofort eine Activity für die Anwendung erstellen. Eine
Activity stellt die zentrale Komponente einer Android Anwendung dar.
Nachdem diese Eingaben gemacht wurden, kann man ein neues Projekt angelegt werden. Alternativ ist es
möglich, auch ein Testprojekt anzulegen.
Der Wizard nimmt dem Nutzer hier besonders viel Arbeit ab. Die benötigte Ordnerstruktur wird erstellt, ebenso
wie benötigte Dateien. Auch werden die benötigten Abhängigkeiten automatisch eingerichtet. Das hat einen ganz
entscheidenden Vorteil: Nach Abschluss dieses Wizards kann sofort mit der Entwicklung begonnen werden.
8.2 Oberflächengestaltung
Die Oberflächengestaltung für Android erfolgt komplett via XML-Dateien. Wie bereits unter Editoren
beschrieben steht auch für das Bearbeiten dieser XML-Dateien ein umfangreicher Editor zur Verfügung. Dieser
Editor bietet eine Layoutvorschau. Auf diese Layoutvorschau können per Drag & Drop Elemente hinzugefügt
werden. Der XML-Code wird daraufhin automatisch in dem entsprechenden Dokument angepasst. Sobald ein
Element hinzugefügt wurde, kann dessen Position nicht nachträglich editiert werden. Dies ist nur in den
XML-Dateien realisierbar. Ein späteres Ändern der Position von Elementen ist jedoch ein nützliches Feature. Bei
einer Layoutvorschau dieser Art versucht man intuitiv Elemente zu bewegen. Es überrascht, dass dies so nicht
möglich ist.
7.2.4 Android Asset Packaging Tool
14
Eclipse_als_Entwicklungsumgebung_für_das_Android
Layout Editor
In der Layoutvorschau ist eine Auswahl von Geräten vorgesehen. Wird ein bestimmtes Gerät gewählt, wird die
Layoutvorschau auf die Displaygröße des Endgeräts angepasst. Dadurch ist der Entwickler in der Lage seine
Anwendung für die Bildschirme der verschiedenen Endgeräte zu optimieren. Es lässt sich einfach zwischen
verschiedenen Bildschirmlayouts hin- und herschalten. Einige dieser Bildschirmlayouts sind mitgeliefert. Der
Editor erlaubt das Erstellen und Speichern von eigenen Bildschirmlayouts. Um sich die Auswirkungen von
verschiedenen Bildschirmlayouts auf die Anwendung anzusehen, muss keine zusätzliche virtuelle Maschine
installiert werden. Dies spart sehr viel Zeit und ist durch eine reine XML-Konfiguration nicht zu erreichen. Auf
ähnliche Art und Weise lässt sich auch zwischen den Neigungen auswählen. Z.B. kann die Layoutvorschau (wie
bei einem echten Endgerät auch) in die Horizontale gekippt werden. Das erlaubt dem Entwickler sein Layout
sofort für beide Ansichten zu optimieren. Ebenso kann die Layoutvorschau das Aussehen der Anwendung unter
Berücksichtigung verschiedener Themes darstellen.
Eine weitere Besonderheit ist, dass bei einer falschen Kombination von Elementen sofort eine Fehlermeldung
ausgegeben wird. Dadurch können Fehler frühzeitig behoben werden, ohne einen Testlauf im Emulator starten zu
müssen.
Problematisch ist, dass der Editor ausschließlich in die Ansicht, in der normalweweise der Code abgebildet wird,
integriert wird. Dadurch werden die Auswahlbereiche für Elemente sehr klein dargestellt. Trotzdem ist das ADT
Plugin besonders bei der Oberflächengestaltung ein unverzichtbarer Helfer. Die Layoutvorschau mit allen Ihren
Funktionen nimmt dem Entwickler sehr viel Arbeit ab und erlaubt es Ihm zu sehen, wie seine Arbeit hinterher
aussehen könnte. Doch auch verschiedene Displaygrößen, Gerättypen, Themes und Ansichten bleiben hier nicht
unberücksichtigt. Die Tatsache, dass Elemente die bereits platziert sind nicht mehr bewegt werden können,
hinterlässt einen unfertigen Eindruck des Editors. Ferner fällt eine genaue Positionierung und Einsortierung in
z.B. ein Tablelayout in der Layoutvorschau selber sehr schwer. Deswegen erleichtert der Oberflächeneditor die
Arbeit zwar ungemein, erlaubt dem Entwickler aber nicht, keinen XML-Code selber schreiben zu müssen. In den
XML-Dateien für die Layoutgestaltung bietet das ADT Plugin umfangreiche Codevervollstädigungs- und
Fehlererkennungsmechanismen, was die Arbeit in den XML-Dateien stark erleichtert.
8.3 Konfiguration
Die Konfigurationstools des ADT Plugins werden, wie die Tools der Oberflächengestaltung nur als View und
nicht als Perspektive dargestellt, d.h. sie werden nur dort dargestellt, wo normalerweise der Code zu sehen ist. Die
Konfigurationsansicht ist für das Android Manifest und die Ressourcendateien verfügbar. Diese Dateien liegen
genau wie die Layout-Dateien im XML-Format vor. Es werden nicht die XML-Dateien angezeigt, sondern die
Konfigurationsansicht mit einer Benutzeroberfläche, die dem Benutzer die evtl. unübersichtliche XML
8.2 Oberflächengestaltung
15
Eclipse_als_Entwicklungsumgebung_für_das_Android
Konfiguration ersparen soll.
Die Datei AndroidManifest.xml stellt die zentrale Konfigurationsdatei einer Anwendung dar. Ohne diese
Konfigurationsdatei ist ein Kompilieren und Ausführen der Anwendung unmöglich. Unter anderem werden im
Android Manifest alle Activity's deklariert, aus denen die Anwendung besteht.
Mithilfe des ADT Plugins wird beim Anlegen eines neuen Projekts die Android Manifest Datei erzeugt, in der
auch steht, welche Androidversion nötig ist, um die Anwendung auszuführen, welche im Wizard angegeben
wurde.
Die Konfigurationsansicht ist in verschiedenen Reitern logisch unterteilt worden. Diese Unterteilung erhöht die
Übersichtlichkeit der Konfigurationsansicht stark. Neben einem Übersichtsreiter, welcher Einstellungen zum
Android Manifest beinhaltet, erlaubt es auch die XML-Datei zu exportieren und hält weitere nützliche Links unter
anderem zu der Online-Dokumentation bereit. Der Reiter "Application", in dem alle Komponenten der
Anwendung sowie die Anwendungseinstellungen angelegt werden können, ist der wichtigste Reiter und bietet den
größten Funktionsumfang. Um die Übersichtlichkeit bei großen Anwendungen zu verbessern, lassen sich
Komponenten je nach Typ filtern. Problematisch ist jedoch, dass jede Komponente, (z.B. ein Filter) sehr viele
Eigenschaften hat und selber weitere Attribute enthalten kann. Der Bereich zum Editieren dieser Eigenschaften ist
relativ klein gehalten, da nicht die gesamte Fenstergröße genutzt wird. Dadurch muss viel gescrollt werden.
Des Weiteren gibt es die Reiter "Permissions" und "Instrumentation". Im Reiter "Permissions" lassen sich Rechte
für einzelne Pakete der Anwendung erstellen, wohingegen der Reiter "Instrumentation" das Anlegen von
Instrumentations erlaubt. Diese werden genutzt um Tests und Überwachungsmechanismen zu implementieren.
Die Konfigurationsansicht insgesamt bietet umfangreiche Hilfsstellungen bei der Konfiguration und Entwicklung
einer Anwendung, wobei sie selbst an manchen Stellen ähnlich unübersichtlich ist wie die XML-Datei selber.
Besonders aber bei großen Anwendungen spürt man den Vorteil einer grafischen Oberfläche besonders, da es
ansonsten lange dauern kann, bis man eine bestimmte Stelle in der Datei gefunden hat. Interessant sind aber auch
die umfangreiche Codevervollständigung und die Fehlerhinweise, die mit dem ADT Plugin auch in den
XML-Dateien zur Verfügung stehen. Die Dokumentation der AndroidManifest.xml Datei ist sehr umfangreich
und übersichtlich dank der hierarchischen Struktur, die der XML-Datei selber nachempfunden ist.
8.4 Debugging
Eclipse bietet von Haus aus umfangreiche Debuggingmöglichkeiten. Zusammen mit den Tools des Android SDKs
(Android Debug Bridge, DDMS, Traceview und Logcat werden die Möglichkeiten den Ablauf der Anwendung zu
verfolgen erheblich erweitert. Das ADT Plugin integriert diese Tools des SDK in Eclipse, sodass man nicht direkt
mit ihnen arbeitet, sondern Eclipse sie zum Bereitstellen von Debuggingmöglichkeiten verwendet.
Um in Eclipse Android Anwendungen zu debuggen, setzt man an den entsprechenden Stellen im Quellcode
Breakpoints. Wenn man die Anwendung nun im Debugmodus startet, wird beim Ausführen der Anwendung an
den Breakpoints gestoppt und man kann in der gewohnten Eclipse Debug Perspektive die Anwendung
durchgehen. Hier stehen die in Eclipse bekannten Views zu Threads, Variablen, Breakpoints und in zusätzlich der
Log Cat aus den ADT Tools zur Verfügung. Diese Perspektive lässt sich mit weiteren Views der DDMS
Perspektive aufwerten. Außerdem ist es auch möglich in die DDMS Perspektive zu wechseln.
Zusätzlich zu den Debuggingmöglichkeiten in Eclipse werden auf allen Betriebssystemimages des SDKs, welche
im Emulator verwendet werden, die Dev Tools installiert. Dies ist eine Android Anwendung, die das Debuggen
auf dem Gerät vereinfacht. Interessant sind hier unter anderem die Option eine Anwendung zum Debuggen zu
8.3 Konfiguration
16
Eclipse_als_Entwicklungsumgebung_für_das_Android
markieren. Dadurch wird unter anderem verhindert, dass Android Fehlermeldungen ausgibt, wenn zu lange an
einem Breakpoint gewartet wird.
Durch die vollständige Integration des Debugging in Eclipse ergeben sich für alle Java Entwickler, die in Eclipse
arbeiten, keine weiteren Umstellungen für das Debugging. Durch das ADT Plugin ist dieses sehr gut in Eclipse
integriert.
8.5 Signierung
Android unterscheidet zwischen signierten und unsignierten Anwendungen. Unsignierte Programme können in
keinem Android System ausgeführt werden, weder auf einem physischen Gerät noch in einem Emulator. Aus
diesem Grund wird zwischen zwei verschiedenen Signierungsmodi unterschieden, dem debug mode und dem
release mode[20].
Der Debug Mode wird vom ADT Plugin automatisch verwendet, wenn aus Eclipse Anwendungen im Emulator
gestartet werden. Die Build Tools des ADT Plugins erstellen dann einen eigenen Key und signieren die .apk Datei
die bei jedem Build erstellt wird.
Der Release Mode wird benötigt, um die Anwendungen zu verbreiten. Dafür muss die Anwendung mit dem
eigenen Private Key signiert werden. Hier gibt es zwei Möglichkeiten:
• Kompilieren des Quellcodes zu einer unsignierten Anwendung, um diese dann mit dem
Kommandozeilentools Keytool (zum Erstellen eines Private Keys) und Jarsigner zu signieren.
• Exportieren der Anwendung mit dem Export Wizard von Eclipse. Dieser kompiliert und signiert die
Anwendung in einem Prozess. Falls noch kein Private Key vorhanden ist, wird auch dieser noch erstellt.
Das Zertifikat muss nicht von einer Zertifizierungstelle wie zum Beispiel VeriSign ausgestellt werden. Es ist
erlaubt und auch normal, dass selbst generierte Zertifikate genutzt werden.[20]
Nach der Signierung sollte das APK noch mit dem SDK Kommandozeilen Tool zipalign optimiert werden. Dies
macht Eclipse beim Exportieren der Anwendung ebenfalls automatisch[21].
Ohne die Unterstützung von Eclipse wäre das Signieren von Anwendungen ein langer und umständlicher Prozess.
Es müsste manuell ein privater Key erstellt werden, die Anwendung als Release kompiliert und signiert werden
und schlussendlich das APK Package optimiert werden. Mit Eclipse geschieht dies als ein durchgängiger Prozess
mit dem Export Wizard, der in die üblichen Eclipse Export Möglichkeiten eingebunden ist.
8.6 Veröffentlichung
Die Veröffentlichung ist der letzte Schritt bei der Erstellung einer Anwendung. Nachdem die Anwendung
ausreichend getestet und letztlich gepackt und signiert wurde, kann sie für Android Mobil Geräte bereitgestellt
werden. Neben den in Signierung erwähnten Schritten zum Erstellen der .apk-Datei müssen bzw. sollten
zusätzlich noch folgende Schritte erfolgen[22]:
1. Auf einem richtigen Gerät testen
2. EULA (End User License Agreement) hinzufügen
3. Icon und Label für die Anwendung festlegen
4. Logging und Debugging abschalten
8.4 Debugging
17
Eclipse_als_Entwicklungsumgebung_für_das_Android
5. Anwendung Versionieren
6. Kompilieren und Signieren
In vielen Punkten wird man dabei von Eclipse unterstützt. Das Festlegen des Icons und Labels geschieht ebenso
wie das Versionieren in einer XML Datei und wird so mit den beschriebenen Editoren unterstützt.
Versionsnummer und Name werden dabei allerdings nicht automatisch festgelegt, sondern müssen vom Nutzer
manuell gesetzt werden. Das Debugging kann ebenfalls in Eclipse deaktiviert werden. Beim Entfernen der
Loggingaufrufe in den Quelltexten der Anwendung sind die umfangreichen Refactoring Möglichkeiten von
Eclipse hilfreich. Die Unterstützung beim Kompilieren und Signieren wurde im vorhergehenden Abschnitt
dargestellt.
Zum Veröffentlichen der Anwendung bieten sich 2 Möglichkeiten. Zum einen der Android Market, der von jedem
Android Mobilgerät direkt angesteuert werden kann und zum anderen über einen eigenen Web - Server mit einer
URL. Der Android Market ist für eine weite Verbreitung sicherlich vorzuziehen, da er für jeden Benutzer einfach
zu bedienen ist und das Programm automatisch in den Bestand aufgenommen wird. Eine Installation über eine
URL ist für den Benutzer nur mit einer Konfigurationsänderung möglich. Für den Fall, dass es im Android
Market eine Anwendung mit einer ähnlichen Funktionalität gibt, muss man natürlich versuchen, sich von diesem
Programm abzuheben, da im Android Market Bewertungen durch Nutzer möglich sind.
Für die Veröffentlichung im Android Market müssen folgende Vorraussetzungen getroffen werden.
• Der Key, der zum Signieren verwendet wird, muss mindestens bis zum 22.10.2033 gültig sein.
• Die Anwendung muss korrekt versioniert sein
• Icon und Label müssen festgelegt sein
Für diese Vorraussetzungen bietet Eclipse die oben genannten Unterstützungen. Für die eigentliche
Veröffentlichung kann Eclipse nicht zur Hilfe gezogen werden. Allerdings beschränkt sich die Veröffentlichung
auf das Hochladen der apk-Datei und der Eingabe einiger Metainformationen.
Für die Registrierung als Developer fallen im Android Market einmalig Kosten von 25$ an. Für das
Veröffentlichen der Anwendung entstehen dann keine weiteren Kosten. Da 2 / 3 aller Apps im Market kostenlos
sind[23], ist es schwer kostenpflichtige Programme zu verkaufen. Ausgehend von einem Preis von einem 1$ für
eine einfache Anwendung, bleiben 0,70$ für den Entwickler. Die anderen 30 % fließen an den Netzbetreiber.[24]
So muss ein Entwickler von seinem Programm mindestens 36 Exemplare verkaufen, um den Break Even Punkt zu
erreichen. Das ist sicherlich keine große Menge, allerdings ist es schwer 1$ Programme gegen kostenlose
Anwendungen zu platzieren. Daher lohnen sich eher umfangreiche Anwendungen, welche einen Preis von 3$ und
mehr rechtfertigen.
9 Bewertung
Als Einheit betrachtet wird die Arbeit an einem Android Softwareprojekt durch das ADT Plugin fühlbar
vereinfacht. Besonders deutlich wird dieser Vorteil bei der Arbeit mit den Wizards, da diese dem Entwickler am
meisten Arbeit abnimmt. So bleibt es dem Entwickler z.B. erspart Verzeichnisse und Dateien anlegen zu müssen.
Auch die Editoren vereinfachen die Arbeit, allerdings nicht im selben Umfang wie die Wizards. Ihre Stärke ist
eher darin zu sehen, dem Entwickler eine verbesserte Ansicht zu bieten und ihm Hilfestellungen zu geben. Dies
ist besonders für Neulinge auf dem Gebiet von Vorteil. Ein besonderes Augenmerk gilt dem Layout-Editor.
Dieser vereinfacht nicht nur Aufgaben, sondern bietet dem Entwickler völlig neue Möglichkeiten zu entwickeln
und schafft einen deutlichen Mehrwert. Wie bereits angemerkt fehlt ihm die Option platzierte Elemente in der
Layout-Ansicht zu verschieben. Das Fehlen dieses Features ist besonders auffällig und verwunderlich. So muss
8.6 Veröffentlichung
18
Eclipse_als_Entwicklungsumgebung_für_das_Android
der Entwickler vermehrt in die XML-Ansicht wechseln um Elemente zu verschieben.
Der Funktionsumfang des ADT Plugins erstreckt sich über alle wichtigen Funktionalitäten. Es muss an einigen
Stellen zwar nach wie vor auf die Kommandozeile zurückgegriffen werden, allerdings ist dies nur für spezielle
Konfigurationen und nur in Ausnahmefällen nötig.
Grundsätzlich ist festzuhalten, dass die grafische Benutzeroberfläche eingängig ist. Es fällt nicht schwer sich
einzuarbeiten. Zugleich lässt sich klar erkennen, welche Buttons welche Funktion bieten o.ä. Lediglich die
Übersichtlichkeit geht an manchen Stellen verloren. Besonders bei großen Projekten können die in das
Hauptfenster integrierten Editoren etwas überfüllt wirken. Dies ist bei der DDMS Perspektive besser gelöst,
wobei hier die Übersichtlichkeit auf Kosten der vollen Abdeckung des Funktionsumfangs des Emulators und der
Überwachungsfunktionalitäten verloren geht. Dies ist aufgrund der unterschiedlichen Bereiche der Fall, da z.B.
die Emulator-Control sachlogisch nichts mit dem Threadüberwachung zu tun hat. Auch die Editoren hätten besser
in Eclipse integriert werden können, besonders um den vollen Platz des Bildschirms zu nutzen.
An der Stabilität ist nichts auszusetzen. Es waren keinerlei Systemabstürze oder Inkonsistenzen zu beobachten.
Die Ladedauer der DDMS-Perspektive o.ä. ist ebenfalls nicht auffällig. Insgesamt lässt sich also von einem sehr
reifen und stabilen Plugin sprechen.
10 Fazit
Festzuhalten ist, dass Google mit dem ADT Plugin eine gute und stabile Erweiterung für Eclipse bietet. Es
vereinfacht in großem Maße die Entwicklung von Android Anwendungen. Besonders hervorzuheben ist, dass
sowohl die Entwicklungsumgebung als auch das ganze SDK inklusive aller Tools und dem Plugin kostenfrei zur
Verfügung steht, was ein besonderer Vorteil von Android gegenüber den Apple Produkten ist. Die
Entwicklungsumgebung von Apple, XCode, ist dagegen propietär. Außerdem kostet im Gegensatz zu Android
das iPhone SDK 99 USD jährlich[25].
Dadurch, dass Eclipse sehr verbreitet ist und viel Know How durch eine große Community vorhanden ist, ist eine
Einarbeitungszeit für andere Entwickler eher gering. Hinzu kommt, dass Eclipse auf verschiedenen Plattformen
lauffähig ist, wohingegen XCode nur auf dem Mac verfügbar ist. Ein weiterer großer Vorteil Androids ist, dass
die Entwicklung in Java erfolgt und somit die Grundlagen der Programmiersprache von einer großen Anzahl von
Programmierern beherrscht wird. Durch die Verwendung von Java ist Eclipse eine nachvollziehbare Wahl als
unterstützte Entwicklungsumgebung. Bei anderen IDEs muss man immer wieder auf die mitgelieferten
Kommandozeilenprogramme und Tools des SDK zurückgreifen.
Das ADT Plugin wurde zuletzt Ende Mai aktualisiert und liegt nun in der Version 0.9.7 vor[26]. Seitdem wird auch
das Testen mittels des Plugins vereinfacht. Auch in Zukunft ist davon auszugehen, dass die Android Plattform
und im Zuge dessen auch das ADT Plugin stetig weiterentwickelt wird. Denkbar und hilfreich wäre zum Beispiel
eine Unterstützung bei der Datenspeicherung, zum Beispiel in Form eines SQL Lite Explorers oder einfacher
Nutzung von häufig gebrauchten Prozessen durch Bereitstellung von Code Templates in Eclipse.
Das ADT Plugin und Eclipse schaffen eine wichtige Grundlage für eine wachsende Anzahl an Anwendungen für
die Android Plattform und somit auch für eine steigende Verbreitung von Android als Betriebssystem für mobile
Endgeräte.
9 Bewertung
19
Eclipse_als_Entwicklungsumgebung_für_das_Android
11 Literaturverzeichnis
Monographien
Becker et al. (2009)
Künneth (2009)
Louis (2009)
Becker, Arno; Pant, Markus: Android - Grundlagen und Programmierung, 1.
Auflage, dpunkt Verlag, Heidelberg 2009.
Künneth, Thomas: Einstieg in Eclipse 3.5, 3. Auflage, Galileo Press, Bonn 2009
Louis, Dirk: C++: Programmieren mit einfachen Beispielen, 1. Auflage,
Markt+Technik Verlag, München 2009
Internetquellen
Androlib
Apple
Eclipse
Foundation
A
Eclipse
Foundation
B
Eclipse
Foundation
C
Google A
Google B
Google C
Google D
Google E
Google F
Google G
Google H
Google I
Google J
Heise A
Androlib (Hrsg.): Distribution of free and paid apps in Android Market, Androlib, Android Applications and G
http://www.androlib.com/appstatsfreepaid.aspx (25.05.2010 20:12) .
Apple Inc. (Hrsg.): Apple Developer Programs - Apple Developer, o. J.,http://developer.apple.com/programs/
17:14) .
Eclipse Foundation (Hrsg.): About the Eclipse Foundation, o. J., http://www.eclipse.org/org (09.05.2010 17:3
Eclipse Foundation (Hrsg.): Eclipse Downloads, o. J., http://www.eclipse.org/downloads/ (30.05.2010 17:56)
Eclipse Foundation (Hrsg.): Eclipse Plugins, Bundles and Products - Eclipse Marketplace, o. J.,
http://marketplace.eclipse.org/ (11.05.2010 17:53) .
Google Inc. (Hrsg.): ADT Plugin for Eclipse Android Developers, o. J.,http://developer.android.com/sdk/eclip
(27.05.2010 17:16) .
Google Inc. (Hrsg.): Android Debug Bridge Android Developers, o. J.,
http://developer.android.com/guide/developing/tools/adb.html (14.05.2010 12:13) .
Google Inc. (Hrsg.): Android Emulator Android Developers, o. J.,
http://developer.android.com/guide/developing/tools/emulator.html (14.05.2010 10:56) .
Google Inc. (Hrsg.): Android Virtual Devices Android Developers, o. J.,
http://developer.android.com/guide/developing/tools/avd.html (14.05.2010 13:53) .
Google Inc. (Hrsg.): Dalvik Debug Monitor Android Developers, o. J.,
http://developer.android.com/guide/developing/tools/ddms.html (15.05.2010 13:08) .
Google Inc. (Hrsg.): Preparing to Publish: A Checklist Android Developers, o.
J.,http://developer.android.com/guide/publishing/preparing.html (24.05.2010 13:51) .
Google Inc. (Hrsg.): Signing Your Applications Android Developers, o.
J.,http://developer.android.com/guide/publishing/app-signing.html (23.05.2010 13:48) .
Google Inc. (Hrsg.): Tools Overview Android Developers, o. J.,
http://developer.android.com/guide/developing/tools/index.html (14.05.2010 09:33) .
Google Inc. (Hrsg.): What is Android? Android Developers, o. J.,
http://developer.android.com/guide/basics/what-is-android.html (12.05.2010 15:33) .
Google Inc. (Hrsg.): zipalign Android Developers, o. J.,http://developer.android.com/guide/developing/tools/z
(23.05.2010 14:31) .
Heise Zeitschriftenverlag (Hrsg.): heise mobil - Google stellt Android 2.2 vor, 20.05.2010 ,
http://www.heise.de/mobil/meldung/Google-stellt-Android-2-2-vor-1004819.html (24.05.2010 10:24) .
11 Literaturverzeichnis
20
Eclipse_als_Entwicklungsumgebung_für_das_Android
Heise Zeitschriftenverlag (Hrsg.): heise mobil - Twitter bringt offizielle Android-App, 02.05.2010 ,
http://www.heise.de/mobil/meldung/Twitter-bringt-offizielle-Android-App-991420.html (15.05.2010 12:19) .
Ralf Kaumanns: iPhone App Store vs. Android Market ? Welchem Ansatz gehört die Zukunft? — google-oek
Kaumanns 11.01.2010 ,
(2010)
http://www.google-oekonomie.de/iphone-app-store-vs-android-market-%E2%80%93-welchem-ansatz-gehort
(25.05.2010 21:40) .
The NPD The NPD Group, Inc. (Hrsg.): Android Shakes Up U.S. Smartphone Market, 10.05.2010,
Group
http://www.npd.com/press/releases/press_100510.html (16.05.2010 12:18) .
Heise B
12 Fußnoten
1. ? vgl. Eclipse Foundation B
2. ? 2,0 2,1 vgl. Google H
3. ? vgl. The NPD Group
4. ? siehe http://www.android.com/market/
5. ? vgl. Heise B
6. ? vgl. Louis (2009), S. 49
7. ? vgl. Eclipse Foundation A
8. ? siehe http://wiki.eclipse.org/index.php/Rich_Client_Platform
9. ? vgl. Eclipse Foundation C
10. ? vgl. Künneth (2009), S. 14
11. ? vgl. Heise A
12. ? vgl. Google I
13. ? vgl. Becker et al. (2009), S. 34
14. ? vgl. Becker et al. (2009), S. 16
15. ? vgl. Becker et al. (2009), S. 282 ff
16. ? vgl. Google E
17. ? vgl. Google B
18. ? vgl. Google C
19. ? vgl. Google D
20. ? 20,0 20,1 vgl. Google G
21. ? vgl. Google J
22. ? vgl. Google F
23. ? vgl. Androlib
24. ? vgl. Kaumanns (2010)
25. ? vgl. Apple
26. ? vgl. Google A
12 Fußnoten
21
Herunterladen