Analyse der Entwicklungsumgebung für Android

Aus Winfwiki

Wechseln zu: Navigation, Suche

Fallstudienarbeit

Hochschule: Hochschule für Oekonomie & Management
Standort: Düsseldorf
Studiengang: Bachelor Wirtschaftsinformatik
Veranstaltung: Fallstudie / Wissenschaftliches Arbeiten
Betreuer: Prof._Dr._Uwe_Kern
Typ: Fallstudienarbeit
Themengebiet: Tablet Computing
Autor(en): Alexander Schäfer, Michael Kagan
Studienzeitmodell: Abendstudium
Semesterbezeichnung:
Studiensemester: 2
Bearbeitungsstatus: begutachtet
Prüfungstermin:
Abgabetermin:

Inhaltsverzeichnis

1 Abkürzungsverzeichnis

AbkürzungBedeutung
80x8616-Bit-Prozessor von INTEL
AAPTAndroid Asset Packaging Tool
ADBAndroid Debug Bridge
ADTAndroid Development Tools
AIDLAndroid Interface Description Language
APIApplication Programming Interface
APKAndroid Package
AppApplication
AVDAndroid Virtual Device
CPUCentral Prozessor Unit
CVSConcurrent Version System
DDMSDalvik Debug Monitor Service
DVMDalvik Virtual Machine
GPSGlobal Positioning System
GUIGraphical User Interface
IDEIntegrated Development Environment
JPGJoint Photographic Experts Group
JVMJava Virtual Machine
MP3MPEG-1 Audio Layer 3
MPEGMoving Picture Experts Group
OSOperating System
PDAPersonal Digital Assistant
PNGPortable Network Graphics
SDKSoftware Development Kit
XMLExtensible Markup Language

2 Abbildungsverzeichnis

Abbildungs-Nr.Abbildung
Abb. 1Dalvik VM
Abb. 2Android Architektur
Abb. 3Arbeitstitel Logos
Abb. 4Eclipse Logo
Abb. 5NetBeans Logo
Abb. 6IntelliJ IDEA Logo
Abb. 7Emulator

3 Tabellenverzeichnis

Tabellen-Nr.Tabelle
Tab. 1Android Versionsverlauf und Verbreitung
Tab. 2SDK Tools
Tab. 3Wizard Übersicht

4 Einleitung

Der Begriff Android hat sich seit 2007, nicht zuletzt durch den Medienhype und die Vormachtstellung von Google, immer stärker verbreitet. Diese Entwicklung verdanken wir dem technischen Fortschritt und der damit einhergehenden Performancesteigerung auf mobilen Endgeräten. Die Anwendungen werden immer ausgereifter und die Interaktion mit dem Nutzer immer komplexer. Das iPhone von Apple mit dem Appstore und der riesigen Anwendungsvielfalt hat es vorgemacht und Google musste nachziehen. Im ersten Quartal 2010 konnte Google mit Android OS seinen weltweiten Marktanteil an Smartphone Verkäufen gegenüber dem Vorjahr um den Faktor 6 steigern und liegt derzeit auf Platz 4 hinter Symbian, Reasearch in Motion (RIM) und iPhone OS[1]. Für ein so junges Betriebssystem ist diese Entwicklung sehr beeindruckend.

Diese Arbeit befasst sich hauptsächlich mit der Entwicklung von Applikationen für das Android OS. Der Einstieg in die Anwendungsentwicklung gestaltet sich bei Android vergleichsweise einfach. Durch die Anwendungsentwicklung in Java hat sich nach kürzester Zeit eine riesige Community rund um das Projekt gebildet, deren erste Anlaufstelle die Developer Seite[2] für Android ist.

5 Grundlagen

5.1 Android

5.1.1 Android OS

Android OS ist ein von Google ins Leben gerufenes Projekt der Open Handset Alliance, einem Konsortium aus 65 Firmen aus der IT- und TK-Branche[3], mit der Zielsetzung einen offenen Standard für mobile Endgeräte wie z.B. Smartphones, PDAs oder Netbooks zu schaffen[4]. Die Anwendungsentwicklung erfolgt in Java. Fast alle Hardwareressourcen eines Android Geräts stehen jeder einzelnen Anwendung zur Verfügung, wie z.B. Anrufe tätigen, SMS-Funktionalitäten, E-Mail, Internet, Navigation usw [5].

Basis für das Betriebssystem ist der Linux Kernel in der Version 2.6. Hierbei fanden neben der Integration von speziellen Treibern einige Erweiterungen in den Bereichen Power Management und Interprozess-Kommunikation statt [5]. Der Kernel übernimmt Aufgaben wie z.B. Prozessverwaltung, Speicherverwaltung, Dateisystemverwaltung, Gerätesteuerung, Netzwerkbetrieb usw[6]. Der Kernel stellt so eine einheitliche Schnittstelle (API) zur Verfügung, welche unabhängig von der Rechnerarchitektur ist. So kann die Software auf die Schnittstelle zugreifen, ohne die zugrundeliegende Hardware zu kennen [7].

Einen weiteren wichtigen Bestandteil bildet die von Sun Microsystems entwickelte Java Virtual Machine (JVM) namens Dalvik. Sie ist lizenzkostenfrei und erzeugt aus Java-Klassen den sogenannten Dalvik-Bytecode[8].

Abb. 1: Dalvik VM Quelle: Becker/Pant S.17
Abb. 1: Dalvik VM
Quelle: Becker/Pant S.17

Die Dalvik Virtual Machine (DVM) ist mit einer standardmäßigen JVM, die auf einer Stapelmaschine basiert, insofern zu vergleichen, als dass beide Byte-Code ausführen. Einer der wesentlichen Unterschiede ist die zugrundeliegende virtuelle Prozessorarchitektur. Die DVM ist eine auf Registermaschinen basierende virtuelle Maschine. Der übersetzte Quellcode muss einer Umwandlung unterzogen werden. Durch die unterschiedlichen Prozessorarchitektur sind die Kompilate normaler Java-Compiler nicht für die DVM geeignet, dennoch konnte Google auf die bestehenden Java-Entwicklungswerkzeuge zurückgreifen. Konzipiert und geschrieben wurde die DVM von Dan Bornstein mit Beiträgen von anderen Google Ingenieuren. Die DVM ist für Plattformen mit geringen Hardwareressourcen optimiert und so konzipiert, dass mehrere VM-Instanzen gleichzeitig laufen. Dies ist notwendig, da bei Android jedes Programm in einem eigenen Prozess und mit einer eigenen DVM arbeitet. Jede Android-Anwendung läuft in einem eigenen Linux-Prozess und einer eigenen Instanz der VM. Dies bietet unter anderem Vorteile bei der Sicherheit und Fehlerbehandlung von Prozessen bzw. Anwendungen.


