05.03.2013 Aufrufe

Apps programmieren – Schritt für Schritt - Elektor

Apps programmieren – Schritt für Schritt - Elektor

Apps programmieren – Schritt für Schritt - Elektor

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Stefan Schwark<br />

Android<br />

<strong>Apps</strong> <strong>programmieren</strong> <strong>–</strong> <strong>Schritt</strong> <strong>für</strong> <strong>Schritt</strong>


Stefan Schwark<br />

Android-<strong>Apps</strong><br />

<strong>Elektor</strong>-Verlag, Aachen


Für meine Eltern<br />

© 2012: <strong>Elektor</strong> Verlag GmbH, Aachen.<br />

2. Auflage 2012<br />

Alle Rechte vorbehalten.<br />

Die in diesem Buch veröffentlichten Beiträge, insbesondere alle Aufsätze und Artikel sowie alle<br />

Entwürfe, Pläne, Zeichnungen und Illustrationen sind urheberrechtlich geschützt. Ihre auch auszugsweise<br />

Vervielfältigung und Verbreitung ist grundsätzlich nur mit vorheriger schriftlicher Zustimmung<br />

des Herausgebers gestattet.<br />

Die Informationen im vorliegenden Buch werden ohne Rücksicht auf einen eventuellen Patentschutz<br />

veröffentlicht. Die in diesem Buch erwähnten Soft- und Hardwarebezeichnungen können<br />

auch dann eingetragene Warenzeichen sein, wenn darauf nicht besonders hingewiesen wird. Sie<br />

gehören dem jeweiligen Warenzeicheninhaber und unterliegen gesetzlichen Bestimmungen.<br />

Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen.<br />

Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autor<br />

können <strong>für</strong> fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine<br />

Haftung übernehmen.<br />

Für die Mitteilung eventueller Fehler sind Verlag und Autor dankbar.<br />

Korrektorat: Ute Marion Poeppel, Bonn<br />

Umschlaggestaltung: Etcetera, Aachen<br />

Satz und Aufmachung: InterMedia <strong>–</strong> Lemke e. K., Ratingen<br />

Druck: WILCO, Amersfoort (NL)<br />

Printed in the Netherlands<br />

ISBN 978-3-89576-252-9<br />

<strong>Elektor</strong>-Verlag GmbH, Aachen<br />

www.elektor.de<br />

119014-1/D


Inhaltsverzeichnis<br />

Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

Über den Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

1. Einführung in das Android-System. . . . . . . . . . . . . . . . . . . . . . . 9<br />

1.1 Entwicklung ................................ 9<br />

1.2 Android und Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

1.3 Open Source-Projekte ......................... 13<br />

1.4 Portierungen auf Endgeräte . . . . . . . . . . . . . . . . . . . . . 15<br />

2. Die Eclipse Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . 16<br />

2.1 Die benötigte Software . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

2.2 Android Virtual Devices . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

3. Grundlagen der Android Programmabarbeitung . . . . . . . . . . . . . 20<br />

3.1 Komponenten des Systems . . . . . . . . . . . . . . . . . . . . . 20<br />

3.2 Die Android-Manifest-Datei . . . . . . . . . . . . . . . . . . . . . 22<br />

3.3 Die Android-API-Level . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

3.4 Die Android-Activity . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

4. Das Android-User Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

4.1 Views und ViewGroups. . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

4.2 Layout-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

4.3 Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

5. Android und JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

5.1 JAVA-Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

5.2 Android-Pakete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

5.3 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

5.4 Sichtbarkeit von Variablen und Methoden . . . . . . . . . . . 49<br />

6. Einfache Android Applikationen . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6.1 Ein erstes App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6.2 Ein einfaches Rechenprogramm . . . . . . . . . . . . . . . . . 56<br />

6.3 Auswahllisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

6.4 Eine Stoppuhr als Android-App . . . . . . . . . . . . . . . . . . 85<br />

6.5 Timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

6.6 Benachrichtigungen anzeigen. . . . . . . . . . . . . . . . . . . . 99<br />

5


Inhaltsverzeichnis<br />

6.7 Dateien lesen und schreiben . . . . . . . . . . . . . . . . . . . . 101<br />

6.8 SMS versenden und empfangen .................. 108<br />

7. Die Abfrage und Darstellung von Umweltdaten. . . . . . . . . . . . . . 118<br />

7.1 Geo-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />

7.2 Zeichnen auf dem Display . . . . . . . . . . . . . . . . . . . . . . 128<br />

7.3 Ein GPS-Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />

7.4 GPS-Tracks speichern . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />

7.5 Die Abfrage von Sensoren . . . . . . . . . . . . . . . . . . . . . . 155<br />

7.6 Widgets <strong>für</strong> das Display . . . . . . . . . . . . . . . . . . . . . . . . 168<br />

8. Medienwiedergabe auf dem Smartphone . . . . . . . . . . . . . . . . . . 177<br />

8.1 Eingebettete Sounddateien wiedergeben . . . . . . . . . . . . 177<br />

8.2 Frequenzen ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . 180<br />

8.3 Sounddateien aufnehmen . . . . . . . . . . . . . . . . . . . . . . 192<br />

9. <strong>Apps</strong> <strong>für</strong> Webanwendungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 201<br />

9.1 Das Anzeigen von Webseiten . . . . . . . . . . . . . . . . . . . . 201<br />

9.2 Die Wiedergabe von Internet Videos . . . . . . . . . . . . . . . 207<br />

9.3 Web <strong>Apps</strong> in Javascript und HTML . . . . . . . . . . . . . . . . 209<br />

9.4 Eine App <strong>für</strong> Wikis . . . . . . . . . . . . . . . . . . . . . . . . . . . 211<br />

9.5 Datenbankabfragen über HTTP. . . . . . . . . . . . . . . . . . . 216<br />

9.6 Socket-Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . 226<br />

10. Android und Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233<br />

10.1 Rechte und Benutzer . . . . . . . . . . . . . . . . . . . . . . . . 233<br />

10.2 Linux Kommandozeilenbefehle. . . . . . . . . . . . . . . . . . 234<br />

Nachwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239<br />

Anhang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241<br />

Javascript-Quellcodebeispiel. . . . . . . . . . . . . . . . . . . . . . . . 242<br />

Android-Manifest-Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . 251<br />

Quellenverzeichnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

Quellcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

Webadressen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

Stichwortverzeichnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254<br />

6


Vorwort<br />

Smartphones sind heutzutage ein normaler Begleiter im Alltag geworden.<br />

Nur wenige Jahre nach der Markteinführung sieht man überall Menschen,<br />

die über die Displays ihrer Telefone streichen. Doch was hat so<br />

ein Smartphone an sich, dass so viele Leute ein solches Gerät besitzen<br />

möchten. Wahrscheinlich hätten sich diese leistungsstarken Telefone<br />

ohne die Entstehung der sozialen Netzwerke und der vielen sogenannten<br />

Web 2.0-Anwendungen niemals so stark verbreitet. Aber diese kleinen<br />

tragbaren Computer mit Telefonfunktion sind zu viel mehr in der Lage,<br />

als nur die neuesten Nachrichten zu twittern oder über Facebook mit<br />

Freunden zu chatten. Die äußerst leistungsstarke Hardware, die in einem<br />

Smartphone enthalten ist, kann bei richtiger Programmierung erstaunliche<br />

Dinge vollbringen. Auch lassen sich sehr einfach Programme <strong>für</strong><br />

die verschiedensten Anwendungen schreiben, sei es ein Rechenprogramm<br />

oder eine Applikation <strong>für</strong> den Internetzugriff. Das Android-System<br />

ist erstaunlich vielseitig und mächtig, so dass wenige Zeilen <strong>für</strong> ein Programm<br />

ausreichen.<br />

Hat man erst einmal die Programmierumgebung installiert und die ersten<br />

Programme geschrieben, so wird man feststellen das es im Alltag genug<br />

Problemstellungen gibt, <strong>für</strong> die es doch sehr praktisch wäre, wenn es ein<br />

Programm <strong>für</strong> das Mobiltelefon geben würde. Was spricht also dagegen,<br />

sich mal eben eine passende App zu <strong>programmieren</strong>.<br />

Für solche Fälle wurde das vorliegende Buch geschrieben. Die hier gezeigten<br />

Beispiele führen in die verschiedenen Besonderheiten des Android-<br />

Framework ein. Anhand einfach gehaltener Programme wird hier gezeigt,<br />

wie die grundlegenden Android-Objekte funktionieren und wie sie programmiert<br />

werden. Die Bandbreite der Anwendungen reicht dabei von ganz einfachen<br />

Rechenprogrammen, über praktische Anwendungen wie Zeitmesser,<br />

bis zu Programmen, welche die Sensoren des Telefons abfragen und die<br />

gemessenen Werte darstellen. Auch die Erstellung von Web-Applikationen,<br />

welche mit Skript-Sprachen wie Javascript erstellt werden können, wird behandelt<br />

und an Beispielen dargestellt.<br />

7


Über den Autor<br />

Für die Hilfe und Unterstützung bei der Erstellung dieses Buches möchte<br />

ich mich bei meiner Lebensgefährtin und meinem Sohn sehr herzlich<br />

bedanken und wünsche dem Leser viel Freude beim Lesen und Programmieren.<br />

Über den Autor<br />

8<br />

Würselen im Januar 2012<br />

Stefan Schwark wurde 1967 in Aachen geboren und ist staatlich geprüfter<br />

Elektrotechniker. Nach dem Abschluss seiner Ausbildung zum Informationselektroniker<br />

studierte er einige Semester Elektrotechnik an der Fachhochschule<br />

in Aachen. Anschließend arbeitete er mehrere Jahre als Hardwareentwickler<br />

und Programmierer bevor er sich im Jahre 2005<br />

selbständig machte. Zu dieser Zeit begann er sich mit der Programmierung<br />

von Mobiltelefonen zu beschäftigen und veröffentlichte 2007 das Buch<br />

»JAVA ME <strong>für</strong>s Handy«. Momentan arbeitet er als Programmierer <strong>für</strong> die<br />

Steuerung und Visualisierung von Brennstoffzellensystemen.


1. Einführung in das Android-System<br />

1.1 Entwicklung<br />

Ursprünglich war Android ein Betriebssystem <strong>für</strong> Mobiltelefone. Die Entwicklung<br />

von Android beginnt im Jahr 2003. In diesem Jahr wurde die Firma<br />

Android Inc. gegründet. Die Firma war ein Start Up-Unternehmen, das sich<br />

mit der Entwicklung von Software <strong>für</strong> Mobiltelefone befasste. Über die eigentlichen<br />

Entwicklungen ist wenig bekannt. Android Inc. Mitbegründer Jeff<br />

Rubin, heute ›Director of mobile Platforms‹ bei Google, erklärte 2003 in<br />

einem Interview mit der Zeitschrift ›Business Week‹, dass man sich mit der<br />

Entwicklung von Mobiltelefonen befasst, die Informationen zum Standort<br />

des Benutzers erfassen könnten. Veröffent lichungen gab es jedoch keine.<br />

Die Webseite der Firma zeigte in dieser Zeit einige sehr kuriose Sachen, wie<br />

Comics oder private Empfehlungen, gab jedoch keinerlei Informationen über<br />

Entwicklungen oder Unternehmenszweck an. Trotzdem wurde Android Inc.<br />

2005 von Google erworben. Dies geschah zu einem Zeitpunkt, als Google<br />

mehrere kleine Start Up-Unternehmen aufkaufte. Da zu diesem Zeitpunkt<br />

die Firma Apple das iPhone bereits entwickelte, welches Anfang 2007 auf<br />

den Markt kam, gab es schon bald Gerüchte über das sogenannte gPhone.<br />

Also ein von Google entwickeltes Mobiltelefon. Nahrung bekamen diese Gerüchte,<br />

als Gespräche zwischen großen Mobiltelefon-Herstellern und Google<br />

bekannt wurden. Google dementierte zwar, aber das Gerücht hielt sich nachhaltig.<br />

Bis zum 5. November 2007, als Google erklärte, man würde kein<br />

Mobiltelefon entwickeln, sondern ein Betriebssystem. Die Gespräche mit<br />

den anderen Firmen hatten den Zweck die Open Handset Alliance zu gründen.<br />

Diese ist ein Zusammenschluss mehrerer großer Unternehmen aus der<br />

Mobilfunk Branche. Neben Herstellern von Telefonen wie LG, Samsung und<br />

HTC, finden sich hier ebenso Hersteller der benötigten Chips und auch Provider<br />

