Android 2. Grundlagen und Programmierung. von Marcus Pant, Arno Becker. 2., aktualisierte und erweiterte Auflage



Ähnliche Dokumente
Android 2. Grundlagen und Programmierung. dpunkt.verlag. Arno Becker Marcus Pant. 2., aktualisierte und erweiterte Auflage

Android 5. Programmieren für Smartphones und Tablets - Grundlagen und fortgeschrittene Techniken. von Arno Becker, Marcus Pant. 4., akt. u. erw.

Arno Becker Marcus Pant. Android. Grundlagen und Programmierung. I dpunkt.verlag

I Einführung 1; 1 Ein erstes Beispiel 3

Was sind dpunkt.ebooks? Was darf ich mit dem dpunkt.ebook tun? Wie kann ich dpunkt.ebooks kaufen und bezahlen? Wie erhalte ich das dpunkt.ebook?

Java Web Services in der Praxis

Agile Softwareentwicklung

Android Die 2. Auflage dieses Buchs»Android 2«erscheint Ende Mai 2010

Datenbank-Programmierung mit Visual Basic 2012 (Buch + E-Book)

Microsoft Windows SharePoint Services v3 - Das offizielle Trainingsbuch

Erbrecht in Frage und Antwort

Basiswissen Software-Projektmanagement

Basiswissen Software-Projektmanagement

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant

Ruby on Rails. Einstieg in die effiziente Webentwicklung -Grundlagen und fortgeschrittene Konzepte -Ajax / Web 2.0 -Einführung in Ruby

Nichtparametrische Datenanalyse

Soziale Marktwirtschaft im Studium

Agiles Projekmanagement mit Scrum

Agiles Produktmanagement mit Scrum

Beck'sches Formularbuch IT-Recht

Was sind dpunkt.ebooks? Was darf ich mit dem dpunkt.ebook tun? Wie kann ich dpunkt.ebooks kaufen und bezahlen? Wie erhalte ich das dpunkt.ebook?

Arbeitsrecht in Frage und Antwort

Gradle. Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle

Datenqualität erfolgreich steuern

Einsatz von ERP-Systemen in mittelständischen Unternehmen

IT-Servicemanagement mit ITIL V3

Die Zahlung mit Kreditkarte im Nah- und Fernabsatz

BAföG Bildungsförderung

Verträge über Internet-Access

Pflegeversicherung in Frage und Antwort

NBD-Prognosemodelle im Kundenbeziehungsmanagement

Die Zulässigkeit von Service Level Agreements - am Beispiel der Verfügbarkeitsklausel Braun

Marketing-Controlling

Geschäftsprozessmanagement in der Praxis

Content Management mit Joomla! 1.7 für Kids Hanke

Grundkurs Betriebssysteme

SGB XI. Soziale Pflegeversicherung

Eigenkapital versus Fremdkapital nach IFRS

Mietverhältnisse in der Insolvenz

Vahlens IFRS Praxis. Leasing nach IFRS. Beurteilung, Bilanzierung und Berichtspflichten. von Prof. Dr. Thomas Kümpel, Michael Becker. 1.

SAN - Storage Area Network

Beck-Rechtsberater im dtv Ratgeber Zeitarbeit. Was Arbeitnehmer wissen sollten. von Dr. Margit Böhme. 1. Auflage

Controlling für Kleinst- und Kleinunternehmen

mitp für Kids OpenOffice für Kids von Hans-Georg Schumann 1. Auflage

Geschäftsprozessmanagement mit Visio, ViFlow und MS Project

Qualitätsmanagement für Dienstleistungen

Datenschutzrecht: DatSchR

Multiplikatorverfahren in der Unternehmensbewertung

Google Web Toolkit. Ajax-Anwendungen einfach und schnell entwickeln. von Hans Sowa, Wolfgang Radinger, Martin Marinschek. 1.

Mehr Selbstständigkeit für Menschen mit Autismus

Beck-Wirtschaftsberater im dtv Rating. Wie Sie Ihre Bank überzeugen. von Prof. Dr. Ottmar Schneck

Public Private Partnership in der Entsorgung der gemischten Siedlungsabfälle in Deutschland