Dalvik nimmt die Umwandlung des Stapelmaschinencodes in die Registermaschinencodes schon zur Übersetzungszeit vor. Hierzu wird das Werkzeug dx verwendet, "dx" steht für Dalvik Cross-Assembler, welches sich im Android SDK befindet. Dieses Werkzeug wandelt die regulär erzeugten Java Class-Dateien in das Dex-Format um. Dabei werden mehrere Class-Dateien zu einer Dex-Datei zusammengefasst und einige Optimierungen bezüglich des Speicherbedarfs vorgenommen. Die meisten modernen Compiler generieren als Zwischencode Stapelmaschinencode. Dieser Zwischencode ermöglicht die Abstraktion der Prozessorarchitekrur von der Zielplattform. Der programmiersprachliche Teil wird von der konkreten Prozessorarchitektur getrennt. Da das Prozessormodell der Stapelmaschine besonders einfach ist, wird es üblicherweise für die Übersetzerzwischensprache verwendet. Die meisten realen Prozessoren sind aber heutzutage Registermaschinen, so zum Beispiel die 80x86- und die ARM-Prozessoren. Registerarchitekturen sind oft effizienter, da bei ihnen die CPU über eigene, besonders schnell zugreifbare, Speicherzellen, die Register, verfügen[9].

Libraries
Android bringt C/C++ Funktionsbibliotheken
  • SQLite Datenbank
  • Multimediea Bibliotheken, für das Abspielen und Aufnehmen von Grafik-, Audio- und Videoformaten (JPG, PNG, MPEG, MP3)
  • Android Internetbrowser
  • 2D Grafiksystem
  • 3D Bibliotheken mit Hardware oder Software beschleunigter 3D-Darstellung
  • FreeType, zur Darstellung von Vektor und Bitmap Schriftarten
  • Oberflächen Manager

Als Entwickler kommt man mit diesen Bibliotheken nicht in Berührung, da sie durch die Laufzeitumgebung gekapselt sind. [10].

Android Runtime

Android enthält eine Reihe von Bibliotheken, die die meisten der verfügbaren Funktionen aus den Bibliotheken der Programmiersprache Java zur Verfügung stellen. Jede Android-Applikation läuft in einem eigenen Prozess mit seiner eigenen Instanz, der DVM. Die DVM bringt die wichtigsten Java APIs mit, eigene JAR-Bibliotheken können mit einer Anwendung mitgeliefert werden.

Application Framework

Entwickler haben über das Anwendungsframework vollen Zugriff auf die Grundbausteine und APIs, mit denen Andoid-Anwendungen arbeiten. Die Applikations-Architektur wurde entwickelt, um die Wiederverwendung von Komponenten zu vereinfachen. Jede Anwendung kann ihre Fähigkeiten veröffentlichen und eine beliebige andere Anwendung kann diese dann nutzen. Derselbe Mechanismus ermöglicht es, dass Komponenten durch den Anwender ausgetauscht werden. Dies führt zu einer einzigartigen Besonderheit von Android: alle Anwendungen können über simple Strukturen miteinander verknüpft werden. Beispiel: eine neue Anwendung soll die Funktionalität bieten, einen Kalendereintrag auszuwählen. Ohne selbst etwas programmieren zu müssen, wählt man in der Kalenderanwendung den passenden Kalendereintrag aus und die aufgerufene Anwendung liefert mir den ausgewählten Eintrag zurück. So ist es möglich auf bestehende Funktionalitäten anderer Anwendungen zuzugreifen und in eine neue Anwendung zu integrieren [8].

Applications

Die Android-Plattform enthält bereits die wichtigsten Applikationen für ein Smartphone, wie z.B. Internetbrowser, Telefonie, Kontaktverwaltung, Kalenderfunktionalitäten, usw. Die nutzbare Programmiersprache für alle Android-Anwendungen ist ausnahmslos Java. Eine Integration für C/C++ ist bisher nicht geplant.

Entwicklungsstand

Release des ersten Android SDK war der 12. November 2007. Um die Android Plattform zu fördern hat das Unternehmen Google im Jahr 2007 von Januar bis August die Android Developer Challenge ins Leben gerufen. Es wurden die besten Anwendungen aus verschiedenen Kategorien ausgezeichnet und mit Preisgeldern belohnt. Insgesamt gab es bis zu 10 Millionen US Dollar zu gewinnen [11]. Es wurden insgesamt 1788 Projekte aus über 70 Ländern eingereicht. Viele Gewinner nahmen mit Anwendungen die standortbezogene Daten per GPS nutzten am Wettbewerb teil. Am 28. August 2008 wurde der Android-Market vorgestellt und am 23. September 2008 das Android SDK 1.0 veröffentlicht. Google versprach, dass alle Anwendungen, die für die Version 1.0 entwickelt wurden, zu den folgenden Versionen kompatibel bleiben. Am 21. Oktober 2008, einen Tag vor dem Verkaufsstart des G1 in den vereinigten Staaten, wurde der Kernel-Quellcode auf kernel.org veröffentlicht. Ab diesem Zeitpunkt sind alle Pakete vollständig Open-Source und können von jedem weiterentwickelt, überprüft und korrigiert werden.

Versionsverlauf
Abb. 3: Arbeitstitel LogosZusammengestellt von http://www.android.com/media und http://www.androidcentral.com
Abb. 3: Arbeitstitel Logos
Zusammengestellt von http://www.android.com/media und http://www.androidcentral.com

Die Versionen erscheinen in unregelmäßigen Abständen. Google vergibt seit Version 1.5 die Arbeitstitel in Form einer Süßspeise in alphabetischer Reihenfolge. Die Verbreitungswerte stammen aus einer zweiwöchigen Auswertung der Market Zugriffe zwischen dem 18. Mai und dem 1. Juni 2010[12].

Version Veröffentlichung Verbreitung
Tab. 1: Android Versionsverlauf und Verbreitung[13]
1.1 Februar 2009 0,1%
1.5 - "Cupcake" April 2009 27,6%
1.6 - "Donut" September 2009 26,8%
2.0 - "Eclair" Oktober 2009 0,4%
2.1 - "Eclair" Januar 2010 45,1%
2.2 - "Froyo" Mai 2010 -

5.1.2 Android SDK

Das Software Development Kit (SDK) von Android ist Open Source und beinhaltet eine Reihe von Tools die der Entwicklung von Android-Anwendungen dienen. Es beinhaltet z.B. einen Emulator, welcher zum Testen von neu entwickelten Anwendungen dient. Der Android Emulator simuliert die gesamte Hard- und Software und bietet eine Auswahl von verschiedenen mobilen Geräten. Dadurch ist es möglich die neu entwickelten Anwendungen ohne die Verwendung eines Geräts zu testen. Neben der gesamten API Dokumentation enthält das SDK auch Funktionen für die Fehlersuche zur Laufzeit, das Debugging. Außerdem ist im SDK auch das Android Development Plug-in für Eclipse enthalten. Weitere Bestandteile des SDK sind ein Adressbuch, ein spezielle Version von Google Maps sowie ein Internet Browser. Damit das Testen der Anwendung auf dem passenden virtuellen Handymodell erleichtert wird, werden die sogenannten Android Virtual Devices (AVD)-Konfigurationen des Emulators eingesetzt. AVDs sind Emulator-Konfigurationen, die die Einstellungen für den Emulator beinhalten.