und Netzanbieter wie z. B. T-Mobile. Die Entwicklung von Android lag<br />

von nun an in der Hand dieser Vereinigung. Android stammt also nicht nur<br />

von Google, obwohl die Firma eine treibende Kraft ist, sondern ist ein freies<br />

und quell-offenes Betriebssystem, welches unter der Apache-Lizenz von der<br />

Open Handset Alliance veröffentlicht wird.<br />

Nachdem man die Entwicklung der Öffentlichkeit angekündigt hatte, ging<br />

es recht schnell vorwärts. Bereits eine Woche später wurde die erste Ver-<br />

9


1. Einführung in das Android-System<br />

sion des Software Development Kits (= SDK) veröffentlicht. Kurze Zeit danach<br />

stellten die ersten Chiphersteller schon die ersten Chipsets vor, die<br />

einen ersten Ausblick auf die Fähigkeiten des kommenden Systems ermöglichten.<br />

Die grundlegende Idee bestand darin, das Betriebssystem zusammenbauen<br />

zu können, indem man einzelne Komponenten einfach kombiniert.<br />

Was sich zunächst einfach anhört, war damals jedoch nicht üblich.<br />

Die Telefonhersteller hatten alle eigene Versionen von Betriebssystemen<br />

und eine Erweiterung war zunächst aufwendig und musste immer <strong>für</strong> die<br />

passende Hardware erstellt werden. Mit Android konnten dann auch Module<br />

von anderen Herstellern integriert werden, was die Entwicklung vereinfachte.<br />

Android ist nicht nur ein Betriebssystem. Android ist eine Sammlung von<br />

mehreren Komponenten, die erforderlich sind, um eine bestimmte Funktionalität<br />

zu erlangen. So etwas nennt man dann ›Software Stack‹. Ein solcher<br />

Software Stack beinhaltet verschiedene Teile, die die verschiedenen<br />

Aufgaben übernehmen, die benötigt werden, um eine Anwendung vollständig<br />

zu realisieren. Das ist dann nicht nur das Betriebssystem, sondern auch<br />

verschiedene Schichten darüber. Im Falle von Android besteht der Software<br />

Stack aus dem Betriebssystem, der sogenannten Middleware und einigen<br />

Programmen, welche die wichtigsten Funktionen bereitstellen.<br />

Basis des Betriebssystems ist ein Linux 2.6 Kernel. Der Kernel kümmert sich<br />

um die Kommunikation mit der eigentlichen Hardware. Er sorgt <strong>für</strong> die Verwaltung<br />

des Arbeitsspeichers und der ablaufenden Prozesse. Der Kernel stellt<br />

hier eine Hardware-Abstraktionsschicht dar. Das heißt, er besitzt logische<br />

Schnittstellen, über die er mit der nächsthöheren Schicht kommuniziert. Das<br />

hat den Vorteil, dass der Kernel der einzige Teil des Systems ist, der von der<br />

verwendeten Hardware abhängig ist. Diese Architektur macht es möglich,<br />

das Android-Betriebssystem <strong>für</strong> viele verschiedene Geräte zu portieren. So<br />

gibt es mittlerweile Android <strong>für</strong> verschiedenste Mobiltelefone und Tablet-<br />

Computer, als PC-Version <strong>für</strong> X86 Prozessoren und <strong>für</strong> zahlreiche andere<br />

Plattformen bis hin zu eingebetteten Systemen.<br />

Über der Kernelschicht steht dann die Middleware. Hierbei handelt es sich<br />

um eine Sammlung von Software, die die Verbindung zwischen der Applikation<br />

und dem Kernel regelt. Der wichtigste Teil ist die, von dem Google-<br />

Mitarbeiter Dan Bornstein entwickelte Dalvik-Maschine. Diese virtuelle Maschine<br />

stellt die JAVA-Laufzeitumgebung dar. Der Name Dalvik wurde von<br />

10


Bornstein nach einer Stadt in Island gewählt, in der einige seiner Vorfahren<br />

lebten. Die Dalvik-Maschine selbst, ist <strong>für</strong> die Ausführung des JAVA-Codes<br />

zuständig. Im Unterschied zu der normalen JAVA-Maschine ist die Dalvik-<br />

Maschine anders konzipiert. Der Unterschied liegt im zugrunde liegenden<br />

theoretischen Konstrukt. Bei der normalen JAVA-Virtual-Maschine handelt<br />

es sich um einen Kellerautomaten, während die Dalvik-Maschine als Registermaschine<br />

ausgeführt ist. Da das Modell der Dalvik-Maschine besser an<br />

moderne Prozessoren, wie den <strong>für</strong> Mobil telefone sehr häufig verwendeten<br />

ARM-Mikroprozessor angepasst ist, arbeitet es hier wesentlich ressourcensparender.<br />

Das ist ein wesentlicher Punkt, da Android <strong>für</strong> jeden Prozess eine<br />

neue Maschine startet. Da die Ressourcen eines Mobiltelefons jedoch eher<br />

begrenzt sind, muss die Dalvik-Maschine sich mit wesentlich weniger zufrieden<br />

geben als eine Virtual-Machine auf einem PC. Die Dalvik-Maschine ist<br />

auch wieder ein eigenes Open Source-Projekt und auch unter der Apache-<br />

Lizenz veröffentlicht. Zur Dalvik-Maschine gibt es auch ein eigenes Software<br />

Development Kit, welches auf der Projektwebseite erhältlich ist.<br />

1.2 Android und Linux<br />

1.2 Android und Linux<br />

Da Android zu einem großen Teil auf Linux basiert, könnte man sagen: Android<br />

ist Linux. Das wäre aber nur zu einem Teil richtig. Android besteht<br />

zwar aus einem Linux-Kern, aber der Rest des Systems hat zunächst einmal<br />

nichts mit dem Betriebssystem zu tun. Trotzdem ist es ratsam einen Blick<br />

auf diesen Unterbau zu werfen, da hier einige Gründe <strong>für</strong> bestimmte Verhaltensweisen<br />

des Android-Systems liegen.<br />

Auch wer mit Linux bisher noch nie etwas zu tun hatte, kennt dieses Betriebssystem<br />

aus den diversen Veröffentlichungen und Beilagen in den Computerzeitschriften.<br />

Hierbei handelt es sich jedoch um Linux-Distributionen, welche<br />

eine Zusammenstellung des eigentlichen Systems mit diversen Programmen<br />