Auktionen und Revenue Management in der Automobilindustrie

Professionelles Forderungsmanagement

Public Private Partnerships und öffentliche Verschuldung

Windows Presentation Foundation - Crashkurs

TYPO3 4.3 für Webautoren

2 Begriffliche und theoretische Grundlagen... 9

Das Projektmanagement-Office

Didaktik der Informatik

Recht der IT-Sicherheit

Vorratsbewertung und Auftragsfertigung nach IFRS

Beck-Wirtschaftsberater im dtv Kundenorientierung. Bausteine für ein exzellentes Customer Relationship Management (CRM)

Fälle zum Strafrecht für Fortgeschrittene

Vereinbarungen bei Trennung und Scheidung

Schriftenreihe Energie- und Infrastrukturrecht 12. Anreizregulierung. Eine kritische Untersuchung

JuS-Referendarführer

3D-Architektur-Visualisierung

Ratgeber zum Spenden sammeln

Mit einem Geleitwort von Prof. Dr. Helmut Krcmar

Reiseversicherung. Rücktritt - Abbruch - Kranken - Gepäck. von Dr. Hubert W. van Bühren, Dr. Irmtraud Nies, Dr. Hubert Martin van Bühren, Paul Degott

Fügetechnik - Schweißtechnik

Wettbewerbsrecht, Markenrecht und Kartellrecht: WettbR

Akquisitionsfinanzierungen

Immobilienwertermittlungsverordnung: ImmoWertV

Avatare in Katastrophensimulationen

Die sechs Hebel der Strategieumsetzung

Unterhaltsrechtlich relevantes Einkommen bei Selbständigen

der Informationssicherheit

Die Auslegung der Wahrnehmungsverträge unter Berücksichtigung der digitalen Technik Siebert

Grundlagen der Unternehmensführung

Aktives Management von Corporate-Bond-Portfolios und Kreditrisiken

Praxishandbuch BPMN. Incl. BPMN 2.0. von Jakob Freund, Bernd Rücker, Thomas Henninger. 1. Auflage. Hanser München 2010

Erklärungsmodelle der Wissens(ver)teilung in Unternehmen im. Kontext der individuellen Nutzenmaximierung. - Darstellung anhand von Fallbeispielen -

Der Erschöpfungsgrundsatz des Urheberrechts im Online-Bereich

Java Micro Edition. Entwicklung mobiler JavaME-Anwendungen mit CLDC und MIDP. von Klaus D. Schmatz. 2., aktualis. u. erw. Aufl.

Sozialversicherungsbeiträge und Steuern von Selbständigen und Arbeitnehmern im Vergleich

Instrumente des Supply Chain Controlling

Christoph Puls. Zielorientiertes Management. von Logistikdienstleistungen in. Netzwerken kooperierender. Unternehmen

Privatinsolvenz in Frage und Antwort

Motivation im Betrieb

Das 1x1 der fundamentalen Aktienanalyse

DAS EINSTEIGERSEMINAR. Adobe Flash CS5. von Winfried Seimert. 1. Auflage

Führung durch Motivation

Vorzeitige Beendigung von Darlehensverträgen

Laserspektroskopie. Grundlagen und Techniken. von Wolfgang Demtröder. erweitert, überarbeitet

Methodische objektorientierte Softwareentwicklung

Transkulturelle Pflege am Lebensende

Berufswunsch Fotograf - Edition ProfiFoto

Transkript:

Android 2 Grundlagen und Programmierung von Marcus Pant, Arno Becker 2., aktualisierte und erweiterte Auflage Android 2 Pant / Becker schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung: PDA & Handheld Programmierung dpunkt.verlag 2010 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 89864 677 2