Es können beliebig viele AVDS auf dem Entwicklungssystem erstellt werden. Zusätzlich zu den Optionen in einer AVD Konfiguration können Sie auch im Emulator selbst per Kommandozeilenoperation beim Start oder durch die Verwendung der Emulator-Konsole Verhaltensweisen oder Eigenschaften zur Laufzeit ändern. Der Emulator enthält auch eine Reihe von Debugging-Funktionen, welche die simulierte Anwendung zwecks Fehleranalyse unterbricht. Das Android SDK ist als Open Source unter den am häufigsten vertretenen Betriebssystemplattformen lauffähig. Es wird beispielsweise für alle Windows Systeme, Linux und Mac OS angeboten. [14]

Im Verlauf dieser Fallstudie richtet sich das Augenmerk auf die wesentlichen Bestandteile des SDK. Der Vollständigkeit halber folgt nun eine Auflistung aller im SDK enthaltenen Tools:

Bezeichnung Beschreibung
Tab. 2: SDK Tools[15]
Android Development Tools Plugin Eclipse Plug-in
Android Emulator Emulator
Android Virtual Devices (AVDs) Konfiguration der AVDs
Hierarchy Viewer Optimierung des User Interface
layoutopt Analyse des Layout
Draw 9-patch Grafiken erstellen
Dalvik Debug Monitor Service (ddms) Debugging und Steuerung des Emulators
Android Debug Bridge (adb) Steuerung des Emulators oder Endgeräts
Android Asset Packaging Tool (aapt) Erstellung von APK-Files
Android Interface Description Language (aidl) Codeerzeugung z.B. für Dienste
sqlite3 Zugriff auf interne SQL Datenbank
Traceview Logviewer
mksdcard Erstellung von virtuellem Speicher
dx Wandelt Class-Bytecode in Android Bytecode um
UI/Application Exerciser Monkey Simuliert Nutzung durch zufällig generierte Aktionen
android Compiliert Programme und verwaltet AVDs
zipalign Optimiert fertig signierte APK-Dateien

5.2 Entwicklungsumgebung

Eine Entwicklungsumgebung, auch als integrierte Anwendungsumgebung (IDE) bezeichnet, ist eine Software die Programmierer bei der Entwicklung von Anwendungen unterstützt. Zur Grundausstattung von Entwicklungsumgebungen zählen folgende Komponenten:

  • Texteditor (Meistens mit Syntax-Highlighting um die Lesbarkeit zu erhöhen.)
  • Compiler (Übersetzt den Quellcode in eine für das Zielsystem verständliche Sprache. Bei Java Compilern handelt es sich um den Byte-Code.)
  • Linker (Verbindet eigenständige Programmmodule zu einem ausführbaren Programm.)
  • Debugger (Wird benötigt um Fehler während der Laufzeit des Programms festzustellen und zu beseitigen.)

Außerdem können eine Reihe weiterer Funktionen in die IDE integriert werden um die Softwareerstellung zu vereinfachen. Darunter fallen unter anderem:

  • Versionsverwaltung (Dient der Protokollierung, Archivierung und ermöglicht das gleichzeitige Arbeiten von mehreren Entwicklern an einem Projekt.)
  • Projektmanagement (Automatisierte Erstellung von Ordnerstrukturen.)
  • GUI-Editoren (Ermöglichen die Gestaltung von grafischen Elementen.)

Die integrierten Entwicklungsumgebungen kamen Mitte der 80er Jahre auf den Markt und veränderten die bis dahin übliche Praxis die einzelnen Komponenten händisch auf Kommandozeilenebene auszuführen. Heutzutage gibt es eine Vielzahl von IDEs. Beliebt sind vor allem solche, die modular aufgebaut sind und demzufolge mit relativ wenig Aufwand an die persönlichen Bedürfnisse angepasst werden können.

Da Android OS auf Java basiert werden im Folgenden 3 beliebte IDEs betrachtet, die sich für die Entwicklung von Android-Anwendungen eignen.

5.2.1 Eclipse

Abb. 4: Eclipse Logowww.eclipse.org
Abb. 4: Eclipse Logo
www.eclipse.org

Die Eclipse IDE ist eine freie Entwicklungsumgebung die derzeit von der Eclipse Foundation verwaltet wird. Es handelt sich dabei um eine gemeinnützige Organisation, die 2004 von IBM und dem Eclipse Konsortium gegründet wurde[16].

Dem ging eine langjährige Entwicklung voraus. Ursprünglich wurde das Produkt VisualAge von IBMs Tochtergesellschaft Object Technology International entwickelt. Doch schon bald stellten die Entwickler fest, dass die Akzeptanz und Erweiterbarkeit des Produkts durch die fehlende Modularität und die Closed-Source Philosophie eingeschränkt ist[17].

Inzwischen gibt es Eclipse in vielen Versionen mit angepasster Funktionsauswahl für die unterschiedlichsten Anwendungsgebiete. Die Besonderheiten sind der modulare Aufbau und die große Community, die solche Module und Plug-ins entwickeln. Es gibt eine Vielzahl von Entwicklern aus dem privaten und dem gewerblichen Bereich. Wie aus der Executive Summary 2009 hervorgeht gibt es über 100 Open Source Projekte, 1000 Beitragende, 170 Unternehmensmitgliedschaften und tausende Unternehmen, die Eclipse für die Anwendungsentwicklung verwenden[18].

Die Open Handset Alliance empfiehlt bei der Anwendungsentwicklung das ADT Plugin für Eclipse zu verwenden. Dieses Plug-in erweitert den Funktionsumfang von Eclipse und ermöglicht so auf einfache Weise Android-Projekte zu realisieren. Die Möglichkeiten und Funktionalitäten vom ADT Plug-in werden im Rahmen dieser Fallstudie im Abschnitt „Szenario“ näher betrachtet[19].

Seit 2006 erscheinen die Eclipse Versionen in einem jährlichen Turnus um Versionskonflikte zwischen den Projekten zu vermeiden. Die aktuelle Version trägt die Versionsnummer 3.5 SR2 alias „Galileo“ [20].

5.2.2 NetBeans

Abb. 5: NetBeans Logowww.netbeans.org
Abb. 5: NetBeans Logo
www.netbeans.org

Der Begriff NetBeans bezeichnet zugleich die NetBeans Plattform als auch die darauf basierende NetBeans IDE. In einem Interview für das JAXenter Portal verglich Aljoscha Rittner (NetBeans Dreamteam Member) das Framework mit einem Betriebssystem für Plug-in-Module[21]. Die NetBeans IDE ist eine plattformunabhängige und komplett in Java geschriebene Entwicklungsumgebung.

