Professionelle Android App-Entwicklung

Professionelle Android App-Entwicklung

von: Reto Meier

Wiley-VCH, 2019

ISBN: 9783527686810 , 928 Seiten

Format: ePUB

Kopierschutz: DRM

Mac OSX,Windows PC für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones

Preis: 44,99 EUR

eBook anfordern eBook anfordern

Mehr zum Inhalt

Professionelle Android App-Entwicklung


 

Kapitel 1
Hallo Android


  • Hintergrund der Entwicklung mobiler Applikationen
  • Was ist Android?
  • Auf welchen Geräten Android läuft
  • Warum Sie für mobile Geräte und Android entwickeln sollten
  • Das Android SDK und Entwicklungs-Framework

1.1 Android-Anwendungsentwicklung


Ob Sie ein erfahrener Entwickler für mobile Geräte, ein Desktop- oder Web-Entwickler oder ein kompletter Programmieranfänger sind, Android stellt eine aufregende Möglichkeit dar, Anwendungen für ein Publikum von über zwei Milliarden Android-Gerätebenutzern zu schreiben.

Sie kennen wahrscheinlich schon Android, die am weitesten verbreitete Software für Mobiltelefone. Sollten Sie dagegen dieses Buch in der Hoffnung anschaffen, dass es ihnen hilft, eine unaufhaltsame Armee von emotionslosen Roboter-Kriegern zu schaffen, die dem unerbittlichen Wunsch folgen, die Erde von der Geißel der Menschheit zu reinigen, sollten Sie den Kauf dieses Buch (und Ihre Lebensziele) überdenken.

Bei der Vorstellung von Android im Jahre 2007 beschrieb Andy Rubin es mit folgenden Worten:

»Die erste wirklich offene und umfassende Plattform für mobile Geräte. Es umfasst ein Betriebssystem, eine Benutzeroberfläche und Anwendungen – allesamt Software für den Betrieb eines Mobiltelefons, jedoch ohne die proprietären Hindernisse, die die mobile Innovation behindert haben.«

Where’s My Gphone? (http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html)

Seitdem hat sich Android über Mobiltelefone hinaus entwickelt und bietet eine Entwicklungsplattform für eine immer breitere Palette von Hardware wie Tablets, Fernseher, Uhren, Autos und das Internet of Things (IoT).

Android ist ein Open-Source-Software-Stack, der ein Betriebssystem, Middleware und wichtige Anwendungen für mobile und eingebettete Geräte enthält.

Entscheidend für uns als Entwickler ist, dass es auch eine Vielzahl von Bibliotheken enthält, die es ermöglichen, Anwendungen zu schreiben, die das Aussehen, das Gefühl und die Funktion der Android-Geräte prägen, auf denen sie laufen.

In Android werden System-, Bundle- und alle Anwendungen von Drittanbietern mit den gleichen APIs geschrieben und von der gleichen Laufzeitumgebung ausgeführt. Diese APIs bieten Hardwarezugriff, Videoaufzeichnung, standortbasierte Dienste, Unterstützung für Hintergrunddienste, Karten, Benachrichtigungen, Sensoren, relationale Datenbanken, Kommunikation zwischen Anwendungen, Bluetooth, NFC sowie 2D- und 3D-Grafik.

Dieses Buch beschreibt, wie Sie diese APIs verwenden, um Ihre eigenen Android-Anwendungen zu erstellen. In diesem Kapitel lernen Sie einige Richtlinien für die Entwicklung auf mobiler und eingebetteter Hardware kennen und lernen einige der Plattformfunktionen kennen, die Android-Entwicklern zur Verfügung stehen.

Android verfügt über leistungsfähige APIs, ein riesiges und vielfältiges Ökosystem von Benutzern, exzellente Dokumentation, eine blühende Entwickler-Community und erfordert keine Kosten für Entwicklung oder Vertrieb. Da das Ökosystem der Android-Geräte ständig wächst, haben Sie die Möglichkeit, innovative Anwendungen für Benutzer zu erstellen, unabhängig von Ihrer Entwicklungserfahrung.

1.2 Ein wenig Hintergrund


In den Tagen vor Instagram, Snapchat und Pokémon Go, als Google noch ein Zwinkern in den Augen seiner Gründer war und Dinosaurier die Erde durchstreiften, waren Mobiltelefone nur so kleine, tragbare Telefone, die in eine Aktentasche passen und über Batterien verfügen, die bis zu mehreren Stunden halten können. Sie boten jedoch die Freiheit, Anrufe zu tätigen, ohne physisch mit dem Festnetz verbunden zu sein.

In den Jahren seit der Markteinführung des ersten Android-Geräts sind Smartphones allgegenwärtig und unverzichtbar geworden. Die Weiterentwicklung der Hardware hat die Geräte leistungsfähiger gemacht, mit größeren, helleren Bildschirmen und fortschrittlicher Hardware wie Beschleunigungssensoren, Fingerabdruckscannern und ultrahochauflösenden Kameras.

Dieselben Fortschritte haben in jüngster Zeit zu einer starken Zunahme zusätzlicher Formfaktoren für Android-Geräte geführt, darunter eine Vielzahl von Smartphones, Tablets, Uhren und Fernsehgeräten.