ix I Einführung 1 1 EinerstesBeispiel... 3 1.1 Projektanlegen... 3 1.2 DieersteActivity... 5 1.3 Layoutdefinieren... 6 1.4 Activitiesaufrufen... 9 1.5 DasAndroid-Manifest... 11 1.6 Fazit... 17 2 Systemaufbau... 19 2.1 Architekturübersicht... 19 2.2 DieDalvikVirtualMachine... 21 2.3 Standardbibliotheken... 23 2.4 DerAnwendungsrahmen... 24 2.5 Android-Komponenten... 24 2.6 DieKlasseContext... 26 3 Sicherheit... 27 3.1 DasSandbox-Prinzip... 27 3.2 SignierenvonAnwendungen... 28 3.3 Berechtigungen... 29 3.4 AnwendungsübergreifendeBerechtigungen... 31 II Android in der Praxis 33 4 Beispielanwendung»Amando«... 35 4.1 AusSichtdesAnwenders... 35 4.2 Kapitelübersicht... 38

x 5 Oberflächengestaltung... 39 5.1 Ziel... 39 5.2 Schnelleinstieg:Activities,LayoutsundViews... 39 5.2.1 Grundbausteine der Oberflächengestaltung......... 40 5.2.2 Oberflächenimplementieren... 41 5.3 Ressourcen... 44 5.3.1 DefinitionvonRessourcen... 44 5.3.2 ZugriffaufRessourcen... 47 5.3.3 Textressourcen... 50 5.3.4 Farbressourcen... 51 5.3.5 Größendefinitionen... 52 5.3.6 Bilder... 52 5.3.7 Animationen... 54 5.3.8 Multimediadateien... 55 5.3.9 Derraw-Ordner... 56 5.3.10 XML-Dateien... 57 5.3.11 DerAsset-Ordner... 57 5.4 LayoutsundViews... 58 5.4.1 DefinitionvonLayouts... 58 5.4.2 ÜbersichtvorhandenerLayouts... 61 5.4.3 ÜbersichtvorhandenerViews... 65 5.4.4 Viewsverwenden... 66 5.5 SchaltflächenundMenüs... 68 5.5.1 Schaltflächen... 69 5.5.2 Oberflächenereignisse... 70 5.5.3 MenüsimAllgemeinen... 71 5.5.4 Menüdefinition... 72 5.5.5 Optionsmenüs... 74 5.5.6 Kontextmenüs... 75 5.5.7 DynamischeMenügestaltung... 77 5.6 Formularverarbeitung... 79 5.6.1 Zielsetzung... 79 5.6.2 ArbeitenmitViews... 80 5.7 DasAndroid-Manifest... 84 5.8 Formatvorlagen:StylesundThemes... 86 5.8.1 Styles... 86 5.8.2 Themes... 88

xi 5.9 ImplementierungeinerBildschirmseite... 90 5.9.1 Checkliste: Bildschirmseite implementieren.......... 90 5.9.2 TextefürBildschirmseitendefinieren... 91 5.9.3 StylesundThemesdefinieren... 93 5.9.4 WeitereRessourcendefinieren... 93 5.9.5 Layoutsdefinieren... 93 5.9.6 Menüsdefinieren... 95 5.9.7 Activityimplementieren... 95 5.9.8 Android-Manifestanpassen... 97 5.9.9 BildschirmseiteimEmulatortesten... 98 5.10 TippsundTricks... 100 5.10.1 Scrolling............................................ 100 5.10.2 UmgebungsabhängigeRessourcen... 102 5.10.3 HilfeseitenmitWebViewdarstellen... 104 5.10.4 DerHierarchyViewer... 108 5.11 Fazit... 110 6 OberflächenundDaten... 111 6.1 Zielsetzung... 111 6.2 AdapterViewsundRessourcen... 112 6.3 AdapterViewsundAdapter... 113 6.3.1 ArrayAdapter... 114 6.3.2 SimpleCursorAdapter... 116 6.3.3 AufEreignissereagieren... 117 6.4 PerformanteListen... 120 6.5 Anwendungseinstellungen... 123 6.5.1 Begriffsdefinitionen... 124 6.5.2 Einstellungendefinieren... 124 6.5.3 Einstellungsseiteimplementieren... 127 6.5.4 AufEinstellungenzugreifen... 129 6.5.5 Einstellungenbearbeiten... 130 6.6 Fortschrittsanzeige... 131 6.7 Fazit... 132 7 Intents... 135 7.1 WarumgibtesIntents?... 135 7.2 ExpliziteIntents... 136 7.3 ImpliziteIntents... 137 7.3.1 Intent-FilterfürimpliziteIntents... 137 7.3.2 EineinfachesBeispiel... 140 7.3.3 Intent-Resolution... 142 7.3.4 BeispielefürimpliziteIntents... 142 7.3.5 Fehlerbehandlung... 149