und Anwendungen darstellten. Der Kern des Systems ist wesentlich kleiner.<br />

Grundsätzlich besteht Linux nur aus einem Kernel mit diversen Treibern bzw.<br />

Modulen. Selbst die darauf aufsetzende Shell, die nur eine einfache Kommandozeile<br />

zur Ver fügung stellt, hat mit dem eigentlichen Linux-System schon<br />

nichts mehr zu tun, sondern stellt in der Regel ein eigenes Projekt dar. Es besteht<br />

deswegen auch die Möglichkeit, diese Programme auszutauschen und<br />

den eigentlichen Bedürfnissen anzupassen. Deswegen basieren viele Geräte<br />

11


1. Einführung in das Android-System<br />

Bild 1: Das Android-Framework<br />

12


1.3 Open Source-Projekte<br />

<strong>für</strong> den heimischen Gebrauch, wie Router oder Netzwerkfestplatten aus kleinen<br />

Linux-Systemen mit einer minimalen Kommandoshell und den <strong>für</strong> den Betrieb<br />

nötigen Programmen. Für viele dieser Systeme gibt es daher auch andere Firmware<br />

Images, die auf Linux-Projekten wie z. B. OpenWRT basieren. Oft ist es<br />

aber auch möglich, komplette Debian-Linux-Installationen auf solchen Geräten<br />

unterzubringen. So entsteht dann aus der ausgedienten USB- Dockingstation<br />

z. B. eine IP-Webcam. Es gibt im Internet mittlerweile eine ganze Reihe solcher<br />

Projekte. Zu diesen gehören auch die zahlreichen Portierungen, welche es ermöglichen,<br />

Android auch auf nicht da<strong>für</strong> bestimmten Geräten zu installieren.<br />

Da eine solche Portierung jedoch eine sehr genaue Kenntnis des zugrunde<br />

liegenden Systems voraussetzt, würde das Thema den Rahmen dieses Buches<br />

sprengen. Trotzdem ist es ratsam, sich etwas mit diesem Betriebssystem<br />

und seinen Eigenheiten, wie der Benutzerverwaltung und der grundsätzlichen<br />

Bedienung, vertraut zu machen. Es besteht nämlich durchaus<br />

die Möglichkeit, von einer Android-Applikation aus, auf das Linux-System<br />

zuzugreifen und dort auch Befehle auszuführen. Ebenso wie Linux kennt<br />

Android einen Root User, welcher auf dem System uneingeschränkten Zugriff<br />

hat. Aus diesem Grund existieren auch zahlreiche Anleitungen und<br />

<strong>Apps</strong> im Android-Market, die es erlauben unter "diesem Benutzer" auf dem<br />

Smartphone zu arbeiten. Nur unter "diesem Benutzer" ist es z. B. möglich,<br />

bestimmte Einstellungen des Gerätes zu verändern. Wenn man also z. B.<br />

die Taktfrequenz seines Smartphone erhöhen will, dann geht das nur, wenn<br />

man die Rechte des Root Users hat.<br />

1.3 Open Source-Projekte<br />

Nicht jede Applikation muss neu geschrieben werden. Viele Anwendungen<br />

sind so komplex, dass es keinen Sinn machen würde, sich alleine zu Hause<br />

hinzusetzen und mit einem enormen Zeitaufwand das Rad neu zu erfinden.<br />

Stattdessen spart einem der Blick ins Internet oft eine Menge Zeit. Zumindest<br />

gibt es jedoch einen guten Überblick darüber, was bereits realisiert<br />

wurde. Es ist außerdem immer gut, sich anzusehen, wie ein Problem von<br />

anderen gelöst wurde.<br />

Ein Beispiel <strong>für</strong> ein solches Open Source-Projekt stellt ›gmote‹ dar. Wie <strong>für</strong><br />

Android üblich unter der Apache-Lizenz veröffentlicht, ist ›gmote‹ eine<br />

13


1. Einführung in das Android-System<br />

Applikation, welche die Fernsteuerung des Rechners über das Android-<br />

Smartphone ermöglicht.<br />

Open Source-Projekte werden in der Regel auf einer Projektwebseite veröffentlicht.<br />

Hier gibt es alle zum Projekt relevanten Informationen, soweit<br />

die Projektbetreuer sie veröffentlicht haben. Zunächst einmal kann man<br />

hier immer die Lizenz finden, unter der das Projekt veröffentlicht ist. Diese<br />

sollte man sich durchlesen, falls man z. B. eine kommerzielle Nutzung vorhat<br />

oder an dem Projekt mitarbeiten möchte. Eine Dokumentation des Projektes<br />

ist in der Regel auch immer auf der Webseite zu finden. Oftmals<br />

ergänzt durch ein Wiki oder ein Forum in dem Fragen gestellt werden<br />

können. Manche Projekte bieten auch Unterstützung durch IRC-Channels,<br />

in denen den Entwicklern direkt Fragen gestellt werden können.<br />

Die Projekte werden dann meistens in der Form von Source Code veröffentlicht.<br />

Entweder als Archiv zum Herunterladen oder auch innerhalb eines<br />

Revision Control Systems, bei dem der Quellcode über einen Client <strong>für</strong> dieses<br />

System ausgelesen werden kann. Das am meisten verwendete System<br />

ist die Software ›Apache Subversion‹. Es gibt <strong>für</strong> dieses System Client-<br />

Software <strong>für</strong> jedes Betriebssystem und es kann in mehrere Entwicklungsumgebungen<br />

und Editoren integriert werden.<br />

Hat man das passende Projekt gefunden, kann man sich den Quellcode<br />

herunterladen und diesen selber in seiner eigenen Entwicklungsumgebung<br />

bearbeiten. Oftmals kann die Software schon fast alles, was man zu <strong>programmieren</strong><br />

vorhatte. So fehlen nur ein paar Punkte, um die gewünschte<br />

Applikation <strong>für</strong> das eigene Problem zu bekommen. Diese kann man jetzt<br />

selber schreiben und den Quellcode erweitern. Bevor man nun aber dieses<br />

Programm stolz auf seiner Webseite präsentiert oder gar versucht im<br />

Android-Market zu verkaufen, gilt es daran zu denken, das dies keine Software<br />

ist, die man selber geschrieben hat. Wenn die Lizenzbedingungen eine<br />