Entwickelt von einigen Studenten wurde das Projekt von Sun Microsystems aufgekauft und im Jahr 2000 als Open-Source-Projekt veröffentlicht. Sie ist modular aufgebaut und unterstützt neben Java unter anderem auch C, C++ und weitere dynamische Sprachen wie z.B. PHP. Durch Plug-ins, die auch in Paketen zusammengefasst werden, ist es möglich die IDE um weitere Sprachen oder um ganz neue Entwicklungsbereiche zu erweitern. Als Sponsor und Unterstützer dient neben der NetBeans Community und den Community Partners auch die Softwareschmiede Oracle[22].

Für die Entwicklung von Android-Anwendungen unter NetBeans existiert das NBAndroid Projekt von der Projekt Community Kenai[23]. Entwickelt von Martin Adamek hat das Projekt inzwischen 159 Mitglieder[24]. Die Installation verläuft wie alle anderen Plug-in Installationen bequem über das NetBeans Auto Update Center und die weitere Vorgehensweise ist ausführlich auf der Projektseite beschrieben [25]. Die Zielgruppe für das Plug-in sind Entwickler die bereits NetBeans einsetzen und auf die Android-Entwicklung umsteigen wollen. Dem Plug-in fehlen im Vergleich zum ADT Plug-in für Eclipse einzelne Funktionen und die kleinere Community wirkt sich deutlich auf die Entwicklung und Fehlerbeseitigung bei NBAndroid aus. Doch grundsätzlich kann man sagen, dass die Entwicklung von erfolgreichen Android-Anwendungen durchaus mit dieser IDE realisierbar ist.

Die neuste NetBeans IDE trägt die Versionsnummer 6.8.

5.2.3 IntelliJ IDEA

Abb. 6: IDEA Logowww.jetbrains.com
Abb. 6: IDEA Logo
www.jetbrains.com

IntelliJ IDEA von JetBrains ist eine kommerzielle Entwicklungsumgebung die im Januar 2001 erschienen ist. Inzwischen bei der Version 9.0.2 (Codename: Maia) angelangt existiert auch eine sogenannte Community Edition die Open-Source ist [26]. In der kostenlosen Community Edition fehlen einige Funktionen und die unterstützten Programmiersprachen sind auf Java, HTML/XHTML, XML/XSL und Groovy beschränkt[27].

Die Entwicklungsumgebung ist so wie die anderen hier vorgestellten ebenfalls modular aufgebaut und ermöglicht so die Erweiterbarkeit durch Plug-ins. Diese Plug-ins werden von JetBrains und von der Community entwickelt. JetBrains stellt auf der Website eine ausführliche Informations- und Kommunikationsplattform bereit, bietet Webinare an und führt jährlich einen Entwicklerwettbewerb durch[28].

IntelliJ IDEA gilt als Vorreiter im Bereich des Refactorings. Damit ist die Umgestaltung von Quellcode ohne Auswirkung auf das Programm-Verhalten gemeint. Das Refactoring dient der Verbesserung der Lesbarkeit, Wartbarkeit und Erweiterbarkeit[29]. Ein weiterer Vorteil dieser IDE ist die Möglichkeit sämtliche Aktionen über die Tastatur auszuführen[30].

Der Android Support ist seit Maia integriert und bietet nun auch Debugging Support. So gibt es auch die Möglichkeit die Logfiles im sogenannten Logcat darzustellen[31]. Zusammengefasst ist IntelliJ IDEA eine sehr gute IDE, die sich aber auf Grund ihrer erst jungen Open-Source Geschichte gegenüber der Konkurrenz behaupten muss. Dies belegt auch eine Umfrage im interaktiven IDE-Vergleich vom JAXenter Portal. Dort fand eine Umfrage statt an der sich 2107 Entwickler beteiligten. 44% der Leser wählten Eclipse zur beliebtesten Java IDE, 40% NetBeans und nur 14% stimmten für IntelliJ IDEA [32].

6 Entwicklungsszenario Eclipse mit ADT Plug-in

Wie bereits unter 5.2.1 erwähnt lautet Googles Empfehlung bei der Anwendungsentwicklung das Eclipse Plug-in ADT zu verwenden. Diese Vorgabe soll im folgenden Abschnitt einer detaillierten Betrachtung unterzogen werden. Denn es handelt sich lediglich um eine Vorgabe und dem Entwickler steht es frei die Tools aus dem Android SDK auf andere Art und Weise einzusetzen. Dies ist zwar umständlicher, aber alle Tools sind gut dokumentiert und für einen Anwendungsentwickler sollte dies keine Hürde darstellen.

Für eine gänzliche Analyse müssen die beiden Komponenten Eclipse und ADT Plug-in einzeln für sich aber auch im Zusammenspiel miteinander betrachtet werden. Als Grundlage für die Betrachtung gelten die allgemeinen Vorgaben für eine ergonomische Software: Aufgabenangemessenheit, Selbstbeschreibungsfähigkeit, Steuerbarkeit, Fehlertoleranz, Erwartungskonformität, Individualisierbarkeit und Lernförderlichkeit [33]. Besonderes Augenmerk richtet sich auf die intuitive Bedienbarkeit, denn der größte Vorteil ist die Zeitersparnis und diese sollte sich auch relativ früh bemerkbar machen. Ein weiterer wichtiger Punkt ist die Stabilität. Nichts ist schlimmer als kurz vor Fertigstellung eines Projektes wegen einer instabilen Anwendung Datenverlust zu erleiden. Des Weiteren wird der Service & Support, der eindeutig als Bestandteil einer Software betrachtet werden muss, untersucht.

6.1 Eclipse

Die Enwicklungsumgebung Eclipse ist so wie Andoid ein Open Source Projekt. Das Ziel ist es eine umfassende und stabile Entwicklungsplattform zu schaffen, die sowohl für private als auch für kommerzielle Zwecke genutzt werden kann. Die Eclipse Plattform, die eine erweiterbare auf Java basierende IDE darstellt, zeichnet sich besonders durch das einfache integrieren von zusätzlichen externen Plug-ins aus. In der Basisversion stellt die Plattform nur einen relativ kleinen Umfang an Funktionen zur Verfügung. Durch die Plug-ins wird der Individualisierungs-Charakter gestärkt.

Durch das schlanke Grundgerüst an Basisfunktionen bietet sich Eclipse in den unterschiedlichsten Anwendungsbereichen an. So ist Google, wie viele andere namhafte Hersteller auch, dazu übergangen eigene Produkte mit der Eclipse IDE zu entwickeln und durch Plug-ins wie das ADT zu erweitern.

Eclipse strukturiert Projekte in logische Sichten, den sogenannten "Perspectives". In einer Perspective werden zusammenhängende Funktionen zu Funktionseinheiten zusammengefasst. Dies können Editoren, Menüs oder sonstige Ansichten sein. Perspectives sind immer mit einer speziellen Aufgabe verbunden. Zum Editieren von Java Quelldateien verwendet man die Java-Perspective, zum Debuggen verwendet man die Debug Perspective.

