App Entwicklung für Android FORTGESCHRITTENE PROGRAMMIERUNG IN JAVA DOZENT: REFERENT: PROF. DR. KLINKER RICO LOSCHWITZ Aufbau der Präsentation Die Grundlagen von Android Fortgeschrittene Programmierung mit Java Aufbau der Präsentation Die Grundlagen von Android Vorbereitung von Eclipse Fortgeschrittene Programmierung mit Java Aufbau der Präsentation Die Grundlagen von Android Vorbereitung von Eclipse Elemente einer App Fortgeschrittene Programmierung mit Java Aufbau der Präsentation Die Grundlagen von Android Vorbereitung von Eclipse Elemente einer App Erste Android-App erstellen Fortgeschrittene Programmierung mit Java Aufbau der Präsentation Die Grundlagen von Android Vorbereitung von Eclipse Elemente einer App Erste Android-App erstellen Verteilung im Google-Market / Play Store Fortgeschrittene Programmierung mit Java Aufbau der Präsentation Die Grundlagen von Android Vorbereitung von Eclipse Elemente einer App Erste Android-App erstellen Verteilung im Google-Market / Play Store Vor- und Nachteile gegenüber iOS Fortgeschrittene Programmierung mit Java Aufbau der Präsentation Die Grundlagen von Android Vorbereitung von Eclipse Elemente einer App Erste Android-App erstellen Verteilung im Google-Market / Play Store Vor- und Nachteile gegenüber iOS Beispielapps in Eclipse Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsgeschichte: Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsgeschichte: 2005: Übernahme der Firma Android durch Google Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsgeschichte: 2005: Übernahme der Firma Android durch Google 2008: Das erste Android-SDK ist verfügbar Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsgeschichte: 2005: Übernahme der Firma Android durch Google 2008: Das erste Android-SDK ist verfügbar 2009: - Google G1 mit Android 1.1 wird vertrieben - Version Cupcake(1.5); Donut(1.6); Eclair(2.0) werden veröffentlicht Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsgeschichte: 2005: Übernahme der Firma Android durch Google 2008: Das erste Android-SDK ist verfügbar 2009: - Google G1 mit Android 1.1 wird vertrieben - Version Cupcake(1.5); Donut(1.6); Eclair(2.0) werden veröffentlicht 2010: - Froyo(2.2) wird veröffentlicht. - Android läuft auf 60 verschiedenen Geräten Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsgeschichte: 2011: Gingerbread(2.3) für Smartphones und Honeycomb(3.0 und 3.1) für Tablets werden veröffentlicht Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsgeschichte: 2011: Gingerbread(2.3) für Smartphones und Honeycomb(3.0 und 3.1) für Tablets werden veröffentlicht 2012: Mit Ice Cream Sandwich(4.0) werden die Smartphone und Tablet Betriebssysteme zusammengeführt Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Stand: 05.03.2012 Quelle: http://developer.android.com/resources/dashboard/platform-versions.html Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsumgebung: Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsumgebung: (Beta) Google AppInventor (Offline 12.2011 – 03.2012) Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Die Entwicklungsumgebung: Google AppInventor (Offline) Eclipse mit Android SDK und Android Virtual Device(AVD) Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Der App Inventor: Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Der App Inventor: Entwicklungsumgebung nach dem Baukastenprinzip Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Der App Inventor: Entwicklungsumgebung nach dem Baukastenprinzip Entwicklung war bis 2011 nur online möglich. Google arbeitet in Kooperation mit dem MIT an einer neuen Version Fortgeschrittene Programmierung mit Java Die Grundlagen von Android Der App Inventor: Fortgeschrittene Programmierung mit Java Vorbereitung von Eclipse Eclipse mit Android SDK und AVD: Fortgeschrittene Programmierung mit Java Vorbereitung von Eclipse Eclipse mit Android SDK und AVD: ADT Installation (Android Development Tools) (Eclipse – Hilfe – Install new Software) Name: ADT Plugin Location: https://dl-ssl.google.com/android/eclipse Fortgeschrittene Programmierung mit Java Vorbereitung von Eclipse Eclipse mit Android SDK und AVD: ADT installation (Android Development Tools) (Eclipse – Hilfe – Install new Software) Name: ADT Plugin Location: https://dl-ssl.google.com/android/eclipse Android SDK installieren http://developer.android.com/sdk/index.html Fortgeschrittene Programmierung mit Java Vorbereitung von Eclipse Eclipse mit Android SDK und AVD: ADT installation (Eclipse – Hilfe – Install new Software) Name: ADT Plugin Location: https://dl-ssl.google.com/android/eclipse Android SDK installieren http://developer.android.com/sdk/index.html Einrichten von AVDs (Android Virtual Devices) Fortgeschrittene Programmierung mit Java Elemente einer App Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity Fortgeschrittene Programmierung mit Java Elemente einer App • Lebenszyklus der Activity Fortgeschrittene Programmierung mit Java Elemente einer App • Lebenszyklus der Activity • Laufend (running) Fortgeschrittene Programmierung mit Java Elemente einer App • Lebenszyklus der Activity • Laufend (running) • Pausierend Fortgeschrittene Programmierung mit Java Elemente einer App • Lebenszyklus der Activity • Laufend (running) • Pausierend • Gestoppt Fortgeschrittene Programmierung mit Java Elemente einer App • Lebenszyklus der Activity • Laufend (running) • Pausierend • Gestoppt • Prioritäten Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity • Intents • „Nachrichtensystem“ Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity • Intents • „Nachrichtensystem“ • Starten einer Activity oder einer anderen App Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity • Intents • „Nachrichtensystem“ • Starten einer Activity oder einer anderen App • Explizite Intents Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity • Intents • „Nachrichtensystem“ • Starten einer Activity oder einer anderen App • Explizite Intents Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity • Intents • „Nachrichtensystem“ • Starten einer Activity oder einer anderen App • Explizite Intents • Implizite Intents Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity • Intents • „Nachrichtensystem“ • Starten einer Activity oder einer anderen App • Explizite Intents • Implizite Intents Fortgeschrittene Programmierung mit Java Elemente einer App • Activities • Wird als Klasse implementiert • Abgeleitet von android.app.activity • Intents • „Nachrichtensystem“ • Starten einer Activity oder einer anderen App • Explizite Intents • Implizite Intents • Broadcast-Receiver (System Intents) Fortgeschrittene Programmierung mit Java Elemente einer App • Views • einfache Steuerelemente (Zeichenfläche z.B. Label) • Abgeleitet von android.view.* Fortgeschrittene Programmierung mit Java Elemente einer App • Views • einfache Steuerelemente (Zeichenfläche z.B. Label) • Abgeleitet von android.view.* • Widgets • Steuerelemente (z.B. Buttons, CheckBox) • Abgeleitet von android.widget.* Fortgeschrittene Programmierung mit Java Elemente einer App • Asynchrone Aufrufe • Klasse AsyncTask Fortgeschrittene Programmierung mit Java Elemente einer App • Asynchrone Aufrufe • Klasse AsyncTask Für Vorgänge die längere Zeit zur Ausführung benötigen Fortgeschrittene Programmierung mit Java Elemente einer App • Services Fortgeschrittene Programmierung mit Java Elemente einer App • Services • Hintergrunddienste Fortgeschrittene Programmierung mit Java Elemente einer App • Services • Hintergrunddienste • Ohne sichtbare Oberfläche Fortgeschrittene Programmierung mit Java Elemente einer App • Services • Hintergrunddienste • Ohne sichtbare Oberfläche Beispiele für Services: Audioplayer, Antivirenprogramme, Nachrichten abrufen (E-Mail, Facebook, Twitter …) Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Hallo Android! Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Hallo Android! Neues Android Projekt anlegen: File New Project Android Project Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektname Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektname Fortgeschrittene Programmierung mit Java API auswählen Erste Android-App erstellen Projektname Fortgeschrittene Programmierung mit Java API auswählen Package Name Erste Android-App erstellen Projektstruktur Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner src (Source) • de.Loschwitz.HelloAndroid • MainActivity.java Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner src (Source) • de.Loschwitz.HelloAndroid • MainActivity.java • Die Android-Zielbibliothek • android.jar Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner src (Source) • de.Loschwitz.HelloAndroid • MainActivity.java • Die Android-Zielbibliothek • android.jar • Der Ordner assets Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner src (Source) • de.Loschwitz.HelloAndroid • MainActivity.java • Die Android-Zielbibliothek • android.jar • Der Ordner assets • Der Ordner res Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner src (Source) • de.Loschwitz.HelloAndroid • MainActivity.java • Die Android-Zielbibliothek • android.jar • Der Ordner assets • Der Ordner res • values Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner src (Source) • de.Loschwitz.HelloAndroid • MainActivity.java • Die Android-Zielbibliothek • android.jar • Der Ordner assets • Der Ordner res • values Benennung von Ressourcen im Ordner values: • arrays.xml für Array-Ressourcen zur gemeinsamen Speicherung von ähnlichen Elementen • colors.xml für Ressourcen, die Farbwerte definieren • dimens.xml für Ressourcen, die Abmessungen definieren • string.xml für Stringwerte • styles.xml Programmierung für Formatvorlagen Fortgeschrittene mit Java (ähnlich CSS in HTML) Erste Android-App erstellen Projektstruktur • Der Ordner src (Source) • de.Loschwitz.HelloAndroid • MainActivity.java • Die Android-Zielbibliothek • android.jar • Der Ordner assets • Der Ordner res • values • layout • main.xml Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner libs Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner libs Wird standartmäßig nicht erstellt Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner libs Wird standartmäßig nicht erstellt Dient zur Ablage privater Bibliotheken Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner libs Wird standartmäßig nicht erstellt Dient zur Ablage privater Bibliotheken Zum Beispiel: Twitter (jtwitter.jar) Viele Betreiber von Homepages oder Geräten bieten eigene Bibliotheken an. So kann mit einfachen Mitteln auf diese zugegriffen werden. Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Der Ordner gen • R.java Über die Klasse R wird im Quellcode auf die im Ordner res abgelegten Ressourcen verwiesen. Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Die Manifest-Datei der App • AndroidManifest.xml Hier werden alle wesentlichen Informationen gesammelt Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Die Manifest-Datei der App • AndroidManifest.xml Hier werden alle wesentlichen Informationen gesammelt Den Namen des Java-Pakets für die Anwendung Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Die Manifest-Datei der App • AndroidManifest.xml Hier werden alle wesentlichen Informationen gesammelt Den Namen des Java-Pakets für die Anwendung Die Komponenten der Anwendung Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Die Manifest-Datei der App • AndroidManifest.xml Hier werden alle wesentlichen Informationen gesammelt Den Namen des Java-Pakets für die Anwendung Die Komponenten der Anwendung Die Deklaration der Berechtigungen Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Die Manifest-Datei der App • AndroidManifest.xml Hier werden alle wesentlichen Informationen gesammelt Den Namen des Java-Pakets für die Anwendung Die Komponenten der Anwendung Die Deklaration der Berechtigungen Die Android-API Version Fortgeschrittene Programmierung mit Java Erste Android-App erstellen Projektstruktur • Die Manifest-Datei der App • AndroidManifest.xml Hier werden alle wesentlichen Informationen gesammelt Den Namen des Java-Pakets für die Anwendung Die Komponenten der Anwendung Die Deklaration der Berechtigungen Die Android-API Version Die Version der App selbst (einfacher Integerwert) Fortgeschrittene Programmierung mit Java Verteilung im Google-Market / Play Store Fortgeschrittene Programmierung mit Java Verteilung im Google-Market / Play Store Registrierung in der Android Developer Console https://play.google.com/apps/publish/signup Einmalige 25 $ Gebühr Dann können die Apps dort hochgeladen werden Fortgeschrittene Programmierung mit Java Verteilung im Google-Market / Play Store Registrierung in der Android Developer Console https://play.google.com/apps/publish/signup Einmalige 25 $ Gebühr Dann können die Apps dort hochgeladen werden Worauf ist zu achten? Fortgeschrittene Programmierung mit Java Verteilung im Google-Market / Play Store Registrierung in der Android Developer Console https://play.google.com/apps/publish/signup Einmalige 25 $ Gebühr Dann können die Apps dort hochgeladen werden Worauf ist zu achten? App nicht größer als 50 MB Fortgeschrittene Programmierung mit Java Verteilung im Google-Market / Play Store Registrierung in der Android Developer Console https://play.google.com/apps/publish/signup Einmalige 25 $ Gebühr Dann können die Apps dort hochgeladen werden Worauf ist zu achten? App nicht größer als 50 MB Zwei Screenshots der App hochladen Fortgeschrittene Programmierung mit Java Verteilung im Google-Market / Play Store Registrierung in der Android Developer Console https://play.google.com/apps/publish/signup Einmalige 25 $ Gebühr Dann können die Apps dort hochgeladen werden Worauf ist zu achten? App nicht größer als 50 MB Zwei Screenshots der App hochladen App-Symbol extra hochladen Fortgeschrittene Programmierung mit Java Verteilung im Google-Market / Play Store Detailangaben für den Market Sprache Titel der App im Market (1 Name pro Sprache möglich) Beschreibung (max. 4000 Zeichen) Letzte Änderung (bei Updates) App-Typ (Apps und Spiele) Kategorie Kontaktinformationen Als Supportkanal für die Appnutzer (Website, E-Mail, Telefon) Fortgeschrittene Programmierung mit Java Vor- und Nachteile gegenüber iOS Vorteile: Fortgeschrittene Programmierung mit Java Nachteile: Vor- und Nachteile gegenüber iOS Vorteile: Nachteile: • Hardwareunabhänige Entwicklung mit Eclipse • Nur Kreditkartenzahlung mit Market möglich • Kostenfreie Entwicklung • Keine Überprüfung des Codes • Alternativer Markt • Jeder kann seine Apps vertreiben Fortgeschrittene Programmierung mit Java Quellen Android Apps Entwicklung für Dummies ISBN: 978-3-527-70732-4 Einführung in die Android Entwicklung ISBN: 9/8-3-80899-1147 Android 3 ISBN: 978-3-8362-1697-5 http://developer.android.com http://developer.android.com/training/index.html Fortgeschrittene Programmierung mit Java