kommerzielle Nutzung ausschließen, dann kann man es nicht verkaufen.<br />

Ebenso gehört zu einer Veröffentlichung immer der Hinweis auf das zugrunde<br />

liegende Projekt. Man kann natürlich auch einfach an dem Projekt<br />

mitarbeiten und seine Erweiterungen so der Allgemeinheit zur Verfügung<br />

stellen. Der Nächste wird davon profitieren.<br />

14


1.4 Portierungen auf Endgeräte<br />

1.4 Portierungen auf Endgeräte<br />

Android ist auf viele Endgeräte portierbar. Die Quelloffenheit des Betriebssystems<br />

ermöglicht es, das System sogar an Geräte anzupassen, <strong>für</strong> die<br />

keine Originalversion des Herstellers zu finden ist. So gibt es mittlerweile<br />

mehrere Portierungen <strong>für</strong> Android-fremde Mobiltelefone im Internet. Auch<br />

<strong>für</strong> den Einsatz auf Tablet-PCs ist Android verfügbar. Portierungen sind<br />

hier u. a. <strong>für</strong> ASUS eepC zu finden.<br />

Obwohl Android ursprünglich <strong>für</strong> den Einsatz auf Mobiltelefonen gedacht<br />

war, interessiert sich mittlerweile auch die Industrie <strong>für</strong> den Einsatz des<br />

Betriebssystems. Zur Zeit existieren schon mehrere Firmen die Android<br />

<strong>für</strong> Steuerungs- und Visualisierungsaufgaben einsetzen. Hier wird dann<br />

der zugrunde liegende Linux-Kernel an das Zielsystem, meistens ein Embedded<br />

System <strong>für</strong> den Einsatz in der Industrie, angepasst. Im Prinzip<br />

lässt sich das ohne viel Hardwareaufwand auch zu Hause realisieren, da<br />

es auch preisgünstige Embedded Linux-Systeme auf dem Markt gibt. Ein<br />

Beispiel hier<strong>für</strong> ist das weit verbreitete Beagleboard, welches im Hobbybereich<br />

sehr beliebt ist und <strong>für</strong> das bereits Portierungen existieren.<br />

Die Menge der im Internet veröffentlichten Anwendungen und Portierungen<br />

steigt ständig, so dass es den Rahmen eines Buches sprengen würde, diese<br />

auch nur annähernd darzustellen. Prinzipiell eignet sich jedes System, welches<br />

über die Möglichkeit verfügt, ein Display anzuschließen und auf dem<br />

eine Linux-Variante installiert werden kann. Es lassen sich zwar auch Anwendungen<br />

realisieren, die das User Interface nicht benutzen, aber da stellt<br />

sich die Frage nach dem Sinn des Einsatzes eines Android-Framework.<br />

15


2. Die Eclipse-Entwicklungsumgebung<br />

2.1 Die benötigte Software<br />

Schauen wir uns nun einmal an, wie so eine App aufgebaut ist und wie sie<br />

programmiert wird. Hierzu benutzen wir die freie Entwicklungsumgebung<br />

Eclipse, welche <strong>für</strong> alle Plattformen verfügbar ist. Zusätzlich zu der Entwicklungsumgebung<br />

benötigen wir noch ein aktuelles JAVA-Runtime Environment,<br />

da Eclipse ohne dieses Environment nicht ausgeführt werden kann. Um die<br />

einzelnen <strong>Schritt</strong>e darzulegen, gehen wir von einem frisch installierten Betriebssystem<br />

aus.<br />

Als erstes installieren wir das JAVA-Development Kit (= JDK), vorzugsweise<br />

in der aktuellen Version, welches von der Webseite der Firma Oracle heruntergeladen<br />

werden kann. In diesem Development Kit ist das <strong>für</strong> die<br />

Eclipse-IDE (= Integrated Development Environment) benötigte JAVA-Runtime<br />

Environment bereits enthalten, so dass es nicht extra installiert werden<br />

muss. Die Installation sollte problemlos verlaufen, da die einzigen Sachen<br />

die hier beachtet werden müssen, die eventuell nicht gewünschte Toolbar<br />

<strong>für</strong> den Internet Browser oder die manchmal unbeliebte automatische<br />

Update-Funktion ist. Beide Optionen können im Verlauf des Installationsprozesses<br />

abgewählt werden.<br />

Nachdem das Runtime Environment installiert wurde, kann nun die eigentliche<br />

Entwicklungsumgebung installiert werden. Diese kann von der Website<br />

des Eclipse-Projektes heruntergeladen werden. In unserem Fall ist die<br />

Classic-Version eine gute Wahl, da sie alles enthält, was <strong>für</strong> die Entwicklung<br />

benötigt wird. Auch hier sollte die Installation ohne große Probleme<br />

funktionieren. Nach der Fertigstellung kann die IDE gestartet werden. Wenn<br />

alles richtig verlaufen ist, fragt die Software nach dem zu verwendenden<br />

Workspace-Verzeichnis. Dieses kann als Defaultwert festgelegt und sollte<br />

gespeichert werden, wenn man nicht bei jedem Start erneut gefragt werden<br />

möchte.<br />

Damit wir jetzt auch Programme <strong>für</strong> Android entwickeln können, benötigen<br />

wir jedoch noch einiges mehr an Software. Deswegen laden wir im nächsten<br />

<strong>Schritt</strong> das aktuelle Software Development Kit (= SDK) <strong>für</strong> Android<br />

16


2.1 Die benötigte Software<br />

herunter. Das SDK kann im Development-Bereich der Android-Webseite<br />

unter www.android.com heruntergeladen werden. Bei der Installation wird<br />

geprüft, ob bereits ein JDK installiert wurde. Wenn das noch nicht geschehen<br />

ist, etwa weil nur ein JAVA-Runtime Environment installiert wurde,<br />

muss dieser <strong>Schritt</strong> jetzt nachgeholt werden. Je nachdem, welche Version<br />

des Android-SDK he runtergeladen wurde, ist die Installation etwas unterschiedlich.<br />

Für Microsoft Windows ist es die beste Wahl, das Installationspaket<br />

mit Installer herunterzuladen. Für Linux oder Mac-Systeme kann das<br />

SDK als gepacktes Archiv heruntergeladen werden. Dieses Archiv wird dann<br />

einfach an der gewünschten Stelle entpackt. Die weitere Installation erfolgt<br />

