Android App Entwicklung für Dummies. Burton Michael
Чтение книги онлайн.

Читать онлайн книгу Android App Entwicklung für Dummies - Burton Michael страница 5

СКАЧАТЬ die auf Sie warten. Einzelheiten dazu finden Sie bei den Paketen android.widget und android.view in der Android-Dokumentation unter http://developer.android.com/reference/packages.html.

      Hintergrundoperationen

      In Android gibt es verschiedene Möglichkeiten, mehrere Operationen gleichzeitig ausführen zu lassen, ohne selbst Threads verwalten zu müssen (was jedoch generell nicht zu empfehlen ist). Wenn Sie Daten aus einer Datenbank laden, um diese auf dem Bildschirm anzuzeigen, verwenden Sie im Allgemeinen Loader. Loader übernehmen die Verwaltung der Hintergrund-Threads für Sie und überwachen außerdem Ihre Datenbank auf Änderungen, sodass Ihre Benutzeroberfläche aktualisiert wird, sobald sich Daten ändern. Weitere Informationen über Loader finden Sie in Kapitel 13.

      Für andere Hintergrundoperationen könnten Sie beispielsweise die Klasse AsyncTask verwenden, um eine Operation als Hintergrund-Thread auszuführen. Mit AsyncTask können Sie einen Task im Hintergrund starten und sein Ergebnis an Ihren Vordergrund-Thread weitergeben, sodass Sie Ihre Benutzeroberfläche aktualisieren können. Damit erhalten Sie ein sauberes Programmiermodell für die asynchrone Verarbeitung.

       Icon_Hand.jpgMithilfe von Threads können Sie auf einem Gerät mehrere Anweisungsmengen gleichzeitig ausführen. Sie verwenden alle denselben Speicher und dieselbe CPU, aber wenn ein Thread unterbrochen wird, weil er beispielsweise auf etwas anderes wartet, können andere Threads fortgesetzt werden, damit die CPU immer etwas zu tun hat.

      Die asynchrone Verarbeitung sollten Sie für Tasks nutzen, deren Ausführung länger als nur ein paar Sekundenbruchteile dauert, also beispielsweise für die Netzwerkkommunikation (Internet) oder das Lesen/Schreiben von Daten auf Speichermedien. Wenn die Anwender auf die Ergebnisse Ihres Tasks warten müssen, sollten Sie einen asynchronen Aufruf und ein Element auf der Benutzeroberfläche verwenden, um ihnen mitzuteilen, dass gerade irgendetwas passiert.

Icon_Warnung.jpgWenn Sie kein asynchrones Programmiermodell nutzen, könnten Anwender Ihre App (berechtigterweise) für fehlerhaft halten. Es dauert beispielsweise ein wenig, die neuesten Twitter-Mitteilungen aus dem Internet herunterzuladen. Wenn das Netzwerk stark ausgelastet ist und Ihre App nicht asynchron arbeitet, hängt sie scheinbar und reagiert nicht mehr auf Eingaben, woraufhin Anwender meinen könnten, dass ein Fehler aufgetreten ist. Wenn eine App nicht innerhalb eines angemessenen Zeitrahmens reagiert, wird ein Dialogfeld angezeigt, das den Anwender darüber informiert, dass die App nicht mehr reagiert (siehe Abbildung 1.2). Dann kann der Anwender entscheiden, ob er die App schließen oder auf ihre Wiederherstellung warten will. Größtenteils klicken die Benutzer auf OK und schließen Ihre App.

