Académique Documents
Professionnel Documents
Culture Documents
Abstract
The Android L3T E-Book is an application which transfers the existing L3T E-Book to the Android platform. The focus of the software development was set on tablet computers. The software was especially optimized for the Samsung Galaxy Tab i9000. The application is able to download the articles of the book in a very easy and comfortable way. The book is organized by PDF les, and this les are provided by the L3T publishing server. The application supports basically functionality as displaying, zooming, moving and page switching operations. The software oers some additional features: bookmarking, annotations and highlighting. An implemented version control system manages the dierent article versions. It is possible to manage and modify the PDF documents on the server. The updating process can version and manage the articles, as the user needs this versioning option. The application can handle one or more dierent versions of an article in the data storage of the application. The Android L3T E-Book was created with the Android SDK level 8. Android is based on the Linux kernel, software is mainly developed in Java and run on the Dalvik Virtual Machine (DVM). Android SDK Level 8 supports no native PDF rendering engine. An externally library had to be included, to solve this problem. The PDF rendering is done by the MuPDF library, which is written in C. To include native C code in the project, the NDK was used to handle that. The software was licensed with GNU General Public License (GPL).
Kurzfassung
Das Android L3T E-Book ist eine Applikation, die das L3T E-Book in einer komfortablen Form auf die Android Plattform bringt. Dabei wurde die Applikation fr das Galaxy Tab optimiert. Die Anwendung bietet einen einfachen strukturierten Download der einzelnen Artikel. Die Artikel werden als PDF Dateien angeboten, und knnen direkt vom Server geladen werden. Implementiert wurden grundlegende Funktionalitten wie Anzeigen, Zoomen, Verschieben und Blttern. Zustzlich zur Grundfunktionalitt wurde die Applikation noch um weitere Funktionalitten erweitert, dazu gehren: Lesezeichenfunktion, Markierungen und Anmerkungen. Auerdem bietet die Anwendung eine Versionsverwaltung fr die einzelnen Artikel. Um eine einfache Administration fr das L3T Projekt zu gewhrleisten, knnen am Datenserver die PDF Dateien ohne Probleme aktualisiert werden. BenutzerInnen knnen bei einer Aktualisierung selbst entscheiden ob eine alte Version behalten werden soll, oder ob nur neue Versionen der Artikel in der Applikation existieren. Die Applikation ist in der Lage alte und neue Artikel als PDF Dateien parallel zu verwalten. Realisiert wurde die Anwendung mit dem Android SDK Level 8 (Android Froyo 2.2). Das Android Betriebssystem basiert auf einem Linux Kernel, Anwendungen werden in Java geschrieben und mit Dalvik Virtual Machine (DVM) auf der Plattform ausgefhrt. Da dieses API Level kein PDF Rendering Modul beinhaltet, musste auf eine zustzliche Bibliothek (MuPDF) zurckgegrien werden. Die Quelltextbasis von MuPDF ist jedoch nur als C Quelltext verfgbar. Mit dem Android Native Development Kit (NDK) ist es jedoch mglich nativen C Code ohne die virtuelle Maschine auszufhren. Alle brigen Klassen sowie die Funktionalitt wurden, im Rahmen der Bachelorarbeit erstellt. Die Software wurde unter GNU General Public License (GPL) gestellt.
Inhaltsverzeichnis
1 Einfhrung 1.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Betriebssystem Android 2.1 Allgemein . . . . . . . . . . . . . 2.2 Android fr Mobiltelefone . . . . 2.3 Android fr Tablets . . . . . . . . 2.4 Hardware . . . . . . . . . . . . . 2.5 Android SDK und AVD Manager 2.5.1 Android Froyo 2.2 . . . . . 2.6 Eclipse und ADT Plugin . . . . . 2.7 Android NDK . . . . . . . . . . . 2.8 Bibliotheken . . . . . . . . . . . . 2.8.1 MuPDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 3 3 4 5 5 6 7 7 8 9 10 10 10 10 11 11 11 12 12 13 13 13 13 14 14 14 15 15
3 Android L3T E-Book 3.1 Einleitung . . . . . . . . . . . . . . . . 3.2 Anforderungen und Evaluierung . . . . 3.2.1 Anforderungen . . . . . . . . . 3.2.2 Evaluierung der Anforderungen 3.3 Konzept und Planung . . . . . . . . . . 3.4 Benutzerinterface und Design . . . . . 3.4.1 bersichtsmen . . . . . . . . . 3.4.2 Artikelanzeige . . . . . . . . . . 3.4.3 Optionsmen . . . . . . . . . . 3.4.4 Dialoge . . . . . . . . . . . . . 3.5 Implementierung . . . . . . . . . . . . 3.5.1 Quelltext . . . . . . . . . . . . 3.5.2 Assets . . . . . . . . . . . . . . 3.5.3 Java Native Interface (JNI) . . 3.5.4 Ressourcen . . . . . . . . . . . 3.6 Aufbau und Packages . . . . . . . . . . 3.6.1 at.tugraz.l3t.main . . . . . . . .
IV
3.6.2 at.tugraz.l3t.book . . . . . . . . . . . . 3.6.3 at.tugraz.l3t.helper . . . . . . . . . . . 3.6.4 at.tugraz.l3t.worker . . . . . . . . . . . 3.6.5 at.tugraz.l3t.annotation . . . . . . . . 3.6.6 at.tugraz.l3t.bookmark . . . . . . . . . 3.6.7 at.tugraz.l3t.marker . . . . . . . . . . . 3.7 PDF Datenmanagement . . . . . . . . . . . . 3.7.1 Denition ber XML . . . . . . . . . . 3.7.2 XML Parsing . . . . . . . . . . . . . . 3.7.3 Lokale XML Denition . . . . . . . . . 3.7.4 Externer Speicher . . . . . . . . . . . . 3.7.5 Aktualisierung und Versionsverwaltung 3.8 Konguration . . . . . . . . . . . . . . . . . . 3.9 Manifest . . . . . . . . . . . . . . . . . . . . . 3.9.1 Manifest . . . . . . . . . . . . . . . . . 3.9.2 Application . . . . . . . . . . . . . . . 3.9.3 Permissions . . . . . . . . . . . . . . . 3.10 Anwendungsdaten . . . . . . . . . . . . . . . . 3.10.1 Lesezeichen . . . . . . . . . . . . . . . 3.10.2 Markierungen . . . . . . . . . . . . . . 3.10.3 Anmerkungen . . . . . . . . . . . . . . 3.11 GNU General Public License . . . . . . . . . . 4 Android Market 4.1 Allgemein . . . . . . . . 4.2 APK Datei . . . . . . . 4.3 Entwicklerkonto . . . . . 4.3.1 Google Checkout 4.4 Verentlichung . . . . . 4.4.1 APK Signierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 16 16 16 17 17 17 18 18 18 19 19 19 20 20 20 20 21 22 22 23 23 24 24 24 25 25 25 25
Abbildungsverzeichnis
2.1 2.2 3.1 3.2 Marktanteile der mobilen Betriebssysteme (Q1 2011) [PS11] . . . . . . Aufbau des Native Development Kits [Gar11b] . . . . . . . . . . . . . . Design Mock-Up in der Planungsphase . . . . . . . . . . . . . . . . . . Design des Benutzerinterfaces . . . . . . . . . . . . . . . . . . . . . . . 4 8 12 13
VI
Tabellenverzeichnis
2.1 2.2 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 Samsung Galaxy Tab P1000 Spezikationen [Sam11] . . . . . . . . . . Anwendungsevaluierung . . . . . . . . . . . . . . . . . . . . . . . . . . Klassenbeschreibung fr at.tugraz.l3t.main . . . Klassenbeschreibung fr at.tugraz.l3t.book . . . Klassenbeschreibung fr at.tugraz.l3t.helper . . Klassenbeschreibung fr at.tugraz.l3t.worker . . Klassenbeschreibung fr at.tugraz.l3t.annotation Klassenbeschreibung fr at.tugraz.l3t.bookmark Klassenbeschreibung fr at.tugraz.l3t.marker . . Aufbau der Lesezeichendaten . . . . . . . . . . . Aufbau der Markierungsdaten . . . . . . . . . . Aufbau der Anmerkungsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8 15 15 16 16 16 17 17 22 23 23
VII
1 Einfhrung
Im Rahmen dieser Bachelorarbeit soll das L3T Buch, welches in PDF Form vorhanden ist auf die Android Plattform gebracht werden. Dabei wurde als Applikationssprache Java verwendet. Um dieses Projekt realisieren zu knnen, wurde vor der Implementierung der Software ein passendes Konzept erstellt, um den Ablauf und die Planung der Arbeit optimal zu organisieren. Zu Beginn musste die Android Plattform evaluiert werden, um einen berblick ber das gesamte System zu erhalten. Es musste ein passendes Software Development Kit (SDK) Level gewhlt werden, um mglichst viele Endgerte zu untersttzen. Dabei wurde das SDK Level 8, fr Android 2.2 Froyo gewhlt. Als anfngliche Schritte musste das Software Development Kit (SDK) einer Analyse bezglich der Funktionalitt unterzogen werden. Eine externe Bibliothek zur Anzeige von PDF Formaten kam zum Einsatz, da keine native PDF Darstellung zur Verfgung stand. Dabei wurde auf nativen C Quelltext zurckgegrien, der mit Hilfe des Native Development Kit (NDK) im Projekt zum Einsatz kam.
1.1 Zielsetzung
Diese Bachelorarbeit behandelt das Thema Softwareentwicklung unter Android. Dabei wurde eine E-Book Applikation fr die Android Plattform erstellt, die ein vorhandenes E-Book auf Android portiert. Die Bachelorarbeit behandelt den Ablauf und die Planung diese Projekts. Das Projekt liefert einen Einblick in die Entwicklung und den Ablauf der Softwareplanung mit dem Android SDK. Zentrales Thema der Bachelorarbeit ist jedoch die Implementation der Anwendung. Lsungsanstze fr die aufgetretenen Probleme whrend der Entwicklung werden ebenfalls diskutiert. Dabei soll aufgezeigt werden, auf welche Besonderheiten bei der Erstellung von Applikationen fr die Android Plattform zu achten ist.
KAPITEL 1. EINFHRUNG
1.2 Motivation
Durch die rapide technologische Entwicklung des Mobilfunksektors, erleben auch deren Betriebssysteme und Softwareprogramme einen rasanten Aufschwung und stellen einen neuen protablen Markt fr Applikationsentwickler dar. Um das bestehende Lehrbuch fr Lernen und Lehren mit Technologien E-Book (L3T) einer breiten Masse zugnglich zu machen, wurde im Rahmen dieser Bachelorarbeit das sehr weit verbreitete Android Betriebssystem gewhlt, um auch in den mobilen Sektor vorzudringen. Es ist ein schneller Einstieg in die mobile Softwareentwicklung mglich, da Android auf Java aufsetzt und eine Grundfunktionalitt inklusive Benutzerinterface vorgegeben ist. Die Applikation soll es dem Benutzer ermglichen, einfach auf das L3T E-Book Zugri zu erhalten indem diese Applikation auf das mobile Endgert installiert wird, und so ein sehr einfaches Konzept zur Verwaltung des Buches zur Verfgung steht. Die einzelnen Kapitel knnen angewhlt und angezeigt werden. Es ist keine zustzliche Software fr die Darstellung ntig. Um einen mglichst einfachen Zugang zur Applikation zu erhalten, wurde diese im Android Markt verentlicht. Die interessierten Benutzer knnen die Applikation ber diesen Android Market mit ihrem mobilen Android Endgert beziehen. Voraussetzung fr den Bezug dieser Anwendung ist ein Tablet mit Android 2.2 Froyo.
2 Betriebssystem Android
2.1 Allgemein
Android ist ein speziell fr mobile Gerte entwickeltes Betriebssystem, welches sich immer grerer Beliebtheit erfreut. Android wird von Google und seinen Partner, der Open Handset Alliance, entwickelt. Grundlage fr Android ist Linux mit der Kernelversion 2.6. Der Linux Kernel ist verantwortlich fr die grundlegende Funktionalitt des mobilen Betriebssystems, dabei bernimmt er Aufgaben im Bereich Speicher-, Prozess-, Treiberverwaltung sowie die Anbindung an die aktuellen Netzwerktechnologien. Oziell ist Android seit dem 21. Oktober 2008 verfgbar und entlich zugnglich. Im Unterschied zu proprietren Betriebssystemen ist Android seit seiner Verentlichung freie Software und somit auch quelloen, und fr jedermann frei zugnglich und modizierbar [Wik11b]. Durch das Open-Source-Konzept 1 hinter Android, gibt es eine sehr breite Produktpalette von androiden Systemen. Android kann sehr leicht an verschiedenartige Hardware angepasst werden, und ist somit bei einer groen Anzahl von Hardwareherstellern im Einsatz. Daher ist Android auch Marktfhrer der eingesetzten mobilen Betriebssysteme weltweit (Stand 2011)[Gar11c]. Die schnelle Portierbarkeit, sowie mgliche Modikationen, erlauben es den Hardwareherstellern mit geringem nanziellen Aufwand Android an ihre Hardware anzupassen.
Oener Quelltext
Abbildung 2.1: Marktanteile der mobilen Betriebssysteme (Q1 2011) [PS11] Durch das starke Wachstum, gibt es auch viele neue Mrkte und Mglichkeiten fr Softwareentwickler. Ein neuer Markt fr mobile Applikationen nete sich, da das Basisbetriebssystem nur grundlegende Funktionalitt bot, und die Benutzer jedoch spezielle Anwendungen bentigen. Durch die immer leistungsstrkernen Smartphones der neuen Generation , ist es mglich immer komplexere und umfangreichere Programme fr mobile Endgerte zu erstellen. Durch die Java-Basis die das Android-kosystem bietet, kann auf ein groes Repertoire an Klassen und Bibliotheken zurckgegrien werden. Durch die erhebliche Vielzahl an verfgbaren Mobiltelefonen und auch durch die kurzen Entwicklungszyklen von Android, haben SoftwareentwicklerInnen auch Probleme bei der Entwicklung zu lsen. So spielen dabei die starke Fragmentierung sowie die verschiedenen Entwicklerzweige von Android eine starke Rolle bei der Implementierung von Applikationen [Spe08].
2.4. Hardware
kann und wird jedoch auch Tablets eingesetzt. Mit der Entwicklungslinie 3.x wurde eine speziell fr Tablets verbesserte Android Version konzipiert. Dabei untersttzt Android in der Version 3.x, besser bekannt unter dem Synonym Honeycomb, auch Multicoresysteme und bietet zudem eine verbesserte Benutzeroberche fr Displays mit hheren Ausungen. Bei der Entwicklung von Software fr Tablet Gerte ist dabei zu beachten, dass sich Android 2.x und 3.x hneln, aber doch Unterschiede in der Entwickler-API aufweisen. Mit Ice Cream Sandwich Android Version 4.x sollen die zwei Entwicklerzweige 2.x und 3.x zusammengefasst werden um eine geringere Fragmentierung und eine Vereinheitlichung zu erreichen [And11a].
2.4 Hardware
Zu Beginn musste die Entscheidung getroen werden, ob das L3T E-Book fr Mobiltelefone und Tablets optimiert werden sollte, die Entscheidung el auf die Optimierung fr Tablets. Da es sich um ein E-Book handelt, sollte das Display des Gertes nicht zu klein ausfallen, um auch ein komfortables und schonendes Lesen zu ermglichen. Aufgrund der geringen Displaygren bei aktuellen Mobiltelefonen wurde die Applikation zielorientiert fr Tablet Gerte entwickelt. Als Referenz- und Entwicklungsmodell wurde eine Samsung Galaxy Tab P1000 fr den Entstehungsprozess herangezogen. Spezikationen sind aus Tabelle 2.1 ersichtlich. Prozessor Flash Speicher Display Akku Galaxy Tab P1000 Single Core Cortex-A8 1.06GHz 16GB 7 Zoll WSVGA (1024x600) Li-Polymer (4000mAh)
Tabelle 2.1: Samsung Galaxy Tab P1000 Spezikationen [Sam11] Die verbaute Hardware, in diesem Tablet, sollte fr das Darstellung von PDF Inhalten ausreichend sein. Jedoch ergaben sich im Laufe der Implementierung und Entwicklung kleine Leistungsprobleme. Neuere Gerte sollten dieses Leistungsproblem durch deren Mehrkernprozessoren nicht mehr aufweisen.
Veranschaulichung. Zustzlich dazu werden mit dem SDK auch die Standardbibliotheken fr die vorhandenen Android-Versionen ausgeliefert. Die SDK-Werkzeuge erlauben die Verarbeitung des Quellcodes eines Programmes in dessen fr Java Virtual Machine (JVM) optimierten Bytecode. Anschlieend werden die Class-Dateien in fr Dalvik Virtual Machine (DVM) verstndliche Dalvik Executables (.dex) konvertiert. Auf Android-Gerten wird eine optimierte DVM zur Ausfhrung von diesem Programmcode eingesetzt. Im Unterschied zu einer standardisierten JVM welche auf Stackbasis arbeitet, wird die DVM auf einer Register basierten Struktur eingesetzt um eine mglichst performante Ausfhrung des Codes zu ermglichen, da Prozessor- und Speicherleistung auf mobilen Endgerten nur begrenzt zur Verfgung stehen. Durch den Einsatz der DVM ist es nicht mglich Standardbibliotheken wie Java SE, Java ME, AWT und Swing einzusetzen. Stattdessen wird eine eigene Bibliothek zur Verfgung gestellt die an die Apache Harmony2 Java Bibliothek angelehnt ist [Goo11a] [And11e]. Das Android SDK kann direkt von der Entwicklerseite geladen werden. Bei erfolgreicher Installation knnen anschlieend die gewnschten API Stufen automatisch ber die SDK Anwendung bezogen und installiert werden. Um Applikationen zu testen, mssen diese entweder auf reeller Hardware oder auf ein virtuelles emuliertes Gert bertragen und installiert werden. Diese Aufgabe bernimmt Android Virtual Device Manager (AVD). Mit diesem Werkzeug knnen virtuelle Android Gerte erstellt und verwaltet werden. Dabei ist es mglich zu bestimmen, auf welches API Level sich das virtuelle Gert sttzt, sowie hardwarespezische Einstellungen bezglich Ausung und Speicher. Am virtuellen Gert knnen die Applikationen in einem simulierten Umfeld auf deren Funktionalitt geprft werden. Auerdem stellt die Emulierung eine Debugfunktionalitt zur Verfgung um Fehler im Quellcode schnell zu lokalisieren. Im Gegensatz zu realer Hardware hat der Emulator nicht dieselbe Leistung. Auf realer Hardware wird die Anwendung grundstzlich ssiger ausgefhrt als bei Emulation [Goo11a].
Abbildung 2.2: Aufbau des Native Development Kits [Gar11b] Native Bibliotheken werden direkt mit der Installationsdatei (APK) ausgeliefert, und stehen der Applikation direkt zur Verfgung.
2.8 Bibliotheken
Um das Projekt mit PDF Untersttzung realisieren zu knnen, wurde eine externe Bibliothek eingebunden. Anfangs musste eine Evaluierung durchgefhrt werden um eine optimale Auswahl zu treen und auch die Kompatibilitt fr Android zu gewhrleisten. Eine kurze bersicht der evaluierten quelloenen Anwendungen zeigt Tabelle 2.2.
Anwendung APV Droidreader APDFViewer AndPDF Adobe Reader Leistung schnell mittelmig langsam sehr langsam schnell Darstellung korrekt fehlerhaft fehlerhaft fehlerhaft korrekt Bibliothek MuPDF MuPDF Poppler Java PDF Renderer keine Angabe
Tabelle 2.2: Anwendungsevaluierung Gewhlt wurde anhand der entscheidenden Kriterien die MuPDF Bibliothek, da sie die beste Leistung liefert. Auerdem gab es teilweise Probleme bei der Darstellung von eingebetteten Schriftarten sowie Grakfehler unter den anderen Bibliotheken [Art11].
2.8. Bibliotheken
2.8.1 MuPDF
MuPDF ist eine auf C Quelltextbasis vorhandene Bibliothek unter GNU General Public License (GPL). Durch den Einsatz der Bibliothek fr das L3T E-Book wurde, der Quellcode der Applikation ebenfalls unter die GPL gestellt und ist somit freie Software. Eingesetzt wurde MuPDF zur Darstellung von PDF Dateien. Dabei wird das Rendering 3 im nativen Quelltext vollzogen und nur ein Bitmap4 fr die aktuelle Ansicht generiert. Dieses Bitmap Objekt wird als Java Objekt bergeben und kann somit im Java Quelltext eingesetzt werden. Bei Seitenwechsel oder Ansichtswechsel muss immer ein Kontextwechsel von Java Bytecode5 in der DVM in den nativen Maschinencode stattnden. Dieser Wechsel ist rechenintensiv und nimmt dementsprechend Zeit in Anspruch, wodurch sich die Anzeige beim Betrachten verzgern kann. Durch die Untersttzung von PDF bis zur Version 1.7 ist eine gute Kompatibilitt hinsichtlich der Einbindung fr Schriftarten gegeben. Diese werden im L3T E-Book fr diverse berschriften verwendet [Art11].
3 4 5
Berechnung der Darstellung einer PDF Datei Rastergrak Sammlung von Befehlen fr eine VM
10
11
Informationen zum L3T-Projekt zur Verfgung zu stellen, soll es zustzlich einen Abschnitt mit verschiedenen Verknpfungen zu sozialen Netzwerken geben.
Namensrume fr Java-Klassen
12
Abbildung 3.1: Design Mock-Up in der Planungsphase und der Artikelanzeige. Dies ist notwendig um bei einem Ansichtswechsel die einzelnen Ansichten nicht neu zu erzeugen [And11c].
3.4.1 bersichtsmen
Im bersichtsmen werden die Artikel ber die ListView Komponente3 dargestellt, die Daten fr die ListView werden ber den zugehrigen Adapter bereitgestellt. Grundstzlich werden der Titel und die Versionsnummer des Artikels als Listenelement angezeigt. Durch einfache Berhrung des jeweiligen Artikels wird dieser in der Artikelanzeige genet und kann dort betrachtet werden. Sollten mehrere Version durch das Versionsverwaltungssystem zur Verfgung stehen, so wird dies ebenfalls angezeigt. Mit einer langen Berhrung net sich der Auswahldialog fr die gewnschte Artikelversion [And11c].
3.4.2 Artikelanzeige
In der Artikelanzeige wird der aktuell ausgewhlte Artikel in PDF Form dargestellt. Dabei wird ein Bitmap auf eine PixMapView gezeichnet. Grundoperationen wie Zoom und Verschieben werden intuitiv per Berhrungen gesteuert. Auerdem gibt es eine Navigationsleiste fr Seitenwechsel, Lesezeichen, Markierungen und Anmerkungen, sowie die dazugehrigen Mens zur Stift- und Farbauswahl.
2 3
3.5. Implementierung
13
3.4.3 Optionsmen
ber das Optionsmen knnen Lesezeichen aufgerufen werden, der Prsentationsmodus gestartet werden, Aktualisierungen vorgenommen werden und Informationen zum L3T Projekt sowie zur Lizenzierung abgerufen werden.
3.4.4 Dialoge
Es gibt jeweils einen Dialog fr die Lesezeichenauswahl, Aktualisierung, Farbauswahl und Texteingabe. Die Dialoge werden aus dem bersichtsmen, Artikelanzeige und Optionsmen aufgerufen, je nach gewhlter Funktion.
3.5 Implementierung
3.5.1 Quelltext
Als Grundlage fr eine eziente Implementierung wurden anfangs ein Java Projekt erstellt, die grundlegenden Packages angelegt. Als Versionsverwaltung wurde Apache Subversion4 eingesetzt. Der Quelltext des L3T E-Books wird direkt ber den Quelltextordner src verwaltet, dabei spiegelt die Ordnerstruktur die Packagehierarchie wider.
Subversion Versionsverwaltung
14
3.5.2 Assets
Um Bilder und Texte direkt als Ressource im Quelltext verwenden zu knnen werden in Android Anhnge (Assets) verwendet. Diese knnen ber die dynamisch generierte Ressourcenklasse R angesprochen und eingebunden werden. Assets werden im E-Book fr die Anzeige der Lizenz und der Webverknpfungen verwendet.
3.5.4 Ressourcen
Drawables: Sie dienen zur Darstellung von Bildern im Interface. Dabei knnen Drawables in drei Qualittsstufen unterteilt werden. Android entscheidet selbststndig anhand von Displaygre welche Bilder in welcher Qualitt bei Ausfhrung der Applikation zum Einsatz kommen. Layout: Um ein grasches Benutzerinterface zu erstellen, knnen Layouts angelegt werden. Diese werden als XML Schema deniert. Knnen jedoch auch direkt ber den Interface Builder zusammengestellt werden. Basis fr den Interface Builder ist das angelegte XML Layout. Menu: Wie Layouts knnen auch Mens ber XML Schema deniert werden. Dabei gibt es wiederum die direkte Beschreibung ber XML, oder die Zusammenstellung per Benutzermen. Values: Mit Hilfe von Values ist es mglich Zeichenketten die im Quelltext verwendet werden, als Variablen zu denieren. Somit ist es nicht ntig Benennungen direkt im Quelltext zu hinterlegen. ES kann eine einfach bersetzung der Applikation in andere Sprachen erfolgen.
15
3.6.2 at.tugraz.l3t.book
Im book Package wird das E-Book als Klasse verwaltet, wobei sich diese Klasse book in Sektionen und Artikel aufteilt. Zustzlich beinhaltet das Package noch Dateispezikationen der PDF Artikel sowie den Parser fr die XML Daten. Die Artikelobjekte denieren die einzelnen PDF Artikel des L3T E-Books. Dabei werden die Metadaten der Artikel als Attribute gespeichert. Artikelobjekte werden zu Sektionen hinzugefgt, siehe Tabelle 3.2.
Klasse Article ArticleFile Book BookFactory Section XMLParser Funktion Verwaltungsklasse fr Artikel Verwaltungsklasse fr Artikeldateien (PDF) Verwaltungsklasse fr Sektionen Erzeugungsklasse fr Bcher aus XML Daten Verwaltungsklasse fr Artikel Analyse von XML Daten
16
3.6.3 at.tugraz.l3t.helper
Das helper Package stellt Funktionen fr Kodierung, Dekodierung, Datenspeicherbereinigung und Objektserialisierung zur Verfgung, siehe Tabelle 3.3.
Klasse Base64Coder CleanStorage Serializer Funktion Klasse zur Kodierung und Dekodierung von Base64 Datenspeicherbereinigung Objektserialisierung
3.6.4 at.tugraz.l3t.worker
Das worker Package ist zustndig fr die Aktualisierungsfunktionalitt. Der Aktualisierungsprozess luft ber einen eigenen Thread im Hintergrund. Die Benutzeroberche wird nicht durch den Aktualisierungsvorgang beeinusst, siehe Tabelle 3.4.
Klasse Updater XMLUpdater Funktion Zustndig fr das Aktualisieren der PDF Artikel Dateien Zustndig fr das Aktualisieren der Buchstruktur und Artikelversionen
3.6.5 at.tugraz.l3t.annotation
Das annotation Package stellt die Funktionen fr die Anmerkungen zur Verfgung. Dabei werden die einzelnen Anmerkungen ber einen separate Verwaltungsklasse sortiert. Anmerkungsobjekte beinhalten den Text sowie die Position, siehe Tabelle 3.5.
Klasse Annotation AnnotationManager Annotations Funktion Anmerkungsobjekt mit Positionsangaben und Text Verwalter fr eine Anmerkungssammlung Anmerkungssammlung
17
3.6.6 at.tugraz.l3t.bookmark
Das bookmark Package stellt die Funktionen fr die Lesezeichen zur Verfgung. Lesezeichen werden ber einen Dialog angelegt und knnen per Optionsmen aus einem Listendialog jederzeit abgerufen werden, siehe Tabelle 3.6.
Klasse Bookmark BookmarkDialog BookmarkManager Funktion Lesezeichen mit Positionsangaben und Benennung Eingabedialog fr neue Lesezeichen Verwaltungsklasse fr Lesezeichen
3.6.7 at.tugraz.l3t.marker
Das marker Package, siehe Tabelle 3.7, stellt die Markierungsfunktion zur Verfgung. Dabei kann der Markierer als Stift oder zum Hervorheben verwendet werden, zustzlich gibt es einen Benutzerdialog fr die Auswahl der gewnschten Stiftfarbe. Fr einen stufenlosen bergang beim Zoomen, wird der Pfad gespeichert um fr jede Zoomstufe die genau Skalierung zu erzeugen.
Klasse MarkerManager MarkerPoint MarkerPath MarkerPaths ColorPickerDialog Funktion Verwaltungsklasse fr Markierungen XY Koordinatenpunkt fr den Pfad Pfad aus einer Punktmenge Verwaltungsklasse fr Pfade Benutzerdialog fr die Farbauswahl
18
3.8. Konguration
19
des vom Server bertragenen XML-Dokuments, jedoch werden einige berssige Metadaten verworfen, da sie fr die Anwendung nicht relevant sind.
3.8 Konguration
Um die Konguration der Applikation schnell ndern zu knnen, wurde die Konguration in eine eigene selbststndige Klasse verlegt, und als Singleton implementiert. Die Konguration steht durch dieses Designmuster der gesamten Anwendung zur Verfgung. Auerdem werden in der Konguration die Datenspeichernamen fr die Lesezeichen, Markierungen und Anmerkungen deniert. Der Speicherort fr die geladenen PDF-Artikel kann ebenfalls ber die Kongurationsklasse deniert und gendert werden.
20
3.9 Manifest
Das Android-Manifest muss bei jeder Android-Applikation vorhanden sein, es bendet sich im Wurzelverzeichnis des Projektes. Im Manifest werden Metadaten zum Projekt deniert. Denition des Einstiegspunktes in die Applikation und Basis Package des Quelltextes sind Pichtangaben, ohne diese Angaben ist die Applikation nicht lauhig. Auerdem mssen Versionsnummer und Versionscode eingetragen werden, um bei der Verentlichung von neuen Versionen der Applikation einen reibungslosen Aktualisierungsvorgang zu ermglichen. Das Manifest gliedert sich in mehrere Bereiche.
3.9.1 Manifest
Im Abschnitt Manifest werden wie bereits erwhnt Versionsnummer und Versionscode. eingetragen. Auerdem muss ein eindeutiger Packagename eingetragen werden um Kollisionen mit anderen Softwareanwendung auszuschlieen. Fr das L3T E-Book wurde das Wurzelpackage mit at.tugraz.l3t deniert. Somit mssen alle Subpackages als Prx das Wurzelpackage im Namen tragen, um eine Eindeutigkeit zu gewhrleisten.
3.9.2 Application
Im Application Abschnitt knnen weitere Metadaten abhngig vom Projekt eingetragen werden. Dabei knnen Einstellungen fr den Applikationsname und das Applikationssymbol getroen werden. Zustzlich knnen noch weitere Daten optional angegeben werden. Der Application Abschnitt bietet auch Einstellungsmglichkeiten fr Debuggingarbeiten 5 des Quelltextes.
3.9.3 Permissions
Eine wichtige Sektion im Manifest stellt der Bereich Permissions dar. ber diesen Bereich werden die Rechte der Applikation deniert. Um Anwendungen in ihren Berechtigung einzuschrnken, und somit das Sicherheitsrisiko der EndbenutzerInnen zu minimieren, mssen Rechte fr bestimmte Vorgnge im System explizit angefordert werden. Es existiert eine sehr umfangreiche Liste der einstellbaren Rechte fr das System. Bei Installation auf einem mobilen Gert werden die AnwenderInnen ber diese Zugrisrechte der Applikation informiert und mssen diese besttigen. Die BenutzerInnen knnen anhand der Auistung der Berechtigungen entscheiden, ob sie die jeweiligen
5
3.10. Anwendungsdaten
21
Anwendungen auf ihrem Gert installieren mchten, und ob die Zugrisrechte der Applikation gerechtfertigt sind. Der E-Book Anwendung wurden folgende Rechte erteilt [BP10]. android.permission.INTERNET Dient zur Freigabe der Internetverbindung. Es spielt dabei keine Rolle ber welches Interface sich das Gert zum Internet verbindet. Es wird bentigt um das serverseitige XML-Dokument des Buches zu laden, sowie das Laden der einzelnen PDF-Artikel. android.permission.ACCESS_NETWORK_STATE Dient zur Feststellung der Verfgbarkeit des Internetzugris. Die Applikation muss feststellen ob das Gert eine Verbindung hergestellt hat, bevor Daten geladen werden knnen. android.permission.WRITE_EXTERNAL_STORAGE Dient zur Freigabe des externen Datenspeichers. Da die PDF-Dateien nicht direkt auf dem Speicher abgelegt werden drfen, muss eine Freigabe fr den externen Speicher erfolgen.
3.10 Anwendungsdaten
Um einen frheren Zustand nach Ausfhrung einer Applikation wieder herzustellen, ist es erforderlich Daten zu einem Programmzustand zu speichern. Im L3T E-Book stellen Lesezeichen, Markierungen und Anmerkungen diese Anwendungsdaten dar. Diese Daten mssen von der Anwendung korrekt gespeichert werden, um nach Beendigung und Neustart der Anwendung wieder zur Verfgung zu stehen. Die Android Plattform bietet verschiedene Anstze um Anwendungsdaten zu speichern [And11b]. Shared Preferences werden als Schlssel-Wert Paare gespeichert. Jeder Schlssel ist eindeutig, und verweist auf einen eingetragenen Wert. Dabei knnen beliebig viele dieser Datenstrukturen von System angefordert werden. Dabei werden Shared Preferences unter Android als Map geladen. Modiziert werden diese Maps ber die Editor Klasse. Mit der es mglich ist viele Eintrge zu ndern und anschlieend die nderungen zu speichern. Die Shared Preferences Methode ist wenn mglich zu verwenden, da sie einen schnellen Zugri auf Daten ermglicht. Internal Storage wird zur privaten Dateispeicherung verwendet. Es ist mglich Dateien auf dem internen Speicher des Gertes abzulegen. Dabei sind die Daten von anderen Applikation am Gert isoliert. Auch dem Benutzer und der Benutzerin
22
KAPITEL 3. ANDROID L3T E-BOOK ist es nicht mglich auf diese Daten zuzugreifen. Bei einer Deinstallation werden diese Dateien mit der Anwendung gelscht. External Storage stellt das Pendant zu Internal Storage dar. Dabei knnen Daten auf dem externen Speicher von beliebigen Anwendungen gelesen und auch modiziert werden. Diese Speicherform kommt fr die PDF-Dateien zum Einsatz, da die BenutzerInnen die Dateien auch komfortabel in anderen PDF Anwendungen nen knnen. SQLite Databases werden von Android ebenfalls untersttzt. Dabei ist es mglich Daten per Structured Query Language (SQL) Dialekt in der Datenbank zu adressieren. Kann bei relationalen Daten eingesetzt werden. Network Connection knnen ebenfalls benutzt werden um Daten zu speichern. Dabei ist jedoch auf die Verfgbarkeit des Netzes sowie des Datenservice zu achten.
Fr das L3T E-Book werden fr die Funktionalitt der Lesezeichen, Markierungen und Anmerkungen, Shared Preferences eingesetzt. Wobei jede Funktionen ihr eigene unabhngige Shared Preference zur Verfgung hat.
3.10.1 Lesezeichen
Der Lesezeichen Schlssel wird aus Dateinamen, Doppelkreuz (#) und Seitennummer eingetragen. Als Wert wird der Lesezeichenname gespeichert. Bei Programmstart werden alle Schlssel-Wert Paare ausgelesen. Wird ein neues Lesezeichen angelegt so wird diese direkt gespeichert. In Tabelle 3.8 der Aufbau der Lesezeichendaten.
Syntax Beispiel Schlssel Dateiname#Seitennr. Beispiel.pdf#67 Wert Lesezeichenname Beispiellesezeichen
3.10.2 Markierungen
Markierungen sind identisch wie Lesezeichen organisiert, jedoch wird als Wert ein serialisierter String aus einer Liste von Pfaden gespeichert. So knnen mehrere Pfade auf einer Seite als ein Wert gespeichert werden. Dabei speichert jeder einzelne Pfad seine Attribute (Farbe, Strke und Positionspunkte). Es werden keine Bitmaps gespeichert, da eine stufenlose Skalierung der Markierungen bei einem Zoomvorgang notwendig ist. Attribute der Pfade werden in Tabelle 3.9 auf der nchsten Seite nicht dargestellt.
23
Syntax Beispiel
3.10.3 Anmerkungen
Auch Anmerkungen wurden in ihrer Struktur hnlich konzipiert. Dabei wurden ebenfalls eine Anmerkungsliste serialisiert und als Wert abgelegt. In Tabelle 3.10 der Aufbau der Anmerkungsdaten.
Syntax Beispiel Schlssel Dateiname#Seitennr. Beispiel.pdf#67 Wert [Anm. [A1 [Pos [XY]],[Text]],[A2 ...]] [[A1 [X=1,Y=1],[Text...]],[A2 ...]]
4 Android Market
4.1 Allgemein
ber den Android Market ist es mglich neue Software auf einem Android Endgert zu installieren. Bei einem Groteil der Android Gerte ist die Android-Market-Applikation vorinstalliert. Diese Applikation ermglicht den Zugri auf den Android Market und dessen Inhalt. Der Android Market umfasst derzeit rund 500.000 Anwendungen, und der Markt wchst monatlich um 30.000 zustzliche Anwendungen. Die angebotenen Anwendungen gliedern sich grundstzlich in kostenpichtige und kostenlose Applikationen. Um kostenpichtige Applikationen erwerben zu knnen, ist ein Google Checkout Konto notwendig. Kostenlose Anwendungen bentigen keine Google Checkout Konto. Durch das enorme Wachstum der Android-Plattform, stellt der Android Market den Softwareentwicklern eine neue Plattform zur Softwarevertreibung zur Verfgung. Der gesamte Umsatz betrgt rund 5 Millionen Euro pro Monat [Wik11a]. Es existieren noch weitere Anwendungen und Mrkte die den Endbenutzer mit Software versorgen knnen. Es ist keine Lizenz notwendig um einen eigenstndigen Market zu etablieren, da Android ein oenes und freies Betriebssystem ist, jedoch erreichen diese eigenstndigen Mrkte nicht die Durchdringung wie der Android Market. Grundstzlich knnen Applikationen jedoch auch ber den konventionellen Weg vertrieben werden, um die Abgaben fr den Android Market zu vermeiden.
24
4.3. Entwicklerkonto
25
4.3 Entwicklerkonto
Um eine Applikation im Android Market zu verentlichen, wird eine Google-Entwicklerkonto bentigt. Dieses Konto kann von jedermann beliebig angelegt werden. Kostenlose Anwendungen knnen sofort nach Erstellung eines solchen Entwicklerkontos komfortabel ber ein Webinterface im Market platziert werden. Um eine kommerzielle Applikation im Android Market anzubieten, muss das Entwicklerkonto zustzlich mit einem Google Checkout verbunden werden, da alle Umstze ber dieses Checkout-Konto laufen. Endbenutzer die im Android-Market-Software erwerben wollen, mssen ebenfalls ein Checkout-Konto besitzen.
4.4 Verentlichung
Die Verentlichung im Android Market erfolgt nach Erstellung des Entwicklerkontos. ber das Webinterface knnen neue Applikationen erstellt werden. Dabei ist im ersten Schritt anzugeben ob eine Anwendung kostenpichtig oder kostenfrei ist. Ein nachtrglicher Wechsel von kostenfrei auf kostenpichtig ist nicht mehr mglich. Deshalb sollte schon vorab die Entscheidung ber die Kommerzialisierung des Projekts getroen werden. Es mssen noch weitere Angaben gemacht werden um die Applikation im Market freizugeben, dazu zhlen: Bildschirmfotos der Anwendung, Kategorisierung, Einsatzgebiet der Anwendung, Sprachspezikationen, Inhaltsbewertung, Regionen fr den Verkauf, Kontaktinformationen [Wul10].
26
wurde. Somit soll sichergestellt werden das die APK-Dateien von der original Quelle stammen, und kein Schadcode installiert wird. Verwaltet werden diese Schlssel mit Hilfe von Keystores. Das Android L3T E-Book wurde mit dem RSA1 Verfahren und 2048 Bit verschlsselt, dies sollte eine langfristige Sicherheit bezglich Flschungen gewhrleisten [Wul10].
5.2 Android
Android ist ein sehr schnell wachsendes kosystem, und durch die Oenheit der Plattform kann jedermann Software fr dieses System anbieten. Die Android API wird stndig erweitert, und bietet fr EntwicklerInnen ein komfortables Basisrepertoire an Funktionen. Durch die Oenheit und Freiheit eines Systems wie Android, ergeben sich auch Probleme bezglich der Software. So wird Android auf vielen verschiedenen Gerten eingesetzt und die Hardwarehersteller passen Android dementsprechend an deren Hardware an und bieten kaum Aktualisierungen an. Dies spiegelt sich in einer groen Vielfalt an im Umlauf bendlichen Android Versionen wider. EntwicklerInnen mssen ihre Software gegenber verschiedenen API Levels kompatibel halten, um eine breite Masse an Endbenutzern zu erreichen. Diese Fragmentierung ist aktuell noch ein Problem der Android Plattform. Abhilfe soll Android ab Version 4 schaen, da Entwicklungslinien zusammengefhrt werden sollen [ZB10].
Satellitengesttztes Positionierungssystem
27
Akronymliste
PDF DVM SDK AVD GPL API NDK JSE JE AWT JIT ADT XML GUI JNI SQL APK JAR GPS IDE Portable Document Format Dalvik Virtual Machine Software Development Kit Android Virtual Device General Public License Application Programming Interface Native Development Kit Java Standard Edition Java Micro Edition Abstract Window Toolkit Just in time Android Development Tools Extensible Markup Language Graphical User Interface Java Native Interface Structured Query Language Android Package Java Archive Global Positioning System Integrated Development Environment
28
Literaturverzeichnis
[And10] Android: Android 2.2 Compatibility Denition. http://static. googleusercontent.com/external_content/untrusted_dlcp/source. android.com/de/compatibility/android-2.2-cdd.pdf, November 2010
[And11a] Android: Android 4.0 Platform. http://developer.android.com/sdk/ android-4.0.html, November 2011 [And11b] Android: Android Data Storage. http://developer.android.com/guide/ topics/data/data-storage.html, November 2011 [And11c] Android: Android Developer Reference. http://developer.android.com/ reference/packages.html, November 2011 [And11d] Android: Android Security Overview. http://source.android.com/tech/ security/index.html, November 2011 [And11e] Android: Bytecode for the Dalvik VM. http://source.android.com/ tech/dalvik/dalvik-bytecode.html, November 2011 [Art11] [Bac10] [BP09] ArtifexSoftware: MuPDF - a lightweight PDF and XPS viewer. http: //www.mupdf.com/, November 2011 Bach, Mike: Mobile Anwendungen mit Android: Entwicklung und praktischer Einsatz. 1. Addison-Wesley, 2010. 480 S. Becker, Arno ; Pant, Marcus: Android: Grundlagen und Programmierung. Heidelberg : dpunkt, 2009 http://www.dpunkt.de/buecher/3436. html - November 2011 Becker, Arno ; Pant, Marcus: Android 2: Grundlagen und Programmierung. 2. Dpunkt Verlag, 2010. 427 S. Burnette, Ed: Hello, Android: Introducing Googles Mobile Development Platform. 3. Pragmatic Programmers, 2010. 300 S. Eclipse: The Eclipse IDE. http://eclipse.org/, November 2011 Filbert, James: Developing a Multi-Purpose Chat Application for Mobile Distributed Systems on Android Platform / Helsinki Metropolia University of Applied Sciences. 2010. Forschungsbericht
29
30
Literaturverzeichnis
[Gar11a] Gargenta, Marko: Einfhrung in die Android-Entwicklung. 1. OReilly, 2011. 248 S. [Gar11b] Gargenta, Marko: Using NDK to Call C code from Android Apps. http: //marakana.com/forums/android/examples/49.html, November 2011 [Gar11c] Gartner: Mobile Devices Grew. http://www.gartner.com/it/page.jsp? id=1848514, November 2011 [GBG11] Grgurina, Robi ; Brestovac, Goran ; Grbac, Tihana G.: Development environment for Android application development: An experience report. In: MIPRO, IEEE, 2011. ISBN 9781457709968, 1693-1698 [GNU11] GNU: GNU General Public License. http://www.gnu.org/copyleft/gpl. html, November 2011 [Goo11a] Google: The Android SDK. http://developer.android.com/sdk/index. html, November 2011 [Goo11b] Google: Appinventor. http://www.appinventorbeta.com/about/, November 2011 [Goo11c] Google: The Developers Guide. http://developer.android.com/guide/ index.html, November 2011 [Goo11d] Google: What is the NDK? http://developer.android.com/sdk/ndk/ overview.html, November 2011 [Gra11] [Kra11] Gramlich, Nicolas: andbook! 2. http://andbook.anddev.org/files/ andbook.pdf, 2011 Kraemer, Frank A.: Engineering Android Applications Based on UML Activities. In: Whittle, Jon (Hrsg.) ; Clark, Tony (Hrsg.) ; Khne, Thomas (Hrsg.): MoDELS Bd. 6981, Springer, 2011 (Lecture Notes in Computer Science). ISBN 9783642244841, 183-197 Krger, Guido ; Stark, Thomas: Handbuch der Java-Programmierung: Standard Edition. 6. Addison-Wesley Longman Verlag, 2009. 1356 S. Pettey, Christy ; Stevens, Holly: Mobile Communication Devices Sold Worldwide in First Quarter 2011. http://www.gartner.com/it/page.jsp? id=1689814, November 2011 Samsung: Galaxy Tab P1000 Spezikationen. http://www.samsung.com/ at/consumer/mobile-phone/tablets/tablets/BGT-P1000/index.idx? pagetype=prd_detail&tab=specification, November 2011
[KS09] [PS11]
[Sam11]
Literaturverzeichnis [Sch09]
31
Schmitz, Marco A.: Entwicklung einer Applikation fr mobile Endgerte mit Anbindung an bestehende Server-Software / Fachhochschule Dortmund. 2009. Forschungsbericht Simmonds, Chris: What else can you do with Android? http: //www.embedded-linux.co.uk/downloads/android-tutorial/TU-3. 2-handout-Simmonds.pdf, November 2011 Speckmann, Benjamin: The Android mobile platform / Eastern Michigan University. 2008. Forschungsbericht Ullenboom, Christian: Java ist auch eine Insel: Das umfassende Handbuch. 9. Galileo Computing, 2010. 1480 S.
[Sim11]
[Spe08] [Ull10]
[Wik11a] Wikipedia: Android Market. http://de.wikipedia.org/wiki/Android_ Market, November 2011 [Wik11b] Wikipedia: Wikipedia. http://de.wikipedia.org/, November 2011 [Wul10] [ZB10] Wulis, Artiom: Publishing of Android Applications / Universitt Hamburg. 2010. Forschungsbericht Zeppenfeld, Klaus ; Bollmann, Tilman: Mobile Computing. 1. W3L GmbH, 2010. 240 S.