über die Eclipse-Entwicklungsumgebung.<br />

Bild 2: Die Eclipse-<br />

Entwick lungsumgebung<br />

Um das Android-SDK in die Eclipse-IDE einzubinden, ist ein extra Plugin<br />

<strong>für</strong> Eclipse verfügbar. Dieses ADT-Plugin muss als nächstes installiert werden.<br />

Dazu wird Eclipse gestartet. In der Menüleiste ist unter dem Punkt<br />

›Help‹ der Unterpunkt ›Install new Software‹ zu finden. Dieser wird ausgewählt<br />

und es erscheint der Dialog <strong>für</strong> die Installation neuer Software. Durch<br />

Klick auf den ›Add‹-Button wird nun ein Eingabefeld aufgerufen, in dem<br />

eine neue Quelle <strong>für</strong> die Installation eingegeben werden kann. Als Namen<br />

kann der von Android vorgeschlagene ›ADT-Plugin‹ verwendet werden. In<br />

17


2. Die Eclipse-Entwicklungsumgebung<br />

das Feld Location muß nun die Adresse eingetragen werden, unter der das<br />

Archiv <strong>für</strong> das Plugin heruntergeladen werden kann. Diese lautet:<br />

https://dl-ssl.google.com/android/eclipse/<br />

Aus Sicherheitsgründen sollte die https-Adresse verwendet werden. Sollten<br />

sich damit Probleme ergeben, empfiehlt Android die Installation mit<br />

http zu versuchen. Nach Klicken auf den ›OK-Button‹ wird nun das Archiv<br />

geladen. Nach kurzer Zeit erscheint der Punkt ›Developer Tools‹ im Auswahlfenster.<br />

Dieser wird nun angeklickt und nach Klicken auf ›Next‹ wird<br />

zum Akzeptieren der Lizenzbestimmungen aufgefordert. Nachdem man<br />

die Lizenzbedingungen gelesen oder zumindest zur Kenntnis genommen<br />

hat, werden diese nun akzeptiert und durch Klicken auf ›Finish‹ die<br />

Installation gestartet. Nachdem nun alle Dateien installiert sind, wird zum<br />

Neustart von Eclipse aufgefordert und damit ist die Installation des Plugins<br />

abgeschlossen.<br />

2.2 Android Virtual Devices<br />

Das neue Plugin ist nun im Menüpunkt ›Window‹ zu finden. Hier wurde der<br />

Menüpunkt ›Android SDK und AVD Manager‹ hinzugefügt. Ein Klicken auf<br />

diesen Menüpunkt führt jedoch zunächst einmal zu einer Fehlermeldung.<br />

Das liegt daran, dass Eclipse noch nicht weiß, wo das Android SDK zu finden<br />

ist. Das muss nun zunächst noch unter ›Window → Preferences‹ eingestellt<br />

werden. Hier ist unter dem Punkt ›Android‹ der Pfad des SDK einzutragen.<br />

Für Windows-Systeme also z. B. ›.../Programme/Android‹, bei<br />

Linux-Systemen der Ort, an dem das SDK entpackt wurde. Dies kann z. B.<br />

das Home-Verzeichnis sein. Nachdem man den Eintrag bestätigt hat, wird<br />

überprüft, ob alle benötigte Software vorhanden ist. Für den Fall, dass etwas<br />

fehlt, wird man nun vom SDK-Manager darauf hingewiesen und kann die<br />

benötigten Teile hier installieren. Der Einfachheit halber installiert man am<br />

besten einfach alle Pakete, die zur Verfügung stehen. Das ist in der Regel<br />

eine relativ große Zahl und dauert dementsprechend lange.<br />

Nachdem nun endlich alle benötigte Software installiert wurde, braucht<br />

man <strong>für</strong> eine Applikation natürlich auch ein Endgerät, auf dem dieses Programm<br />

laufen soll. Damit wir das erste Programm <strong>für</strong> Android auch laufen<br />

18


2.2 Android Virtual Devices<br />

lassen und testen können, brauchen wir noch ein sogenanntes AVD (Android<br />

Virtual Device), also einen Emulator auf dem das Programm ausgeführt<br />

werden kann. Zu diesem Zweck wechseln wir wieder in Eclipse und rufen<br />

hier erneut den AVD-Manager im Window-Menü auf. Hier gibt es den Menüpunkt<br />

›Virtual Devices‹ unter dem wir unsere AVD erstellen können. Nach<br />

Klicken auf ›New‹ erscheint ein Dialogfeld, in dem wir die Einstellungen <strong>für</strong><br />

unser AVD vornehmen können. Für unsere erste App reicht es, einen Namen<br />

zu vergeben und die Zielplattform auszuwählen. Die Zielplattform ist das<br />

Gerät, auf dem die App später laufen soll, also z. B. ein Gerät mit Android 2.1.<br />

Das wird nun hier ausgewählt und anschließend kann durch Klicken auf<br />

›Create‹ die AVD erstellt werden.<br />

Bild 3: Der Dialog <strong>für</strong> die Erstellung eines<br />

neuen Android-Device<br />

19


3. Grundlagen der Android-Programmabarbeitung<br />

3.1 Komponenten des Systems<br />

Wie bereits erwähnt, werden Android-Programme in JAVA programmiert.<br />

Damit aus diesem Quellcode ein fertiges Programm <strong>für</strong> den Einsatz auf<br />

einem Mobiltelefon oder einem anderen System wird, muss der Programmcode<br />

vom Android-SDK zunächst übersetzt und anschließend mit<br />

den im Projekt erstellten Ressourcen zusammengepackt werden. Hieraus<br />

erstellt das SDK nun ein Android-Installationspaket. Dieses Paket ist im<br />

Wesentlichen eine Archivdatei in der die einzelnen Komponenten enthalten<br />

sind. Diese Datei trägt die Endung .apk. Eine solche .apk-Datei enthält<br />

eine komplette Applikation und ist der normale Weg, diese auf einem<br />

Android-System zu installieren. Dazu muss dieses Archiv nur auf das<br />

Gerät kopiert werden, auf dem das Programm installiert werden soll. Ein<br />

Anklicken oder Tippen startet dann den Installations prozess.<br />

Damit die Applikation keine anderen Programme bei der Arbeit stören<br />

kann, sind verschiedene Sicherheitsmechanismen im Android-Framework<br />