xii 7.4 Sub-Activities... 150 7.4.1 Sub-Activitiesaufrufen... 150 7.4.2 Sub-Activitiesverwenden... 151 7.5 Anrufeinleiten... 155 7.6 Fazit... 156 8 Hintergrundoperationen... 159 8.1 Ziel... 159 8.2 Theorie:Prozesse,Threads,Services... 160 8.2.1 Allgemeines... 160 8.2.2 UI-Thread... 160 8.2.3 ANR... 161 8.2.4 Prozessevs.Threads... 162 8.2.5 Services... 163 8.2.6 Servicesvs.Threads... 164 8.2.7 Binder... 165 8.3 ImplementierungeinesLocalService... 168 8.3.1 LocalService... 168 8.3.2 MiteinemServiceverbinden... 169 8.3.3 Servicesstartenundstoppen... 172 8.4 TippsundTricks... 173 8.5 Callback-Mechanismen... 174 8.5.1 Handler... 175 8.5.2 Implementierung... 177 8.5.3 ThreadsmitSchleifen... 182 8.6 Fazit... 184 9 IPC Inter Process Communication... 187 9.1 AIDL... 187 9.2 Implementierung... 188 9.3 EigeneDatenobjekteperIPCübertragen... 192 9.3.1 EigeneDatenobjekteerstellen... 192 9.3.2 Parameterübergabeoptimieren... 195 9.4 AsynchroneMethodenaufrufe... 196 9.4.1 Asynchrone Methodenaufrufe mit Rückgabewert.... 197 9.4.2 Asynchrone Methodenaufrufe verwenden........... 201 9.5 Fazit... 204 10 Systemnachrichten... 205 10.1 BroadcastIntents... 205 10.2 BroadcastReceiver... 206 10.2.1 DynamischeBroadcastReceiver... 208 10.2.2 StatischeBroadcastReceiver... 210

xiii 10.3 MeldungenandenNotificationManager... 220 10.4 Fazit... 224 11 Datenbanken... 225 11.1 Zielsetzung... 225 11.2 Android:WozuDatenbanken?... 225 11.3 DasDatenbanksystemSQLite... 226 11.4 EineDatenbankerstellen... 227 11.4.1 Berechtigungen... 227 11.4.2 Schemaverwaltung... 227 11.5 Datenzugriffprogrammieren... 230 11.5.1 SQLiteDatabase Verbindung zur Datenbank........ 231 11.5.2 Datenbankanfragen... 232 11.5.3 ErgebnistypCursor... 237 11.5.4 Änderungsoperationen... 239 11.6 DatenzugriffperKommandozeile... 242 11.7 Implementierung... 244 11.7.1 EinArchitekturvorschlag... 244 11.7.2 DasSchemaerstellen... 247 11.7.3 Anfrageergebnisse an der Oberfläche darstellen..... 248 11.8 Spielzeit!... 250 12 Dateisystem... 251 12.1 AufbaudesDateisystems... 251 12.1.1 DasAnwendungsverzeichnis... 251 12.1.2 SD-Karten... 251 12.2 Verwaltung... 252 12.3 Programmierung... 253 12.3.1 ZugriffaufdasAnwendungsverzeichnis... 254 12.3.2 ZugriffaufdieSD-Karte... 257 12.4 Zusammenfassung... 258 13 ContentProvider... 259 13.1 Zielsetzung... 259 13.2 Übersicht/Grundbegriffe... 259 13.3 Content-URIs... 261 13.4 ContentProvider... 263 13.4.1 Stammdaten... 264 13.4.2 Operationen... 264 13.4.3 Lebenszyklus... 266 13.4.4 Berechtigungen... 266 13.4.5 Deployment... 266

