Special

Widget-Programmierung für Android

Android Widgets sind der letzte Schrei unter Programmierern. Um durchstarten zu können, lernen Sie hier alle wichtigen Grundlagen.

Widget-Programmierung für Android

© Kirill_M - Fotolia.com

Widget-Programmierung für Android

Viele mobile Geräte nutzen intern das von Google entwickelte und auf Linux basierende Open-Source-Betriebssystem Android. Dieses kommt auf Smartphones, Tablet-PCs oder auch Notebooks zum Einsatz. Wie bei anderen Systemen auch, führen Sie unter Android Anwendungsprogramme, Tools sowie Spiele im Vordergrund oder auch Dienste im Hintergrund aus. Starten Sie das System, dann gelangen Sie zunächst auf den Homescreen. Dieser beinhaltet - wie der Desktop anderer Systeme - Desktop-Symbole, Bedienelemente oder auch ausgeführte Minianwendungen, die so genannten Android Widgets.

Potenzial der Widgets

Die letztgenannten Programme haben Funktionen wie die in Windows Vista und Windows 7 bekannten Minianwendungen. Sie wurden mit dem Android SDK 1.5 eingeführt (Software Development Kit). Sie legen Informationen auf dem Homescreen offen, die je nach Bedarf zeitbasiert oder anhand von Systemrückmeldungen aktualisiert werden. Sie setzen Widgets aber nicht nur zur Informationsausgabe, sondern auch zur Steuerung ein.

Ferner unterstützt Android Hybrid-Widgets, die sowohl Informationen ausgeben als auch zusätzlich Steuerungsfunktionen anbieten (z.B. Musiktitel pausieren und fortsetzen). Je nach Anwendungstyp (App oder Widget) erfolgt auch die Kodierung unterschiedlich. Bekannte Widgets erlauben den Zugriff auf ausgewählte Internetinformationen, das Abrufen von standortbasierten Wetterdaten oder aber permanente Überwachung von ausgewählten Systeminformationen (z.B. Speichergrößen, Uhrzeit und Kalenderdaten).

software, smartphone, widget

© Hersteller/Archiv

Widgets legen Informationen und Bedienfunktionen auf Home- und Lockscreens offen oder aggregieren Informationen zu einem "Collection-Widget" wie Googles "Currents" rechts im Bild (Quelle: Google).

Die Android-Systemarchitektur

Die Systemarchitektur bestimmt, wie Sie Anwendungen für mobile Geräte als Entwickler umsetzen und welche Werkzeuge Ihnen an die Hand gegeben werden. Das Android-System setzt sich dabei aus dem Systemkern, Funktionsbibliotheken, einer Laufzeitumgebung und dem Application Framework zusammen. Darauf setzen die Anwendungen auf, die Bestandteil des Systems sind, oder von Drittanbietern oder Ihnen selbst bereitgestellt werden.

Der Linux-Systemkern übernimmt in Android die Aufgaben für die Energie-, Speicher- undProzessverwaltung, bietet Sicherheitsfunktionen und bindet Gerätetreiber ein (Tastatur, Bildschirm, Kamera, Flash Memory, WiFi, Audio). Über den Binder-Treiber wird die Kommunikation zwischen unterschiedlichen Prozessen realisiert.

Als Runtime wird in Android die Dalvik Virtual Machine (DVM) genutzt. Darüber und über die zugehörigen Java-Klassenbibliotheken werden Java-Anwendungen in einem speziellen Binärcode ausgeführt, der von herkömmlichem Java-Bytecode abweicht. Ausführbare Programme erhalten das Kürzel dex (Dalvic EXevcutables) und Programmpakete werden in Android Packages verpackt (APK). Die DVM wurde für mobile Geräte optimiert und ist speicherschonend auch in mehreren Instanzen ausführbar.

software, smartphone, widget

© Hersteller/Archiv

D ie Systemarchitektur von Android - Grundlage zur Anwendungsentwicklung.

Zeitkritische Routinen

Zeitkritische Routinen werden über C/C++ implementiert und über gesonderte native Bibliotheken angebunden. Darüber stehen Funktionen zur Datenverwaltung (SQLite), zur Grafikprogrammierung (OpenGL, Open GL ES, SGL Graphics Engine), zum Internetzugriff (WebKit), zur sicheren Datenübertragung (SSL - Secure Sockets Layer), zur Multimediaverwaltung (Media Framework), zur Schriftenausgabe (FreeType), zur Oberflächenverwaltung (Surface Manager) sowie wichtige Systembibliotheken (libc) bereit. Libc ist hierbei eine von Google entwickelte Bibliothek für den C-Compiler, die den Namen Bionic trägt.