und dem darunterliegenden Linux-System vorgesehen. So wird z. B. jede<br />

Applikation unter einem anderen Benutzer ausgeführt, was mit dem Linux-<br />

System ohne Probleme möglich ist. Zu diesem Zweck teilt das System dem<br />

Anwenderprogramm eine einzigartige ID zu, welche nur <strong>für</strong> diese Applikation<br />

gültig und auch nur diesem System bekannt ist. Das Anwenderprogramm<br />

kann auf diese ID nicht zugreifen. Aufgrund dieser ID werden nun<br />

die Zugriffsrechte <strong>für</strong> die Applikation und ihre Ressourcen gesetzt, so dass<br />

nur dieses Programm darauf zugreifen kann.<br />

Für jede Applikation wird nun eine eigene Dalvik-Maschine gestartet, die<br />

in einem eigenen Linux-Prozess läuft. Dadurch kann kein Programm ein<br />

anderes stören oder das System beeinträchtigen. Das Android-Framework<br />

verwaltet hierbei den Lebenszyklus der Applikation, indem es einen neuen<br />

Prozess startet, sobald dieser benötigt wird. Wenn das Programm beendet<br />

wird, so sorgt Android auch wieder <strong>für</strong> die Freigabe der Systemressourcen.<br />

20


3.1 Komponenten des Systems<br />

Diese Vorgehensweise wird als principle of least privilege e bezeichnet. Das<br />

bedeutet, dass als Voreinstellung der Applikation, so gut wie keine Rechte<br />

<strong>für</strong> den Zugriff auf andere Komponenten gegeben werden.<br />

Es gibt jedoch auch Ausnahmen von dieser Regel, damit ein Android-Programm<br />

seine Daten mit einem anderen Programm teilen kann. Dazu gibt<br />

es zwei Möglichkeiten. Man kann da<strong>für</strong> sorgen, dass beide Applikationen<br />

unter einer gemeinsamen Linux-ID ausgeführt werden. Dies erlaubt dann<br />

natürlich beiden Applikationen untereinander Ressourcen freizugeben, da<br />

das System nicht unterscheiden kann, welches Programm den Zugriff vornimmt.<br />

Die zweite Möglichkeit besteht darin, vom Benutzer die Erlaubnis<br />

<strong>für</strong> den Zugriff zu erfragen. Hierzu muss die Applikation <strong>für</strong> jeden Zugriff<br />

auf Daten, wie z. B. das Telefonbuch oder Hardware-Geräte, wie die Kamera<br />

oder Bluetooth, die benötigten Rechte gewährt bekommen. Diese<br />

Rechte werden bei der Installation des Programmes vom Benutzer zugeteilt.<br />

Android-<strong>Apps</strong> können prinzipiell aus vier verschiedenen Komponenten bestehen.<br />

Das sind die vier Typen: Activity, Service, Content Provider und<br />

Broadcast Receiver. Jede dieser verschiedenen Komponenten hat einen bestimmten<br />

Anwendungsfall innerhalb des Android-Systems und einen unterschiedlichen<br />

Lebenszyklus.<br />

Das erste ist die Activity. Eine Activity stellt genau einen Bildschirm mit<br />

einem Benutzerinterface dar. Eine komplette Applikation kann also aus einer<br />

oder mehreren Activities bestehen. Jede Activity läuft zunächst einmal<br />

<strong>für</strong> sich alleine. Durch das Zusammenwirken im Android-Framework entsteht<br />

<strong>für</strong> den Benutzer jedoch der Eindruck eines zusammenhängenden<br />

Programms. Eine Activity kann aber auch von einem anderen Programm<br />

aufgerufen werden, sofern sie es erlaubt. So ist es z. B. möglich, ein Photo<br />

an ein Mailprogramm zu übergeben und von diesem versenden zu lassen.<br />

Man programmiert also nicht alles in das Kameraprogramm, sondern nutzt<br />

einfach die Funktionen bereits vorhandener Software aus.<br />

Eine weitere Komponente des Android-Framework stellen die Services dar.<br />

Hierbei handelt es sich um Prozesse, welche kein Benutzerinterface benötigen<br />

und im Hintergrund ablaufen, um entweder sehr lange laufende Programmteile<br />

auszuführen oder mit anderen Prozessen zu kommunizieren. Ein<br />

Service kann von einer anderen Komponente gestartet werden und kann<br />

21


3. Grundlagen der Android-Programmabarbeitung<br />

anschließend Daten mit dieser, oder einer anderen Komponente an ihn angebundenen,<br />

Daten auszutauschen.<br />

Bei einem Content Provider handelt es sich um eine Komponente, welche<br />

den Zugriff auf Daten ermöglicht. Dabei ist es egal, ob es sich um Daten<br />

in einer Datei, einer Datenbank oder dem Internet handelt. Die Applikationen<br />

können mit Hilfe des Content Provider auf die Daten zugreifen und<br />

brauchen sich dabei nicht um den Ort oder das Format der Daten zu kümmern.<br />

So kann ein Programm z. B. über ein einheitliches Interface auf das<br />

Adressbuch des Gerätes zugreifen und daraus Informationen beziehen.<br />

Natürlich auch hier nur, wenn ihm die passenden Rechte gewährt wurden.<br />

Die vierte Komponente eines Android-Systems ist der Broadcast Receiver.<br />

Dieser Receiver arbeitet mit Meldungen des Systems und reagiert darauf,<br />

wenn er über die entsprechende Funktion verfügt. Broadcast Receiver haben<br />

in der Regel keine großen eigenen Programmfunktionen und sind nur<br />

da<strong>für</strong> zuständig, eine bestimmte Aktion anzustoßen, sobald ein Ereignis<br />

geschieht, wie z. B. der Empfang einer SMS oder auch das Ver löschen der<br />

Displaybeleuchtung.<br />

Eine Besonderheit des Android-Systems besteht darin, dass eine Applikation<br />

Komponenten einer anderen Applikation starten kann. Da dieses nicht<br />

direkt möglich ist, muss hierzu eine Nachricht über das System geschickt<br />

werden. Diese Systemnachricht heißt ›Intent‹ und veranlasst das System,<br />

die Komponente zu aktivieren.<br />

3.2 Die Android-Manifest-Datei<br />

Damit das Android-System eine Applikation starten kann, muss es natürlich<br />

zunächst einmal wissen, welche Dateien und Komponenten zu dieser<br />