xiv 13.5 ContentConsumer... 267 13.5.1 ContentResolver... 268 13.5.2 ZugriffaufDatenbankinhalte... 269 13.5.3 ZugriffaufDateien... 270 13.6 Implementierung... 271 13.6.1 ZugriffaufdasAndroid-Adressbuch... 271 13.6.2 DerFotoProvider... 273 13.6.3 FotoSpeicheralsContentConsumer... 280 13.7 ContentProviderfürFortgeschrittene... 282 13.7.1 AsynchroneOperationen... 282 13.7.2 AlternativenzumContentProvider... 284 14 Lebenszyklen... 285 14.1 Prozessverwaltung... 286 14.2 LebenszykluseinerActivity... 287 14.3 LebenszykluseinesService... 290 14.4 LebenszykluseinesBroadcastReceivers... 291 14.5 Activities:UnterbrechungenundEreignisse... 292 14.6 onpause() vs. onsaveinstancestate(bundle outstate)........ 293 14.7 BeispieleausderPraxis... 298 14.7.1 Beispiel:Kalender-Activity... 298 14.7.2 Beispiel:E-Mail-Programm... 300 14.7.3 Beispiel:Quick-and-dirty-Alternative... 301 15 Datenübertragung... 303 15.1 Ziel... 303 15.2 TheoretischeGrundlagen... 304 15.2.1 DasEmulator-Netzwerk... 304 15.2.2 DieInternet-Einbahnstraße... 306 15.2.3 NetzwerkunterstützungbeiAndroid... 307 15.2.4 ArtenderNetzwerkübertragung... 309 15.3 NetzwerkeninderPraxis... 309 15.3.1 Verfahren1:Geopositionsenden... 310 15.3.2 Verfahren2:dauerhafteVerbindung... 311 15.3.3 AufFunklöcherreagieren... 315 15.4 Fazit... 317 16 StandortbezogeneDienste... 319 16.1 Ziel... 319 16.2 TheoretischeGrundlagen... 320 16.2.1 GPS,KMLundGPX... 320 16.2.2 EntwickelnimEmulator... 321 16.2.3 DebugMapsAPI-Keyerstellen... 322

xv 16.3 Praxisteil... 324 16.3.1 Vorbereitung... 324 16.3.2 DerLocationManager... 325 16.3.3 GoogleMaps... 327 16.3.4 MapActivity... 329 16.4 Fazit... 336 III Android für Fortgeschrittene 339 17 DebuggingundDDMS... 341 17.1 AnschlusseinesAndroid-Geräts... 341 17.2 SystemausgabenmitderLogCat... 342 17.3 DDMS:DalvikDebugMonitorService... 345 17.3.1 EmulatorControl... 346 17.3.2 Debugging... 347 17.4 Traceview... 347 18 SicherheitundVerschlüsselung... 351 18.1 Motivation... 351 18.2 GrundbegriffederVerschlüsselung... 352 18.2.1 VerschlüsselteDatenübertragung... 353 18.2.2 DatenoderObjekteverschlüsseln... 368 18.2.3 Verschlüsselunganwenden... 370 19 AutomatisiertesTesten... 373 19.1 Wastestenwir?... 373 19.2 Oberflächentests... 375 19.2.1 Instrumentierungundrobotium... 376 19.2.2 EinBeispiel... 378 19.2.3 Konfliktevermeiden... 379 19.3 Modultests... 380 19.3.1 AndroidfreieKlassen... 380 19.3.2 AndroidabhängigeKlassen... 381 19.3.3 EinBeispiel... 382 19.4 EineTeststrategie... 385 20 Anwendungenmarktreifmachen... 387 20.1 Hintergrundwissen... 387 20.2 DasEclipse-Pluginverwenden... 388 20.3 Anwendungen mittels Kommandozeile marktreif machen... 389 20.3.1 EineigenesZertifikaterstellen... 389 20.3.2 EineAndroid-Anwendungsignieren... 391

xvi 21 OptimierungundPerformance... 393 21.1 ErsteOptimierungsregeln... 393 21.2 Datenobjekte... 394 21.3 CursoroderListe?... 394 21.4 TimeisAkku!... 395 Anhang... 397 Literaturverzeichnis... 401