Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
2 Komponenten einer App – und gleich ein paar Basics
Bevor wir uns dem (eigentlich gar nicht so) heimlichen Hauptthema dieses Buches – den Android Activities – intensiver widmen, wollen wir uns einen Überblick über die unterschiedlichen Komponenten einer Android-Applikation verschaffen. Und wenn wir schon dabei sind, sollen auch gleich noch ein paar weitere wichtige Basics erklärt werden.
Im Vergleich zu Java ME- oder iOS-Applikationen bestehen Android-Applikationen zumeist aus vielen, relativ lose gekoppelten Teilen. Das werden für Sie in erster Linie die eben genannten Activities sein, die unter anderem das UI, das User Interface, bereitstellen. Aber Activities müssen eben nicht die einzigen Komponenten einer App sein, genauso können es Android Services, Content Provider, Intents oder Broadcast Receiver sein.
Schöne Bezeichnungen – aber wozu das Ganze?
Natürlich ist das Ganze kein Selbstzweck, es geht auch nicht um abstrakte Designziele eines beliebigen Betriebssystems. Android ist ein hochleistungsfähiges Betriebssystem für mobile Geräte. Aber so leistungsfähig die Prozessoren und so groß der Speicher der verwendeten Geräte auch sein mögen – mobil zu sein, bringt auch immer Einschränkungen mit sich. Denn irgendwo in den mobilen Geräten gibt es eine Energiequelle, die eben nicht unendlich ist, und manchmal sind die nächste Steckdose und ein passendes Ladegerät schmerzhaft weit entfernt. Ein solches System sollte deshalb nicht unnötig belastet oder sogar ständig ausgelastet werden.
Android ist deshalb so konzipiert, dass eine Applikation aus kleinen, flexiblen Komponenten bestehen kann, die jeweils sehr spezifische (Teil-)Aufgaben erledigen und sich gegenseitig aufrufen und abwechseln können.
Ein besonders wichtiger Punkt ist dabei, dass diese Komponenten bei Ressourcenknappheit sehr schnell „zum Abschuss freigegeben“ werden, wenn sie aktuell nicht mehr aktiv sind. Die Zustände (oder aktuellen Inhalte) dieser Komponenten müssen dabei aber nicht vollständig verloren gehen, sondern können recht leicht für ein schnelles „Wiederauferstehen“ vorgehalten werden. So können diese Komponenten im Bedarfsfall recht schnell wieder neu erzeugt werden, belasten das System zwischenzeitlich aber nicht mehr. Das System wird also nur mit solchen Aufgaben (und ausgeführten Programmen) belastet, die tatsächlich benötigt werden.
Auch wird nicht für jede Aufgabe, die von einer App ausgeführt werden muss, eine ressourcenhungrige grafische Oberfläche benötigt. Und es gibt Aufgaben, die problemlos unterbrochen oder ganz beendet werden können, während andere (unauffällig) im Hintergrund weiterlaufen müssen. Android stellt Ihnen deshalb maßgeschneiderte Bausteine zur Verfügung, aus denen eine App gebaut werden kann.
Eben dafür gibt es einige neue Konzepte zu verstehen, und auch wenn wir gerade am Anfang nicht die Zeit haben, jedes einzelne Element umfassend zu behandeln, wollen wir die wichtigsten kurz in einer Übersicht vorstellen:
Neben diesen Bestandteilen einer Android-Applikation gibt es natürlich auch noch andere: Widgets beispielsweise, das sind kleine Applikationen, die direkt auf dem Home Screen der Geräte ausgeführt werden. Widgets sind nicht zu verwechseln mit den Android-UI-Komponenten, die oft auch genauso bezeichnet werden. Live Folders geben vom Home Screen aus Zugriff auf Elemente eines Content Providers und können so beispielsweise Ihre gespeicherten Kontakte zugänglich machen.
2.1 Anatomie einer App – ein Blick unter die Motorhaube
Wie ist eine typische Android-Applikation nun strukturiert? Und wie finde ich mich in dieser Struktur zurecht? Werfen wir doch gleich am Anfang einen Blick auf eine schematische Darstellung einer typischen App.
Abbildung 2.1: Viel Inhalt, vor allem eine ganze Menge XML; die angegebene „strings.xml“ dient als leicht zu merkendes Beispiel
Wie man in der Abbildung sehen kann, gibt es im Inneren einer App mehr als man vielleicht vermuten würde. Eine App besteht aus unterschiedlichen Ressourcen, beispielsweise Grafiken oder MP3-Dateien, die in der App verwendet werden. Es gibt eine ganze Menge von XML-Dateien, beispielsweise eine strings.xml, in der alle Texte (auch einfache Wörter) hinterlegt sind. Genauso werden in einer App alle Farbwerte und Größenangaben in XML-Dateien hinterlegt. Einen besonderen Status hat die AndroidManifest.xml, quasi der Personalausweis unserer App. Dort werden zentrale Informationen wie der Name, die Versionsnummer und notwendige Berechtigungen (z. B. Zugriff auf das Internet) festgelegt. Das zentrale Element, das alle Elemente miteinander verbindet und den Zugriff darauf ermöglicht, ist „R“. Und nicht vergessen dürfen wir unsere Activity, denn irgendwo muss sich ja auch unser Java verstecken und die Logik untergebracht sein. Und ja, natürlich kann eine App auch mehrere Activities haben. Und alle Activities können auf die Ressourcen Ihrer App zugreifen.
Abbildung 2.2: Eine typische Activity mit einem nicht ganz so typischen Namen – sie bildet das Aussehen („activity_curt.xml“) und das Gehirn („Curt.java“) der App ab
Nun zur Praxis
Sollten Sie bisher noch keine App erstellt haben, sollten Sie das spätestens jetzt nachholen: Datei | Neu | Android Application Project. Im Zweifelsfall werfen Sie dazu noch einen kurzen Blick in unser erstes Kapitel. Dort finden Sie auch einen entsprechenden Screenshot, den wir uns deshalb an dieser Stelle sparen wollen. Sie vergeben im Assistenten einen beliebigen Namen für Ihre App, aus dem sich (allerdings nicht zwingend) auch der Projektname in Eclipse herleitet. Genauso wird der Package Name ergänzt, sollte aber weiter angepasst werden, es sei denn, Sie sind tatsächlich Besitzer der vorgegebenen Domain example.com. Weitere notwendige Angaben beziehen sich auf die Auswahl der zugrunde liegenden APIs. Minimum Required SDK1 verhindert, dass Ihre App auf Geräten installiert werden kann, deren API unter dem angegebenen Wert liegt und bei denen Sie davon ausgehen, dass sie zu alt für Ihre App sind. Unter Target...
Dateiformat: ePUBKopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.
Weitere Informationen finden Sie in unserer E-Book Hilfe.
Dateiformat: PDFKopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.