Abbildung 1.2: Hier wird gemeldet, dass eine App nicht mehr reagiert.

      Icon_Tipp.jpgAm besten betten Sie CPU-lastigen oder länger laufenden Code in einen anderen Thread ein. Die Vorgehensweise wird auf der Seite Keeping Your App Responsive auf der Website für Android-Entwickler unter http://d.android.com/guide/practices/design/responsiveness.html beschrieben.

      Hintergrunddienste

      Sie wissen möglicherweise, was ein Dienst (Service) ist, nämlich eine im Hintergrund laufende Anwendung, die nicht notwendigerweise eine Benutzeroberfläche besitzen muss. Klassische Beispiele sind die üblicherweise als Hintergrunddienst laufenden Antivirenprogramme. Auch wenn sie auf dem Bildschirm unsichtbar bleiben, wissen Sie doch, dass sie laufen.

      Auch Android-Apps können Hintergrunddienste verwenden. Die meisten als Download im Google Play Store erhältlichen Audioplayer können Sie als Hintergrunddienst laufen lassen. Auf diese Weise können Sie beim Abruf Ihrer E-Mails oder der Erledigung anderer Aufgaben, für die der Bildschirm benötigt wird, weiter Musik hören.

      Android Support Library

      Natürlich macht es am meisten Spaß, Apps für die neuesten und leistungsstärksten Geräte zu entwickeln! Es kommt jedoch auch immer wieder vor, dass Sie ältere Geräte unterstützen müssen. Schließlich verwenden nicht alle Ihre Anwender garantiert immer die allerneueste Version von Android.

      Glücklicherweise bietet Android aber auch hier eine Lösung. Sie können nämlich die Android Support Library benutzen, um Ihre Apps mit allen Geräten bis zurück in die Android-Steinzeit (etwa 2010 nach Christus) kompatibel zu machen.

      Diese Hilfsbibliotheken unterstützen nicht nur Fragmente und Loader, sondern erweitern die alten Geräte auch um einige neuere APIs wie:

      ✔ RecyclerView: Erzeugt eine endlos blätterbare View-Liste.

      ✔ CardView: Eine »Karte«, die Sie mit einer RecyclerView nutzen können, um eine blätterbare Liste mit Karten in Ihren Apps zu erstellen.

      ✔ ViewPager: Seiten nach links und rechts wischen.

      ✔ ShareCompat: Zum Teilen aller möglichen Dinge mit Freunden.

      Icon_Tipp.jpgEine vollständige Liste der Funktionen der Android Support Library finden Sie unter https://developer.android.com/tools/support-library/features.html. Unter https://developer.android.com/about/dashboards erfahren Sie, wie viele Android-Benutzer welche Android-Versionen verwenden.

      Aktionsleiste

In der Aktionsleiste bringen Sie zahlreiche Schaltflächen und Menüs unter, die den Anwendern gestatten, mit Ihrer App zu interagieren. Die Aktionsleiste wird fast immer oben quer über den Bildschirm angezeigt – man kann sie also kaum übersehen. Abbildung 1.3 zeigt ein Beispiel für die Aktionsleiste der YouTube-App.

Abbildung 1.3: Die YouTube-Aktionsleiste für ein Android-Demovideo

      Beachten Sie diese Elemente in der Aktionsleiste:

      ✔ Aufwärts-Schaltfläche, App-Logo: Tippen Sie das App-Logo in der Aktionsleiste an, um eine Ebene aufwärtszugehen.

      Icon_Hand.jpgBeachten Sie den feinen Unterschied zwischen der Aufwärts- und der Zurück-Schaltfläche. Über die Zurück-Schaltfläche kehrt der Benutzer zur vorherigen Aktivität zurück, wobei die benutzte App keine Rolle spielt. Die Aufwärts-Schaltfläche bringt den Benutzer hingegen zurück zur letzten Aktivität in der aktuellen Anwendung, selbst wenn es sich bei dieser nicht um die Aktivität handelt, die er zuletzt genutzt hat.

      Angenommen, Sie betrachten eine Webseite im Chrome-Browser und tippen einen Link an, um die YouTube-App zu starten. Wenn Sie dann die Zurück-Schaltfläche antippen, kehren Sie damit zu Chrome zurück. Über die Aufwärts-Schaltfläche gelangen Sie hingegen zur Startseite der YouTube-App.

      ✔ Seitentitel: Neben dem Symbol der Anwendung СКАЧАТЬ