Der aktuell geschriebene Quellcode wird in Eclipse während der Eingabe geprüft und mögliche Fehler sofort kenntlich gemacht. Dadurch wird die Fehleranalyse und Korrektur stark vereinfacht. Außerdem werden sämtliche Fehler übersichtlich dargestellt und mit zusätzlichen Informationen zur möglichen Fehlerursache versehen. Durch einen Doppelklick auf den markierten Fehler lassen sich vorgeschlagene Fehlerbeseitigungen auswählen. Dies kann auch direkt im Quellcode durch die Mouse-Over Funktion erfolgen. Hat man sich z.B. in einem Methodennamen vertippt werden passende Alternativen vorgeschlagen. Wenn z.B. der Methodenname "aufnemen" eingegeben wird, schlägt Eclipse automatisch den richtigen Methodennamen "aufnehmen" vor. Dies setzt voraus, dass die Methode aufnehmen existiert.

Bei der Eingabe eines Statements, zeigt Eclipse alle möglichen Vervollständigungen an. Dies erlaubt das Anlegen von eigenen "Code-Templates“, was eine Erhöhung der Eingabegeschwindigkeit zur Folge hat.

Eclipse bietet eine Suchfunktion die über einen Suchdialog realisiert wird. Bei der Suche innerhalb einer Java-Klasse ist es möglich nach Deklarationen von Attributen, Klassen oder Methoden zu suchen. Die Suchergebnisse werden in einer Übersicht dargestellt.

Refactorings sind Änderungen an der internen Struktur von Software ohne, dass die Funktionalität geändert wird. Refactoring sorgt für eine einfachere Wartung und für ein besseres Verständnis des Quellcodes. Ziel ist es die Lesbarkeit des Quellcodes durch eine Verbesserung der Darstellungsweise zu erhöhen. Dies vereinfacht auch anschließend die Fehleranalyse.

Bei CVS (Concurrent Versions System) handelt es sich um ein Tool, dass eine Versionsverwaltung des Quellcodes zur Verfügung stellt. Mehrere Mitarbeiter die an einem Projekt arbeiten können so zeitgleich Änderungen einstellen und das CVS verbindet die Änderungen, soweit möglich, miteinander. Bei Fehlern ist ein manueller Eingriff erforderlich. Das CVS System hat sich bei kollaborativen Arbeiten durchgesetzt.

Der Debugger ermöglicht es eine Anwendung zu einem bestimmten Zeitpunkt an einem sogenannten Breakpoint anzuhalten und die Variablen oder Objekte auszuwerten. In der Debug Perspective erhält man außerdem eine Übersicht über den aktuellen Zustand der virtuellen Maschine.

Mit dem Test Tool JUnit werden durch Wizards Testszenarien erstellt und ausgeführt. Eine grafische Auswertung anhand von Testberichten ist ebenfalls integriert. Dadurch wird die Qualitätssicherung vereinfacht und so die Qualität der Software erhöht um spätere Wartungskosten zu senken. Das Build Tool Ant welches selbst auf Java basiert und mit dessen Hilfe plattformunabhängig Java Quellen übersetzt werden können ist das Java Pendant zu „make“. Einzelne Aufgaben lassen sich durch einen Wizard auswählen und ausführen. So ist es für jede Personen die an einem gemeinsamen Projekt arbeitet zu jeder Zeit möglich das eigene Projekt auf seinem Rechner aufzurufen und weiter zu entwickeln[34].

6.2 ADT Plug-in

Mit dem Android Development Tool (ADT) Plug-in bietet Google ein Erweiterungspaket für Eclipse an. Das ADT-Plug-in stellt zusätzliche Funktionalitäten zur Verfügung wie z.B. Editoren und Wizards. Es ermöglicht den Zugriff auf andere Android Development Tools aus der Eclipse IDE. Zum Beispiel den Zugriff auf Funktionen des Dalvik Debug Monitor Server (DDMS) Tools. Damit ist es möglich Screenshots zu verwalten, Port-Forwarding zu betreiben oder Breakpoints zu setzen. Es automatisiert und vereinfacht den Entwicklungsprozess einer Android-Anwendung. Es gibt einen Android-Manifest-Editor, der Hilfestellung zum Schreiben gültiger XML-Dateien gibt[35].

Im folgenden Abschnitt wird genauer auf die einzelnen Funktionen eingegangen[19].

6.2.1 Editoren

Durch verschiedene Editoren mit einer grafischen Oberflächengestaltung die das ADT Plug-in zur Verfügung stellt, wird das Editieren der XML-Dateien ermöglicht. Es folgt eine Auflistung der unterschiedlichen Editoren:

  • Android Menu Editor:

Über eine grafische Bedienoberfläche ist der Aufbau von verschiedenen Menüstrukturen möglich.

  • Android XML Ressource Editor:

Bietet die Möglichkeit verschiedene Elemente in einer XML-Ressource Datei zu organisieren.

  • Android Manifest Editor:

Im Manifest Editor wird die Android Manifest XML Datei editiert. Es lassen sich über eine grafische Bedienoberfläche Anpassungen an Einstellungen zu den verschiedenen Berechtigungen vornehmen. Außerdem können Einstellungen an den Hardwarekomponenten, wie z.B. die Aktualisierungsgeschwindigkeit des GPS-Empfängers durchführen.

  • Android Layout Editor:

Der Layout Editor ermöglicht eine individuelle Anpassung der Bedienoberflächen für die verschiedenen Handymodelle, z.B.: Menügröße, Auflösung, etc. Es existieren sowohl selbst zu definierende Gestaltungselemente als auch vorgegebene Standardelemente in Form von Textfeldern, Buttons oder animierten Symbolen.

Fazit

Durch die grafische Bedienoberfläche der Editoren wurde das Bearbeiten der unter Umständen sehr umfangreichen Xml-Dateien vereinfacht. Durch die zusätzliche Möglichkeit in jedem Editor auch direkt im Quellcode der XML-Datei zu arbeiten ist es aber auch möglich Änderungen direkt vorzunehmen, die über die grafische Bedienoberfläche nicht möglich sind.


6.2.2 Wizards

Es existieren eine Reihe von Wizards. Dies sind Assistenten, die den Nutzer durch mehrere Dialoge führen und meistens Hinweise für die Dateneingabe enthalten. Sie erleichtern die Befehlseingabe und minimieren falsche Eingaben.

Tab. 3: Wizard Übersicht
Android XML File Erstellt per Wizard XML-Dateien, die der Anpassung von Android Anwendungen dienen.
Android Test Project Wizard Legt automatisch Testprojekte für eine Android Anwendung an.
Android Project Wizard Erstellt automatisch die Ordnerstruktur eines neuen Projektes und legt zudem die erste Activity an.
Fazit

Die zusätzlichen Android Wizards unterstützen und erleichtern den Umgang bei der Erstellung von neuen Android Anwendungen. Der Android XML File Wizard erleichtert das Arbeiten und Erstellen der XML-Konfigurationsdateien. Dadurch braucht man nicht in den Quellcode der XML Datei zu gehen um diesen zu bearbeiten.

6.2.3 DDMS Perspective

