Android bietet eine eigene Klassenbibliothek, deren Klassen an das Betriebsystem und dessen Funktionalitäten angepasst sind.Bei der Implementierung der Applikation Capood wurde einige für Android spezifische Funktionen und Klassen genutzt. Im Folgenden werden diese Besonderheiten näher beschrieben und deren Funktion innerhalb von Capood:
SharedPreferences
SharedPreferences bieten die Möglichkeit Variablen persistent und klassen- oder applikationsübergreifend zu speichern(1). Auf diese Wiese lassen sich zum Beispiel vom Nutzer vorgenommene Einstellungen nach dem Beenden der App und über einen Neustart des Systems hinweg sichern. Zum Einsatz kommt diese Technik zum Speichern des Zustandes der im Hintergrund laufenden Services. Die App weiß, ob der Nutzer die Services laufen lassen möchte oder nicht und kann diese gegebenenfall nach einem Neustart des Systems wieder neu starten.
Service
Die abstrakte Service-Klasse wird zum Realisieren von im Hintergrund argierenden Diensten genutzt.(2) Ein Dienst kann gestartet und beendet werden. Außerdem kann ein Dienst eigenständig neu starten, wenn er zum Beispiel wegen Speichermangel gestoppt wurde, ohne dass die vom Anwender explizit gefordert wurde. (3) Der BluetoothService und der ClipListenService erben von Service.
Storage
Der persistente Speicher von Android gliedert sich in den externen und den internen Speicherbereich. Im externen Speicher können Dateien, ohne spezielle Zugriffsrechte und für jeden einsehbar, abgelegt werden. Im internen Speicherbereich kann nur der Root-Benuter im gesamten und eine Applikation in ihrem eigenen Bereich zugreifen. Der normale Anwender kann den internen Speicherbereich nicht einsehen.
Außerdem muss der externe Speicher nicht fest am Gerät installiert sein. Es kann also auch einfach kein externen Speicher vorhanden sein. In so einem Fall muss eine empfangene Datei im internen Speicher abgelegt werden. Ob der externe Speicher verwendbar ist, lässt sich über die Klasse Environment mit der Methode getExternalStorageState() ermitteln (4).
Intents und Broadcastreceiver
Intents sind Nachrichten zum Kommunikation zwischen den Komponenten innerhalb einer Anwendung und auch zwischen verschiedenen Anwendungen. Es handelt sich hierbei um ein asynchrones Kommunikationsmittel. (5)
Ein Broadcastreceiver (Interface) kann eine Intent empfangen und anschließend als Reaktion den Code seine onReceive() Methode ausführen. Dafür muss sich der entsprechende Receiver für eine bestimmte Intent-Art anmeldet.(6) Eine Intent kann sich durch sogenannte Action definieren lassen.
Auf diesem Benachrichtungskonzept basiert die Kommunikation zwischen dem Bluetoothservice und den mit ihm kommunizierenden Activities. Außerdem werden Intents zum Start von Activities und Service verwendet.
Benachrichtigungen
Zur Kommunikations mit dem Anwender besitzt Android eine Benachrichtungsleiste (meitens am oberen Bildschirmrand). Eine Benachrichtung ist dort sichtbar als kleine Symbol. Intuitiv kann man die Benachrichtungsleiste durch Wischen auf dem Bildschirm maximieren und dann die Deteil zu den Benachrichtigungen einsehen. (7)
Benachrichtungen werden zurerst mit einem NotificationCampat.Builder gebaut und dann über den SystemService NotficationManager versand. Durch integrieren einer Intent lässt sich zum Beispiel eine Activity starten, wenn die Benachrichtigung angeklickt (angetippt) wird. (8)
Notifications in Capood zeigen dem Anwender an, dass ein einen Text in die Zwischenanlage kopiert hat oder dass er eine neue Nachricht empfangen hat.
(1) http://developer.android.com/guide/topics/data/data-storage.html#pref 23.07.13
(2) http://developer.android.com/guide/components/services.html 23.07.13
(3) http://developer.android.com/guide/components/services.html#ExtendingService 23.07.13
(4) http://developer.android.com/reference/android/os/Environment.html 23.07.13
(5) vgl. Gargenta (2011) S.30f
(6) vgl. Gargenta (2011) S.34f
(7) http://developer.android.com/guide/topics/ui/notifiers/notifications.html 23.07.13
(8) http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CreateNotification 23.07.13
Einführung in die Androidentwicklung
Marko Gargenta 2011
1. Auflage
O'Reilly Verlag
Köln