Applikation gehören. Zu diesem Zweck gibt es die Datei AndroidManifest.<br />

xml. Diese Datei muss im Hauptverzeichnis des Projektes zu finden sein<br />

und in ihr müssen alle Komponenten der Applikation deklariert werden.<br />

Neben diesen stehen in dieser Datei noch einige andere Informationen, wie<br />

z. B. der verwendete API-Level und die Rechte, welche die Applikation benötigt.<br />

Ein Beispiel <strong>für</strong> eine Android-Manifest-Datei kann wie folgt aussehen.<br />

22


3.2 Die Android-Manifest-Datei<br />


Stichwortverzeichnis<br />

A<br />

ADT-Plugin 55<br />

AlarmManager 97<br />

AnalogClock 88<br />

Android-User Interface 30<br />

Android-Virtual Device 18<br />

API 22, 23, 24, 25,<br />

26, 156<br />

Audioausgang 192<br />

Audiogenerator 180<br />

Audio-Recorder 193<br />

B<br />

Beschleunigung 155, 156, 158,<br />

159, 166<br />

Bitmap 134<br />

BroadcastReceiver 93<br />

C<br />

Canvas 130<br />

Chronometer 87, 88<br />

CSS 242<br />

D<br />

Datenbank 217<br />

DigitalClock 89<br />

drawText() 133<br />

DrawView 129<br />

E<br />

Eclipse 16<br />

254<br />

Environment.getExternalStorage-<br />

State() 105<br />

event 126, 131, 132, 159<br />

Extended Markup Language 31<br />

F<br />

finish() 185<br />

FTP 201<br />

G<br />

GPS 118<br />

gpx-Format 149<br />

GPX-Standard 155<br />

gravity 88<br />

H<br />

HTML 242<br />

I<br />

Intent 85<br />

Internet 204<br />

J<br />

JAVA-Development-Kit 16<br />

Javascript 242<br />

K<br />

Kernel 10<br />

Klinkenstecker 191, 192


Kommandozeile 234<br />

Kurvenform 183<br />

L<br />

Layout 56<br />

LED 100<br />

Lesezugriff 105<br />

Linux 233<br />

ListView 68<br />

LocationManager 122<br />

LocationService 122<br />

M<br />

MediaPlayer 212<br />

Mikrofoneingang 192<br />

MySQL 216<br />

N<br />

Namespace 55<br />

Network 232<br />

NMEA 126<br />

Notification 100<br />

O<br />

onClick 65<br />

OnClickListener 63<br />

onCreate 52<br />

onLocationChanged() 123<br />

onReceive() 97<br />

onSensorChanged() 158, 159,<br />

163<br />

onTouchListener 130<br />

Open Handset Alliance 9<br />

P<br />

Paint 130<br />

PHP 220<br />

Port 232<br />

Projektbaum 52<br />

Prozess 236<br />

Q<br />

Quick Fix 104<br />

R<br />

Receiver 115<br />

Root 233<br />

Runtime 236<br />

Stichwortverzeichnis<br />

S<br />

SD-Karte 149<br />

Sensoren 155, 156, 158, 159,<br />

166, 167<br />

setContentView() 30<br />

Shell 236<br />

Sinuskurve 183<br />

SMS 114<br />

Socketverbindung 227<br />

Software Development Kit 16<br />

Software Stack 10<br />

Speicherkarte 102<br />

SQL 217<br />

startActivity 85<br />

Stream 236<br />

strings.xml 55<br />

Superuser 233<br />

System 233<br />

Systeminformationen 236<br />

255


Stichwortverzeichnis<br />

T<br />

Taktfrequenz 234<br />

TELNET 125, 232<br />

TextSize 87<br />

Thread 186<br />

TimePicker 93<br />

Tonerzeugung 180<br />

V<br />

Verzeichnis 236<br />

Vibrationsalarm 95<br />

Video 209<br />

256<br />

VideoView 208<br />

W<br />

Webcam 201<br />

WebView 212<br />

Wegpunkt 154<br />

Wiki 212<br />

X<br />

XML-Header 55


Stefan Schwark<br />

Android<br />

<strong>Apps</strong> <strong>programmieren</strong> <strong>–</strong> <strong>Schritt</strong> <strong>für</strong> <strong>Schritt</strong><br />

Smartphones und Tablet-Computer mit dem Betriebssystem Android fi nden immer weitere<br />

Verbreitung. Die Anzahl der Anwendungsprogramme <strong>–</strong> die sogenannten Applikationen<br />

oder kurz <strong>Apps</strong> <strong>–</strong> mit denen sich die Geräte individuell an die Vorlieben und Wünsche<br />

ihrer Benutzer anpassen lassen, steigt täglich an. Die ständig besser werdende technische<br />

Ausstattung der Geräte erlaubt inzwischen Anwendungen, die vor wenigen Jahren<br />

nur Desktop-Computern oder spezieller Hardware vorbehalten waren. Mittlerweile kann<br />

jedes Smartphone seine Position bestimmen, Videos aufnehmen und vieles andere.<br />

Man ist bei der Individualisierung seines Smartphones aber nicht auf fi x und fertige Applikationen<br />

beschränkt. Es ist einfacher als man denkt, Android-Geräte selber zu <strong>programmieren</strong><br />

und eigene <strong>Apps</strong> zu schreiben.<br />

Dieses Buch bietet eine Einführung in die Programmierung von <strong>Apps</strong> auf Android-Geräten.<br />

Es erklärt leicht nachvollziehbar die Funktionsweise des Android-Systems und <strong>Schritt</strong> <strong>für</strong><br />

<strong>Schritt</strong> die Programmierung von Applikationen.<br />

Anhand vieler Beispiele werden die verschiedensten Anwendungsmöglichkeiten gezeigt.<br />

Das reicht von einfachen Rechenprogrammen über die Abfrage von Sensoren und GPS-<br />

Daten bis zur Programmierung von Applikationen <strong>für</strong> die Internet-Kommunikation. Neben<br />

der Erstellung von Applikationen in der Programmiersprache JAVA wird auch gezeigt, wie<br />

<strong>Apps</strong> mit Hilfe von Javascript oder PHP-Skripten programmiert werden können.<br />

ISBN 978-3-89576-252-9<br />

<strong>Elektor</strong>-Verlag GmbH<br />

52072 Aachen<br />

www.elektor.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!