: Stephan Elter, Sven Haiges
: Android Schnelleinstieg
: entwickler.press
: 9783868026221
: 1
: CHF 18.00
:
: Betriebssysteme, Benutzeroberflächen
: German
: 250
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF/ePUB
Das Android-OS bleibt auf Erfolgskurs. Die Dominanz des mobilen Betriebssystems gegenüber iOS und Co. ist bis heute ungebrochen. Auch für Einsteiger auf dem Gebiet der App-Programmierung bleibt Android-Programmierung daher ein lohnenswertes Themenfeld. Stephan Elter hat den erfolgreichen Android-Schnelleinstieg von Sven Haiges von Grund auf überarbeitet und erweitert. Diese Neuauflage behandelt nach wie vor die elementaren Aspekte von Android und ermöglicht so einen schnellen und unkomplizierten Einstieg in die Entwicklung von Android-Apps. Themen wie Intents und Broadcast Receiver, Android-App-Widgets, Maps oder NFC wurden erweitert und auf den aktuellen Stand der Technik gebracht. Hinzugekommen sind unter anderem Kapitel zur Konfiguration und Installation, spannende Erweiterungen zum Android-UI sowie zur Veröffentlichung der fertigen App. In kurzen und gut lesbaren Abschnitten bringt Sie dieses Buch zu Ihrer ersten eigenen Android-App. Zielgruppe: Alle App-Entwickler, eher für Einsteiger ins Thema

Stephan Elter arbeitet als Entwickler im Norden. Neben PHP und Java sind seit dem Palm III mobile Geräte seine Leidenschaft. Er ist Autor im PHP Magazin und im Java Magazin. Neben seiner eigenen Webseite schreibt er auch häufig als Gastautor für andere Blogs. Sven Haiges arbeitet als Technology Strategist bei der Hybris GmbH in München. Neben Groovy und Grails beschäftigt er sich dort derzeit auch mit HTML5, Android und weiteren Zukunftsthemen. Sven lebt mit seiner Familie in München und kann gerne unter @hansamann auf Twitter gefolgt werden.

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 An­droid-­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„Wiederauf­erstehen“ 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:

  • Activities beherbergen die Präsentationsschicht einer jeden Android-Applikation. Darüber hinaus kann jede Activity aber auch einiges an Programmlogik beinhalten. Im Normalfall gehört zu einer Activity eine XML-Datei, die eine Oberfläche darstellt, genauso wie eine Java-Datei, die (im Extremfall) sogar die gesamte Programmlogik der App beinhalten könnte. Außer bei sehr kleinen Apps würde das aber natürlich niemand machen– hoffentlich zumindest. Das UI kann dabeiüber XML oder aber auch direkt im Programmcode erstellt werden. Realisiert wird das durch Android-UI-Komponenten, die von der Klasseandroid.view.View erben. Die so genannten ViewGroups sind dafür verantwortlich, die Views (auch Widgets oder Controls genannt) entsprechend zu positionieren. Einfacher ausgedrückt, besteht eine Oberfläche aus unterschiedlichsten Elementen, die Views genannt werden. Um diese Elemente besser anordnen zu können, gibt es wiederum verschiedene containerähnliche Elemente, das sind die genannten ViewGroups. Eigentlich ganz einfach. Eine App kannübrigens eine oder beliebig viele Aktivitäten haben und zwischen diesen hin- und herwechseln.
  • Services sind die unsichtbaren Helfer Ihrer Applikation, die je nach Applikationslogik regelmäßig erwachen und beispielsweise nach neuen E-Mails schauen. Services selbst haben kein UI, können jedoch durch das Android Notification Framework den Nutzer informieren.
  • Intents (Vorhaben, Absichten) sind ein enorm wichtiges Konzept. Sie sind nichts anderes als eine Art„Nachricht“ (oder Aufruf), die entweder direkt an einen Service oder eine Activity adressiert ist (Explicit Intents) oder systemweit wie eine