Das Application Framework ist das Rahmengerüst für Anwendungen, hinter dem sich die Programmierschnittstellen verbergen (APIs - Application Programming Interfaces). Per API werden Java-Klassen angeboten, die Entwickler in eigenen Anwendungen nutzen. Das Application Framework gibt den Aufbau von Anwendungen vor und macht Funktionalitäten anwendungsübergreifend verfügbar.

Auf das Anwendungs-Framework setzen die einzelnen Android-Anwendungen auf. Diese werden teilweise bereits mit dem System ausgeliefert. Als Entwickler erstellen Sie Anwendungen für Android wahlweise unter Windows, Mac OS oder Linux. Um mobile Anwendungen direkt auf Desktop-Systemen zu testen und auszuführen, stehen konfigurierbare Emulatoren bereit. Der abschließende Test einer fertiggestellten Anwendung erfolgt auf dem mobilen Gerät.

Sie können Anwendungen wahlweise direkt überspielen, über das Internet URL-basiert an mehrere Anwender verteilen oder über Google Play, dem Anwendungsmarkt für Android-Anwendungen, einer breiten Masse von Android-Geräten online kostenfrei oder zum Kauf anbieten. In Google Play werden alle Anwendungen versionsbasiert verwaltet. So ist sichergestellt, dass das mobile Gerät direkt erkennen kann, ob bestimmte Android-Anwendungen kompatibel und damit nutzbar sind oder nicht.

Unter der Internetadresse developer.android.com/reference/packages.html rufen Sie, bezogen auf einen bestimmten API-Level, die Informationen zu den unterstützten Programmierschnittstellen ab. Kontrollieren Sie bei einer Programmentwicklung für ein eigenes Gerät aber immer erst, welche Funktionalitäten nutzbar sind. Nur so ersparen Sie sich den Ärger, dass selbst entwickelte Anwendungen auf Ihrem eigenen Gerät später nicht lauffähig sind.

In einem Anwendungsmanifest legen Sie später fest, welche Mindestversion für die Lauffähigkeit einer Anwendung vorhanden sein muss (minSdkVersion), welches Zielsystem adressiert wird (targetSdkVersion) und welche höchste Versionsnummer eines Systems generell unterstützt wird (maxSdkVersion). Die Versionsnummern werden dabei über die Ganzzahl des zugeordneten API-Levels angegeben. Die allgemeine Syntax im Anwendungsmanifest hat den folgenden Aufbau:

<uses-sdk android:minSdkVersion="inte
ger"
android:targetSdkVersion="integer"
android:maxSdkVersion="integer" />

Anhand dieser Zuweisungen wird im Rahmen der Installation oder Aktualisierung einer Anwendung entschieden, ob diese zulässig ist oder nicht. Damit ist gewährleistet, dass solche Anwendungen oder Widgets gar nicht erst installiert werden, die auf einem vorhandenen System nicht lauffähig sind.

software, smartphone, widget

© Hersteller/Archiv

Anwendungen übertragen Sie direkt oder über Google Play auf mobile Android-Geräte.

Android-Anwendungsarchitektur

Herkömmliche Android-Anwendungen setzen sich aus ein oder mehreren Activities-, Services-, Content- und Broadcast-Elementen zusammen. Eine Activity ist eine Anwendungskomponente, die einen Bildschirm für die Interaktion und Benutzereingaben verfügbar macht. Die Haupt-Activity wird auch als main activity bezeichnet. Diese wird nach dem Starten einer Anwendung angezeigt. Jede Activity kann ein oder auch mehrere Activities nachladen, wobei eine Aktivität aktiv ist und deaktivierte Aktivitäten unmittelbar angehalten werden.

Zwischen den Aktivitäten kann nach Bedarf gewechselt werden. Services sind Dienste, die bei Anwendungen genutzt werden, die im Hintergrund arbeiten. Sie werden wahlweise durch eine Activity oder den Binder gestartet. Content Provider liefern die Dateninhalte für eine Anwendung (SQLite, XML oder auch entfernte Datenspeicher in der Cloud). Über Sie greifen auch mehrere Aktivitäten oder Dienste vereinfacht auf den gleichen Datenbestand zu, wobei die Datenabfrage, das Hinzufügen von Daten oder auch das Löschen von Daten über URIs (Uniform Resource Identifier) erfolgt.

