p. 1
uchs ses b ge die aufla die 2 » t ende schein er « oid 2010 andr mai 2
[close]
p. 3
android s ieses buch auflage d die 2 nde mai 2 erscheint e « ndroid 2010 »a
[close]
p. 4
dipl inform arno becker ist als geschäftsführender gesellschafter der visionera gmbh in bonn verantwortlich für den bereich »mobile business« er beschäftigt sich seit mehreren jahren mit der programmierung von mobilgeräten und verfügt über umfangreiche expertise im bereich j2me dipl inform marcus pant ist geschäftsführender gesellschafter der visionera gmbh in bonn seine schwerpunkte liegen in der entwicklung von java-ee-systemen sowie dem agilen projektmanagement.
[close]
p. 5
arno becker · marcus pant android grundlagen und programmierung buchs dieses uflage die 2 a « roid 2010 »and mai 2 t ende in ersche
[close]
p. 6
lektorat rené schönfeldt copy-editing annette schwarz ditzingen satz science more www.science-and-more.de herstellung nadine berthel umschlaggestaltung helmut kraus www.exclam.de druck und bindung koninklijke wöhrmann b.v zutphen niederlande bibliografische information der deutschen bibliothek die deutsche bibliothek verzeichnet diese publikation in der deutschen nationalbibliografie detaillierte bibliografische daten sind im internet über
[close]
p. 7
v vorwort hinweis die 2 auflage dieses buchs erscheint unter dem titel »android 2 grundlagen und programmierung« ende mai 2010 im dpunkt.verlag isbn 978-3-89864-677-2 am 12 november 2007 veröffentlichte google eine vorabversion des android-sdk einer entwicklungsumgebung für die androidplattform die überwiegend positive reaktion darauf verdeutlicht wie groß das interesse des marktes und der entwickler an einer offenen plattform für mobile computer mittlerweile ist computer und mobiltelefon verschmelzen immer mehr zu einer einheit die ersten android-geräte sind auf dem markt seit kurzem gibt es auch androidnetbooks mit umts-modul es findet ein wandel statt der das mobiltelefon in einen tragbaren internetfähigen computer verwandelt auf dem man ganz selbstverständlich und unkompliziert anwendungen installiert diese anwendungen schaffen den mehrwert apple hat mit dem iphone gezeigt dass ein mobiltelefon gut bedienbar sein kann damit wurde ein trend in gang gesetzt in den sich android nahtlos eingereiht hat ein berührungsempfindlicher großer bildschirm und ein kostengünstiger internetzugang führen zu neuen geräten die beim kunden sehr gut ankommen wir verzichten wenn wir von android-geräten reden bewusst auf das wort »mobiltelefon« stattdessen verwenden wir den begriff »mobiler computer« mc in anlehnung an pc personal computer ein buch zu android wir werden in diesem buch die grundprinzipien von android vorstellen dabei geht es uns nicht darum die dokumentation von android abzuschreiben sondern anhand von codebeispielen einen zielgerichteten blick auf die grundlegenden themen der softwareentwicklung mit dem android-sdk zu werfen wir konzentrieren uns auf kernthemen die fast jede androidanwendung benötigt oberflächen und menüs datenübertragung datenspeicherung hintergrunddienste und lose kopplung von androidkomponenten weniger von interesse sind für uns multimediale themen wie zum beispiel video audio oder die verwendung der eingebauten kamera wir werden die einzelnen komponenten von andro »mobiler computer« ziel grundprinzipien praktisch vermitteln
[close]
p. 8
vi vorwort id kennenlernen und uns anschauen wie diese miteinander interagieren wir erklären was hinter den kulissen von android passiert und wie man mit diesem wissen stabile und performante anwendungen schreibt darüber hinaus werden wir weitere wichtige themengebiete wie location based services und sicherheit behandeln und zeigen wie man eine android-anwendung »marktreif« macht da android noch relativ neu ist sind die quellen für softwareentwickler noch etwas unübersichtlich einen ersten einstieg in android zu finden ist nicht einfach daher haben wir bedarf gesehen die kernthemen von android in einem deutschsprachigen buch ausführlich vorzustellen das buch richtet sich in erster linie an entwickler grundkenntnisse der programmiersprache java sollten vorhanden sein alle themen werden ausführlich in theorie und praxis behandelt so dass eine solide ausgangsbasis für die entwicklung eigener anwendungen vermittelt wird neben entwicklern wollen wir aber auch technische projektleiter ansprechen viele fragestellungen und probleme des mobile business wie z.b die themen sicherheit und verschlüsselung werden in das buch mit einbezogen aufbau des buchs teil i warum dieses buch für wen ist dieses buch teil ii teil iii wie lese ich dieses buch wir werden in teil i des buchs mit einem einfachen beispiel beginnen welches aber schon über die übliche hello-world-anwendung hinausgeht es stellt die wichtigsten elemente einer anwendung vor dem folgt ein wenig theorie die für das verständnis von android wichtig ist in teil ii steigen wir weiter in die praxis ein an einem durchgängigen beispiel stellen wir kapitel für kapitel wichtige elemente des android-sdk vor die teile die das beispielprogramm um eine fachlichkeit erweitern haben wir als iterationen gekennzeichnet themen die nicht direkt bestandteile des beispielprogramms sind als exkurse jede iteration enthält einen theoretischen und einen praktischen teil der theoretische teil soll helfen ein tieferes verständnis für die arbeitsweise der einzelnen komponenten und bestandteile von android zu vermitteln im praxisteil wenden wir dann das wissen an in teil iii befassen wir uns mit fortgeschrittenen themen rund um die android-anwendungsentwicklung debugging anwendung »marktreif« machen sicherheit und verschlüsselung optimierung und performance sowie aspekte der kompatibilität wir empfehlen das einsteigerbeispiel in teil i durchzugehen der rest von teil i ist theoretischer natur und kann jederzeit separat gelesen werden.
[close]
p. 9
vorwort teil ii sollte in der vorgegebenen reihenfolge der kapitel durchgearbeitet werden da diese aufeinander aufbauen wir haben wert auf eine ausführliche theoretische behandlung der einzelnen themen gelegt damit ein verständnis für die funktionsweise der android-plattform entsteht teil iii kann isoliert betrachtet werden wer gleich von beginn des buchs an viel selbst mit den codebeispielen experimentiert kann sich ein paar gute tipps in kapitel 16 debugging und das ddms-tool holen das android-sdk bringt zwei verschiedene emulatoren mit die sich im wesentlichen in der bildschirmgröße unterscheiden wir haben in den abbildungen jeweils den für die darstellung des programms besser geeigneten emulator verwendet zum leidigen thema »geschlechtsneutralität« halten wir es wie peter rechenberg in [21 »rede ich von >dem leser meine ich ja keinen mann sondern einen menschen und der ist nun einmal im deutschen grammatisch männlich selbstverständlich ist mit >dem leser der männliche und der weibliche leser gemeint.« die website zum buch auf der website zum buch www.androidbuch.de finden sie den quelltext der programmierbeispiele eventuelle korrekturen ein glossar mit android-fachbegriffen sowie weiterführende links zum thema androidentwicklung vii zwei emulatoren danksagung wir danken unseren familien partnern freunden und kollegen für die unterstützung und die geduld ebenfalls danken möchten wir dem dpunkt.verlag insbesondere herrn schönfeldt für die angenehme und hilfreiche zusammenarbeit bedanken möchten wir uns bei allen gutachtern besonders bei klaus-dieter schmatz für die umfangreiche begutachtung des manuskripts und die vielen wertvollen und hilfreichen hinweise.
[close]
p. 11
ix inhaltsverzeichnis hinweis die 2 auflage dieses buchs erscheint unter dem titel »android 2 grundlagen und programmierung« ende mai 2010 im dpunkt.verlag isbn 978-3-89864-677-2 i 1 1.1 1.2 1.3 1.4 1.5 1.6 2 2.1 2.2 2.3 2.4 2.5 2.6 3 3.1 3.2 3.3 3.4 einführung ein erstes beispiel projekt anlegen die erste activity layout definieren activities aufrufen das android-manifest fazit 1 3 3 4 5 8 11 13 systemaufbau 15 architekturübersicht 15 die dalvik virtual machine 17 standardbibliotheken 19 der anwendungsrahmen 19 android-komponenten 20 die klasse context 21 sicherheit 23 die sandbox 23 signieren von anwendungen 24 berechtigungen 24 anwendungsübergreifende berechtigungen 25 ii 4 4.1 4.2 5 5.1 5.2 android in der praxis 29 projekt »staumelder« 31 aus sicht des anwenders 31 iterationsplan 34 iteration 1 oberflächengestaltung 37 iterationsziel 37 activities layouts und views 37
[close]
p. 12
x inhaltsverzeichnis 5.3 5.4 5.5 5.6 5.7 5.8 6 6.1 6.2 5.2.1 grundbegriffe der oberflächengestaltung 5.2.2 zusammenwirken der elemente 5.2.3 theorie der implementierung ressourcen 5.3.1 definition von ressourcen 5.3.2 zugriff auf ressourcen 5.3.3 text-ressourcen 5.3.4 farb-ressourcen 5.3.5 formatvorlagen styles und themes 5.3.6 bilder 5.3.7 multimediadaten menüs 5.4.1 allgemeine menüdefinition 5.4.2 optionsmenüs 5.4.3 kontextmenüs 5.4.4 dynamische menügestaltung das android-manifest implementierung eines bildschirmdialogs 5.6.1 checkliste dialogerstellung 5.6.2 texte für bildschirmseiten definieren 5.6.3 multimedia-ressourcen definieren 5.6.4 bildschirmseite definieren 5.6.5 menüs definieren 5.6.6 activity implementieren 5.6.7 android-manifest anpassen 5.6.8 bildschirmdialog im emulator testen tipps und tricks 5.7.1 scrolling 5.7.2 umgebungsabhängige ressourcen fazit 38 38 39 41 41 42 44 45 46 49 50 51 51 53 54 56 56 57 57 58 59 59 63 64 67 68 69 70 71 74 6.3 6.4 6.5 iteration 2 oberflächen und daten 75 zielsetzung 75 arbeiten mit views 75 6.2.1 zugriff auf views 76 6.2.2 adapterviews und adapter 78 oberflächenereignisse 79 implementierung von listendarstellungen 80 6.4.1 bildschirmdialog definieren 80 6.4.2 liste mit daten füllen 81 6.4.3 auf listenauswahl reagieren 83 anwendungseinstellungen 84 6.5.1 begriffsdefinitionen 84
[close]
p. 13
inhaltsverzeichnis xi 6.6 6.7 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 8 8.1 8.2 6.5.2 einstellungen definieren 6.5.3 auf einstellungen zugreifen 6.5.4 einstellungen bearbeiten fortschrittsanzeige fazit exkurs intents warum gibt es intents explizite intents implizite intents intent-filter für implizite intents empfang eines intent intent-resolution sub-activities fazit iteration 3 hintergrundprozesse iterationsziel theoretische grundlagen 8.2.1 prozesse und threads 8.2.2 langlaufende prozesse 8.2.3 prozesse vs threads implementierung 8.3.1 services 8.3.2 threads fazit exkurs systemnachrichten broadcast intents broadcast receiver dynamische broadcast receiver statische broadcast receiver meldungen an den notification manager fazit exkurs dateisystem aufbau des dateisystems 10.1.1 sd-karten 10.1.2 berechtigungen dateizugriffe 10.2.1 verzeichnisverwaltung 10.2.2 dateiverwaltung 85 87 87 90 91 93 93 94 94 95 100 101 102 104 105 105 106 106 107 108 109 109 131 138 141 141 142 143 145 148 152 155 155 155 156 157 157 159 8.3 8.4 9 9.1 9.2 9.3 9.4 9.5 9.6 10 10.1 10.2
[close]
p. 14
xii inhaltsverzeichnis 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12 12.1 12.2 12.3 iteration 4 datenbanken iterationsziel wozu datenbanken das datenbanksystem sqlite eine datenbank erstellen 11.4.1 berechtigungen 11.4.2 schemaverwaltung datenzugriff programmieren 11.5.1 sqlitedatabase verbindung zur datenbank 11.5.2 datenbankanfragen 11.5.3 ergebnistyp cursor 11.5.4 Änderungsoperationen datenzugriff per kommandozeile alternative zu sqlite implementierung 11.8.1 ein architekturvorschlag 11.8.2 das schema erstellen 11.8.3 anfrageergebnisse an der oberfläche darstellen fazit iteration 5 content provider iterationsziel grundbegriffe auf content provider zugreifen 12.3.1 content-uris 12.3.2 zugriff über implizite intents 12.3.3 zugriff über content resolver content provider erstellen 12.4.1 allgemeines 12.4.2 datenbank-zugriffsmethoden 12.4.3 datei-zugriffsmethoden asynchrone operationen deployment alternativen zum content provider implementierung 12.8.1 ein datenbank-content-provider 12.8.2 fazit 12.8.3 ein datei-content-provider exkurs lebenszyklen prozess-management lebenszyklus von komponenten 13.2.1 lebenszyklus einer activity 161 161 161 162 163 163 164 166 167 168 173 175 178 180 180 181 183 184 186 189 189 190 191 191 193 194 196 197 198 199 200 202 203 204 204 215 216 219 219 221 221 12.4 12.5 12.6 12.7 12.8 13 13.1 13.2
[close]
p. 15
inhaltsverzeichnis xiii 13.3 13.2.2 lebenszyklus eines service 13.2.3 lebenszyklus eines broadcast receivers 13.2.4 activities unterbrechungen und ereignisse beispiele aus der praxis 13.3.1 beispiel kalender-activity 13.3.2 beispiel e-mail-programm 13.3.3 beispiel quick-and-dirty-alternative iteration 6 netzwerk und datenübertragung iterationsziel theoretische grundlagen 14.2.1 das emulator-netzwerk 14.2.2 die internet-einbahnstraße 14.2.3 androids netzwerkunterstützung 14.2.4 arten der netzwerkübertragung netzwerken in der praxis 14.3.1 verfahren 1 stau melden 14.3.2 daten zum stauserver übertragen 14.3.3 verfahren 2 dauerhafte verbindungen fazit iteration 7 location based services iterationsziel theoretische grundlagen 15.2.1 gps kml und gpx 15.2.2 entwickeln im emulator 15.2.3 debug maps api-key erstellen praxisteil 15.3.1 vorbereitung 15.3.2 der location manager 15.3.3 google maps 15.3.4 mapactivity fazit 223 224 224 229 229 230 232 235 235 236 236 238 239 240 241 242 248 250 259 261 261 262 262 262 263 265 265 266 270 271 276 14 14.1 14.2 14.3 14.4 15 15.1 15.2 15.3 15.4 iii 16 16.1 16.2 android für fortgeschrittene debugging und das ddms-tool anschluss eines android-geräts per usb ddms dalvik debug monitor service 16.2.1 emulator control 16.2.2 debugging 277 279 279 280 281 284
[close]