Die DDMS (Dalvik Debug Monitor Server) Perspective ist im Android SDK enthalten und ermöglicht die Protokollierung, Beobachtung oder Überwachung von Prozessen der Android Anwendung innerhalb von Eclipse. Es existieren viele verschiedene Ansichten, sogenannte „Views“. Innerhalb der Device View werden alle laufenden Prozesse der Anwendung angezeigt. Außerdem ist es möglich die angezeigten Prozesse zu debuggen. Durch den File Explorer ist ein Datenaustausch zwischen Endgerät und Rechner möglich. Die Emulator Control View ermöglicht es Testfälle zu erstellen. Diese simulieren Auswirkungen auf das Gerät wie z.B. Datenaustausch, schwankende Bandbreiten, Videoübertragung, etc [36].


6.2.4 Emulator

Abb. 7: Emulator
Abb. 7: Emulator

Das Android SDK enthält einen Emulator für mobile Geräte. Es wird ein virtuelles mobiles Gerät erzeugt, welches auf dem Rechner läuft. Der Emulator ermöglicht das Entwickeln und Testen von Prototyp Android Anwendungen, ohne dass ein physisches Endgerät benötigt wird. Es können so verschiedene Testfälle simuliert werden, wie z.B. Anrufe oder GPS-Navigation.

Der Android-Emulator simuliert alle Hardware und Software-Eigenschaften des ausgewählten mobilen Geräts. Dies beinhaltet auch die passende grafische Bedienoberfläche bestehend aus einer Vielzahl von Funktionstasten, die per Maus oder Tastatur bedient werden können. Der Emulator enthält auch eine Reihe von Debugging-Funktionen wie z.B. eine Konsole mit deren Hilfe die simulierte Anwendung zu einem bestimmten Zeitpunkt angehalten werden kann. Einschränkungen bestehen darin, dass ein „reales“ Benutzen der Funktionen wie z.B. Telefonate tätigen, Emailversand usw. nicht möglich ist[37].

6.2.5 Android Virtual Device

Durch die Android Virtual Device (AVD)-Konfigurationen werden die Emulatorfunktionen erweitert und das Testen der Andoid-Anwendung unterstützt. Mit Hilfe der AVD ist es möglich die Konfigurationen von Emulator Optionen zu verändern. Es können beliebig viele AVDs erzeugt werden. Zusätzlich zu den Möglichkeiten die die AVD Konfiguration bietet, kann auch per Kommandozeilen-Operation die Eigenschaft einer Android Anwendung verändert werden.

Erstellt werden AVDs mithilfe des AVD Managers welcher im ADT Plug-in enthalten ist und über eine grafische Bedienoberfläche verfügt. Durch die GUI entfallen die Kommandozeilen Operationen und das Arbeiten mit einer AVD wird vereinfacht[38].

Jede AVD setzt sich zusammen aus:

  • Einem Hardware-Profil, in dem man spezielle Optionen für die Hardware-Eigenschaften des virtuellen Handytyps definieren kann. So kann man z.B. festgelegen, ob das Gerät eine UMTS-Karte hat, ein Touchpad oder Tastenfeld verwendet oder die Größe des Arbeitsspeichers festlegen.
  • Einer Zuordnung zu einem speziellen System-Image. Es kann festgelegt werden, welche Version der Android-Plattform auf dem virtuellen Gerät ausgeführt werden soll.
  • Einem Oberflächeneditor. So lässt sich das Aussehen und Verhalten der Bedienoberfläche anpassen. Es steht auch eine Skin-Auswahl zur Verfügung.
  • Einem Speicherplatz in der Entwicklungsumgebung, zum Abspeichern der einzelnen Konfigurationen, wie z.B. User Einstellungen, installierte Android Apps, etc.

6.2.6 Android Debug Bridge

Die Android Debug Bridge ermöglicht durch zahlreiche Debbugging Funktionen, dass eine Android Anwendungen die in einer AVD läuft wie normaler Java-Code gedebuggt werden kann. Die Debugging Funktion kann durch ein ausführen des sogenannten Debug Modus gestartet werden. Durch das ADT Plugin werden alle Konfigurationen automatisch ausgeführt. Dadurch dass die Debugg Funktion von Eclipse genutzt wird, erspart dies dem Anwender zum einen Eingewöhnungszeit und zum Anderen die Arbeit per Kommandozeile[39].

6.2.7 Fazit

Das ADT Plug-in für Eclipse ermöglicht eine umfassende Überwachung und Analyse des emulierten Endgeräts. Innerhalb der GUI ist eine intuitive Bedienung möglich. Sie vereint alle wichtigen Funktionen. Durch die zahlreichen Funktionen wirkt das ADT-Plug-in zunächst zwar unstrukturiert, doch schon nach geringer Einarbeitungszeit ermöglicht es eine deutliche Zeitersparnis.

6.3 Bewertung

Als Neueinsteiger in die Anwendungsentwicklung wird man von den vielen Funktionen der Eclipse IDE erschlagen. Doch nach einiger Zeit kristallisieren sich die wichtigsten Funktionen heraus und die Produktivität steigt deutlich. Das ADT Plug-in ermöglicht eine starke Vereinfachung der Arbeitsabläufe für die Entwicklung von Android Apps. Die offensichtlichsten Funktionen wie die Codevervollständigung oder die Fehlererkennung möchte man nach kurzer Zeit nicht mehr missen. Die Integration des ADT Plug-in ist gut gelungen und harmonisiert nahtlos mit den vorhandenen IDE Funktionen. Durch das durchgängige Wizard-Konzept werden Fehlerquellen minimiert und die Arbeit beschleunigt. Der Emulator ist vielseitig konfigurierbar und deckt sämtliche Testszenarien ab. Dennoch sollten Anwendungen vor Veröffentlichung umbedingt auf einem echten Gerät getestet werden. Die Debugging Funktionen können sowohl für den Emulator als auch für ein an den PC angeschlossenes Gerät genutzt werden.

Abschließend lässt sich festhalten, dass die Anwendungsentwicklung für Android mit dem ADT Plug-in für Eclipse erfolgen sollte. Der zeitliche Lernaufwand ist im Vergleich zur erzielbaren Zeitersparnis sehr gering. Die Stabilität kann als "Sehr gut" gewertet werden. So gab es in der Analysephase keinen einzigen Programmabsturz. Geringe Mängel gibt es bei der GUI-Gestaltung. So lassen sich Elemente zum Teil nicht verschieben und müssen neu angelegt oder durch händische Eingriffe in den XML Dateien korrigiert werden. Doch dank der großen Community entstehen rund um die Android Entwicklung Projekte wie z.B. Droiddraw[40]. Auf der Website kann eine GUI sehr simpel erstellt und der entsprechende XML Code zur Weiterverwendung generiert werden.

7 Schlussbetrachtung