Broadcasts sind schließlich Sender für Nachrichten, auf die Empfänger (Broadcast Receiver) mit bestimmten Aktionen reagieren können. Der Eingang einer SMS, das Läuten eines Telefons, das neue Erkennen oder Wegfallen von WLAN-Netzwerken, die Uhrzeit- oder Datumsänderung oder auch Änderungen am Ladezustand des Akkus werden systemintern überwacht und versendet. Damit eine Anwendung diese Änderungsmitteilungen entgegen nehmen und verarbeiten kann, muss diese einen BroadCast-Empfänger definieren.

software, smartphone, widget

© Hersteller/Archiv

Über den API-Level legen Sie die Funktionen offen, die im Rahmen der Programmentwicklungen für mobile Geräte nutzbar sind.

Minianwendungen für Android

App-Widgets sind ein spezieller Anwendungstyp, bei dem anders als bei herkömmlichen Anwendungen nicht die Activities, sondern ein Broadcast-Empfänger im Vordergrund steht. Die wesentlichen Bestandteile eines Widgets sind ein Anwendungsmanifest, das Anwendungsinformationen im XML-Format (eXtended Markup Language) verwaltet, und eine BroadCastReceiver-Klasse, die festlegt, wie auf Nachrichten und Informationen zu reagieren ist und die im zweiten Teil behandelt werden.

Android bietet unterschiedliche Widget-Typen an: Information-Widgets machen aktualisierbare Informationen verfügbar, deren Anwahl eine zugeordnete, größere Anwendung oder eine Detailansicht offenlegt. Collection-Widgets geben dagegen entsprechend die Informationen zu mehreren Elementen des gleichen Typs, beziehungsweise einer Kollektion aus (z.B. Bildersammlungen, Nachrichten). Über die Collection-Widgets wählen Sie einzelne Elemente an und öffnen diese in einer Detailansicht.

Control-Widgets dienen als Fernsteuerungsanwendung, mit der ausgewählte Funktionen durch eine Schaltflächenanwahl abgesetzt werden. Control-Widgets bieten in der Regel nur ausgewählte Funktionen einer Anwendung an und mitunter auch Querverweise zur Hauptanwendung oder einer Detailansicht. Hybrid-Widgets kombinieren, wie eingangs erwähnt, Informationen und Steuerungsfunktionen. Im Rahmen der Entwicklung bestimmen Sie nicht nur die Widget-Inhalte (Content), sondern auch die Navigation sowie das Layout und die Größenänderung, die seit der Android-Version 3.1 steuerbar ist.

Dabei kann und muss die vom jeweiligen Gerät bereitgestellte Display-Größe berücksichtigt werden. Benötigen Widgets bestimmte Konfigurationseinstellungen, definieren Sie diese ebenfalls auf Quelltextebene. Sobald das Widget dann auf den Homescreen platziert wird, erfolgt die Abfrage der erforderlichen Konfigurationseinstellungen automatisch. Generell gilt: Der Funktionsumfang einer Minianwendung ist kompakt und beschränkt sich auf eine bestimmte Funktionalität.

Download: Tabelle

Mehr zum Thema

Windows Tipps & Tricks: Benutzerrechte unter Windows 8.1
Programme richtig installieren

Wir zeigen Ihnen, wie Sie sich unter Windows 8.1 alle Benutzerrechte verschaffen und Programme richtig installieren.
Symbolbild: Sicherheit
Android-Virenscanner

Ist ein Virenscanner für das Android-Tablet notwendig? Definitiv, ja! Wir zeigen die besten Antiviren-Apps, damit Sie sicher vor Viren und Trojaner…
Navigon für iOS und Android
Für iOS & Android

Wir stellen Navi-Apps mit Offline-Funktion für iOS und Android vor - inkl. Gratis-Apps. So sparen Sie Mobile-Traffic bei Autofahrten ins Ausland.
Android Apps - Chrome
Anleitung

Mit Google Chrome und der ARChon Runtime starten Sie Ihre Android-Apps auch am Laptop oder PC. Unsere Anleitung zeigt, wie das geht.
Android-Apps teilen
Trick

Ein Android-Smartphone - zwei Google-Play-Konten: Mit diesem Trick können Sie gekaufte Android-Apps auch auf Geräten von Familienmitgliedern und…