Diese Hardware-Innovationen bieten einen fruchtbaren Boden für die Software-Entwicklung und bieten viele Möglichkeiten, innovative neue Anwendungen zu schaffen.

1.2.1 Die nicht allzu ferne Vergangenheit


In den frühen Tagen der Entwicklung nativer Telefonanwendungen mussten Entwickler, die im Allgemeinen in Low-Level C oder C++ programmierten, die spezifische Hardware verstehen, für die sie programmiert haben, typischerweise ein einzelnes Gerät oder möglicherweise eine Reihe von Geräten eines einzigen Herstellers. Die Komplexität dieses Ansatzes führte dazu, dass die Anwendungen, die für diese Geräte geschrieben wurden, oft hinter ihren Hardware-Gegenstücken zurückblieben. Mit fortschreitender Hardwaretechnologie und mobilem Internetzugang ist dieser geschlossene Ansatz veraltet.

Der nächste bedeutende Fortschritt in der Entwicklung von Mobiltelefonanwendungen war die Einführung von Java-gehosteten MIDlets. MIDlets wurden auf einer Java Virtual Machine (JVM) ausgeführt, einem Prozess, der die zugrunde liegende Hardware abstrahiert und es Entwicklern ermöglicht, Anwendungen zu erstellen, die auf vielen Geräten laufen, die die Java-Laufzeitumgebung unterstützen.

Leider führte diese Bequemlichkeit dazu, dass der Zugriff auf die Gerätehardware stärker eingeschränkt wurde. Ebenso galt es als normal, dass Anwendungen von Drittanbietern andere Hardwarezugriffs- und Ausführungsrechte erhalten als solche, die von den Telefonherstellern an native Anwendungen vergeben wurden, wobei MIDlets oft nur wenige von beiden erhalten.

Die Einführung von Java MIDlets erweiterte die Zielgruppe der Entwickler, aber das Fehlen von Low-Level-Hardwarezugriff und Sandbox-Ausführung bedeutete, dass die meisten mobilen Anwendungen reguläre Desktop-Programme oder Websites waren, die für die Darstellung auf einem kleineren Bildschirm konzipiert waren, und nicht die Vorteile der inhärenten Mobilität der Handheld-Plattform nutzten.

1.2.2 Leben in der Zukunft


Bei seiner Einführung war Android Teil einer neuen Welle moderner mobiler Betriebssysteme, die speziell zur Unterstützung der Anwendungsentwicklung auf immer leistungsfähigerer mobiler Hardware entwickelt wurden.

Android bietet eine offene Entwicklungsplattform, die auf einem Open-Source-Linux-Kernel basiert. Der Hardwarezugriff steht allen Anwendungen über eine Reihe von APIBibliotheken zur Verfügung, und die Interaktion mit den Anwendungen wird bei sorgfältiger Kontrolle vollständig unterstützt.

Unter Android sind alle Anwendungen gleichberechtigt. Anwendungen von Drittanbietern und systemeigene Android-Anwendungen werden mit den gleichen APIs geschrieben und in der gleichen Laufzeitumgebung ausgeführt. Benutzer können die meisten Systemanwendungen durch eine Alternative eines Drittanbieters ersetzen; sogar das Telefonprogramm und der Startbildschirm können ersetzt werden.

1.3 Das Android-Ökosystem


Das Android-Ökosystem besteht aus einer Kombination von drei Komponenten:

  • Ein freies, quelloffenes Betriebssystem für Embedded-Geräte
  • Eine Open-Source-Entwicklungsplattform für die Erstellung von Anwendungen
  • Geräte, auf denen das Android-Betriebssystem läuft (und die dafür erstellten Anwendungen)

Genauer gesagt, besteht Android aus mehreren notwendigen und abhängigen Teilen, einschließlich der folgenden:

  • Ein Compatibility Definition Document (CDD) und eine Compatibility Test Suite (CTS), die die Fähigkeiten beschreiben, die ein Gerät benötigt, um den Android-Software-Stack zu unterstützen.
  • Ein Linux-Betriebssystemkern, der eine Low-Level-Schnittstelle mit Hardware, Speicherverwaltung und Prozesssteuerung bietet, die für mobile und Embedded-Geräte optimiert ist.
  • Open-Source-Bibliotheken für die Anwendungsentwicklung, einschließlich SQLite, WebKit, OpenGL und eines Medienmanagers.
  • Ein Laufzeitsystem, das zum Ausführen und Bereitstellen von Android-Anwendungen verwendet wird, einschließlich der Android Run Time (ART) und der Kernbibliotheken, die Android-spezifische Funktionen bereitstellen. Das Laufzeitsystem ist so ausgelegt, dass es klein und effizient für den Einsatz auf kleinen Geräten läuft.
  • Ein Anwendungs-Framework, das Systemdienste der Anwendungsschicht, einschließlich Window Manager und Location Manager, Datenbanken, Telefonie und Sensoren, unabhängig voneinander zur Verfügung stellt.
  • Ein Framework für die Benutzeroberfläche, das zum Bereitstellen und Starten von Apps verwendet wird.
  • Eine Reihe von vorinstallierten Kern-Apps.
  • Ein Software Development Kit (SDK) zur Erstellung von Apps, einschließlich der zugehörigen Tools, IDE, Beispielcode und...