Android ist eine sehr vielversprechende und zukunftsorientierte Plattform. Das Entscheidende daran ist die Open-Source Philosophie. Die Vielseitigkeit der Apps und die riesige Entwicklercommunity bieten auf lange Sicht genug Potential für immer fortschrittlichere und nützlichere Anwendungen. Im Gegensatz zu Apples iPhone setzt Google auf Hardwareunabhängigkeit und bietet so vielen Herstellern die Möglichkeit Endgeräte für diese Plattform abzusetzen. Es bleibt abzuwarten ob es Android gelingen wird den Marktanteil soweit zu steigern, dass es irgendwann als meist verbreitetes mobiles Betriebssystem gilt, oder sich zumindest zwischen den derzeitigen Hauptplattformen einordnen wird.

Im Rahmen dieser Fallstudie wurden die Möglichkeiten für Android-Entwickler aufgezeigt. Trotz der umfangreichen Hilfestellungen in Form des ADT Plug-ins sind fundierte Kenntnisse in Java erforderlich. Es empfiehlt sich für Neueinsteiger in der Programmierung nicht direkt mit der Android Programmierung loszulegen, sondern sich zunächst einmal mit der reinen Java Entwicklung und der verwendeten Entwicklungsumgebung auseinanderzusetzen. Die Unterschiede der IDEs sind inzwischen nicht mehr so groß, weil viele nützliche Ideen und Funktionen früher oder später in den unterschiedlichen IDEs umgesetzt werden. Ein wichtiger Unterschied bleibt jedoch - die Aktualität. Das bedeutet, dass Entwickler Communities mit größerer Mitgliederanzahl, wie die von Eclipse, produktiver zusammenarbeiten und so früher neue Funktionen einbinden. Dies hat sich in der Vergangenheit deutlich gezeigt und wird voraussichtlich auch so bleiben. Allerdings ist dies auch derzeit der größte Kritikpunkt an der Eclipse IDE. Durch die vielen Mitglieder entstehen auch viele unterschiedliche Plug-ins welche teilweise zu Kompatibilitätsproblemen führen können. Eclipse hat zwar detaillierte Richtlinien[41] für die Bereitstellung von Plug-ins zur Verfügung gestellt doch an diese Richtlinien halten sich leider nicht alle Entwickler.

8 Literatur- & Quellenverzeichnis

Monographien
Becker/Pant (2009) Becker, Arno; Pant, Markus: Android - Grundlagen und Programmierung; d.punkt Verlag; Heidelberg; 2009
HTW Dresden Hochschule für Technik und Wirtschaft Dresden(Hrsg.): Einführung in den Linux-Kernel; April 2008; http://wwwbs1.informatik.htw-dresden.de/fsys/kernel/ein.html (04.06.2010, 18:37)
Klotz Klotz, Christian; Analyse und praktische Erprobung von OpenGL ES auf der Android Plattform; HS-Fulda; Januar 2009; http://www2.hs-fulda.de/caelabor/inhalte/grundlagen/klotz_Android%20OpenGLES%20Ausarbeitung.pdf (04.06.2010, 18:22)
Rubini/Corbet Rubini/Corbet (2002) Rubini, Alessandro; Corbet, Jonathan: Organisation des Kernels; 2. Auflage; O'Reilly Verlag; http://www.oreilly.de/german/freebooks/linuxdrive2ger/x217.html (04.06.2010, 18:30)


Internetquellen
Benutzerfreundlichkeit.de Benutzerfreundlichkeit (Hrsg.): Was unterscheidet Benutzerfreundlichkeit von Usability und Gebrauchstauglichkeit? Und woher kommen die Begriffe?; http://www.benutzerfreundlichkeit.de/FAQ.60.0.html (04.06.2010, 21:58)
c2.com Cunningham & Cunningham (Hrsg.): What Is Refactoring; Oktober 2008; http://c2.com/cgi/wiki?WhatIsRefactoring (04.06.2010, 21:31)
Eclipse.org A Eclipse.org (Hrsg.): Eclipse Forms Independent Organization; Februar 2004; http://www.eclipse.org/org/press-release/feb2004foundationpr.html (04.06.2010, 16:29)
Eclipse.org B Eclipse.org (Hrsg.): FAQ Where did Eclipse come from?; http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F (04.06.2010, 16:22)
Eclipse.org C Eclipse.org (Hrsg.): The Open Source Developer Report; Mai 2009; http://www.eclipse.org/org/press-release/Eclipse_Survey_2009_final.pdf (04.06.2010, 16:18)
Eclipse.org D Eclipse.org (Hrsg.): About the Eclipse Foundation; http://www.eclipse.org/org/ (04.06.2010, 16:01)
Gartner Gartner (Hrsg.): Gartner Says Worldwide Mobile Phone Sales Grew 17 Per Cent in First Quarter 2010; Mai 2010; http://www.gartner.com/it/page.jsp?id=1372013 (04.06.2010, 18:00)
Google A: Google (Hrsg.): What is Android? - Android Developers; http://developer.android.com/guide/basics/what-is-android.html (04.06.2010, 18:44)
Google B: Google (Hrsg.): Tools Overview - Android Developers; http://developer.android.com/guide/developing/tools/index.html (04.06.2010, 18:52)
Google C: Google (Hrsg.): ADT Plugin for Eclipse Android Developers; http://developer.android.com/sdk/eclipse-adt.html (30.05.2010 20:09)
Google D: Google (Hrsg.): Android Debug Bridge Android Developers; http://developer.android.com/guide/developing/tools/adb.html (04.06.2010 22:13)
Google E: Google (Hrsg.): Android Emulator Android Developers; http://developer.android.com/guide/developing/tools/emulator.html (04.06.2010 21:02)
Google F: Google (Hrsg.): Android Manifest Android Developers; http://developer.android.com/guide/topics/manifest/manifest-intro.html (04.06.2010 21:33)
Google G: Google (Hrsg.): Android Virtual Devices Android Developers; http://developer.android.com/guide/developing/tools/avd.html (04.06.2010 22:24)
Google H: Google (Hrsg.): Dalvik Debug Monitor Android Developers; http://developer.android.com/guide/developing/tools/ddms.html (04.06.2010 19:19)
Google I Google (Hrsg.): Android Timeline; http://www.android.com/timeline.html (04.06.2010, 18:15)
Google J Google (Hrsg.): Android Developer Challenge; http://code.google.com/intl/de-DE/android/adc/ (04.06.2010, 18:04)
Google K Google (Hrsg.): Platform Versions - Android Developer; http://developer.android.com/resources/dashboard/platform-versions.html (04.06.2010, 17:17)
Google L Google (Hrsg.): Build.VERSION_CODES - Android Developer; http://developer.android.com/reference/android/os/Build.VERSION_CODES.html (04.06.2010, 17:03)
IT-Republik.de A IT-Republik.de (Hrsg.): Google Android – So funktioniert’s; März 2009; http://it-republik.de/jaxenter/artikel/Google-Android-%E2%80%93-So-funktioniert%E2%80%99s-2178.html (04.06.2010, 17:44)
IT-Republik.de B IT-Republik.de (Hrsg.): Interaktiver IDE-Vergleich: Teil 1 - NetBeans; Dezember 2009; http://it-republik.de/jaxenter/artikel/Interaktiver-IDE-Vergleich-Teil-1---NetBeans-2740.html (04.06.2010, 17:03)
IT-Republik.de C IT-Republik.de (Hrsg.): Interaktiver IDE-Vergleich: Teil 3 - IntelliJ IDEA; Dezember 2009; http://it-republik.de/jaxenter/artikel/Interaktiver-IDE-Vergleich-Teil-3---IntelliJ-IDEA-2749.html (04.06.2010, 17:03)
IT-Republik.de D IT-Republik.de (Hrsg.): Interaktiver IDE-Vergleich: Zwischenstand; Januar 2010; http://it-republik.de/jaxenter/news/Interaktiver-IDE-Vergleich-Zwischenstand-053162.html (04.06.2010, 17:03)
JetBrains.com A Kenai (Hrsg.): IntelliJ IDEA Open Sourced - JetBrains IntelliJ IDEA Blog; Oktober 2009; http://blogs.jetbrains.com/idea/2009/10/intellij-idea-open-sourced/ (04.06.2010, 20:44)
JetBrains.com B JetBrains (Hrsg.): IntelliJ IDEA Features; http://www.jetbrains.com/idea/features/index.html (04.06.2010, 20:48)
JetBrains.com C JetBrains (Hrsg.): Best Java IDE; http://www.jetbrains.com/idea/index.html (04.06.2010, 20:50)
JetBrains.com D JetBrains (Hrsg.): Android Logcat Support in Maia; http://blogs.jetbrains.com/idea/2009/09/android-logcat-support-in-maia/ (04.06.2010, 20:54)
Kenai.com A JetBrains (Hrsg.): Project Kenai; http://kenai.com/ (04.06.2010, 19:55)
Kenai.com B Kenai (Hrsg.): Android Plugin For NetBeans; http://kenai.com/projects/nbandroid (04.06.2010, 19:57)
NetBeans.org A NetBeans (Hrsg.): NetBeans Partner Program; http://netbeans.org/community/partners/index.html (04.06.2010, 19:33)
NetBeans.org B NetBeans (Hrsg.): Introducing Android Development with NetBeans; http://wiki.netbeans.org/IntroAndroidDevNetBeans (04.06.2010, 19:44)
Noser.com Noser.com (Hrsg.): Einblicke in die offene Mobiltelefon-Plattform; 2008; http://www.noser.com/images/content/oha/t3n_nr14_google_android.pdf (04.06.2010, 22:14)
Oio.de Orientation in Objects (Hrsg.): Warum mit Eclipse entwickeln; Juli 2002; http://www.oio.de/public/warum-eclipse.htm (04.06.2010, 21:31)
Stern.de Stern.de (Hrsg.): Google greift Microsoft an; Mai 2009; http://www.stern.de/digital/computer/android-vs-windows-google-greift-microsoft-an-655650.html (04.06.2010, 18:22)

9 Fußnoten

  1. vgl. Gartner ( http://www.gartner.com/it/page.jsp?id=1372013 )
  2. siehe http://developer.android.com
  3. vgl. Google I ( http://www.android.com/timeline.html )
  4. vgl. Stern.de ( http://www.stern.de/digital/computer/android-vs-windows-google-greift-microsoft-an-655650.html )
  5. 5,0 5,1 vgl. Noser.com
  6. vgl. Rubini/Corbet ( http://www.oreilly.de/german/freebooks/linuxdrive2ger/x217.html )
  7. vgl. HTW Dresden ( http://wwwbs1.informatik.htw-dresden.de/fsys/kernel/ein.html )
  8. 8,0 8,1 vgl. Google A ( http://developer.android.com/guide/basics/what-is-android.html )
  9. vgl. Becker/Pant; S. 17ff
  10. vgl. IT-Republik.de A ( http://it-republik.de/jaxenter/artikel/Google-Android-%E2%80%93-So-funktioniert%E2%80%99s-2178.html )
  11. vgl. Google J ( http://code.google.com/intl/de-DE/android/adc/ )
  12. vgl. Google K ( http://developer.android.com/resources/dashboard/platform-versions.html )
  13. vgl. Google L ( http://developer.android.com/reference/android/os/Build.VERSION_CODES.html )
  14. vgl. Becker/Pant; S. 16ff
  15. vgl. Google B ( http://developer.android.com/guide/developing/tools/index.html )
  16. vgl. Eclipse.org A ( http://www.eclipse.org/org/press-release/feb2004foundationpr.html )
  17. vgl. Eclipse.org B ( http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F )
  18. vgl. Eclipse.org C ( http://www.eclipse.org/org/press-release/Eclipse_Survey_2009_final.pdf )
  19. 19,0 19,1 vgl. Google C ( http://developer.android.com/sdk/eclipse-adt.html )
  20. vgl. Eclipse.org D ( http://www.eclipse.org/org/ )
  21. vgl. IT-Republik.de B ( http://it-republik.de/jaxenter/artikel/Interaktiver-IDE-Vergleich-Teil-1---NetBeans-2740.html )
  22. vgl. NetBeans.org A ( http://netbeans.org/community/partners/index.html )
  23. vgl. Kenai.com A ( http://www.kenai.com )
  24. vgl. Kenai.com B ( http://kenai.com/projects/nbandroid )
  25. vgl. NetBeans.org B ( http://wiki.netbeans.org/IntroAndroidDevNetBeans )
  26. vgl. JetBrains.com A ( http://blogs.jetbrains.com/idea/2009/10/intellij-idea-open-sourced/ )
  27. vgl. JetBrains.com B ( http://www.jetbrains.com/idea/features/index.html )
  28. vgl. JetBrains.com C ( http://www.jetbrains.com/idea/index.html )
  29. vgl. c2.com ( http://c2.com/cgi/wiki?WhatIsRefactoring )
  30. vgl. IT-Republik.de C ( http://it-republik.de/jaxenter/artikel/Interaktiver-IDE-Vergleich-Teil-3---IntelliJ-IDEA-2749.html )
  31. vgl. JetBrains D ( http://blogs.jetbrains.com/idea/2009/09/android-logcat-support-in-maia/ )
  32. vgl. IT-Republik.de D ( http://it-republik.de/jaxenter/news/Interaktiver-IDE-Vergleich-Zwischenstand-053162.html )
  33. vgl. Benutzerfreundlichkeit.de ( http://www.benutzerfreundlichkeit.de/FAQ.60.0.html )
  34. vgl. Oio.de ( http://www.oio.de/public/warum-eclipse.htm )
  35. vgl. Klotz; S. 11, 14
  36. vgl. Google H ( http://developer.android.com/guide/developing/tools/ddms.html )
  37. vgl. Google E ( http://developer.android.com/guide/developing/tools/emulator.html )
  38. vgl. Google G ( http://developer.android.com/guide/developing/tools/avd.html )
  39. vgl. Google D ( http://developer.android.com/guide/developing/tools/adb.html )
  40. siehe http://www.droiddraw.org
  41. siehe http://www.eclipse.org/articles/Article-UI-Guidelines/Contents.html
Persönliche Werkzeuge