Einführung in Android

Werbung
Einführung in Android
9. Dezember 2014
Was ist Android?
 Software für mobile Geräte:
 Betriebssystem
 Middleware
 Kernanwendungen
 Android SDK:
 Tools und APIs zur Entwicklung von Anwendungen auf der
Android-Plattform
 URL für Entwickler: developer.android.com
 Open Source Software
Taentzer
Einführung in die Softwaretechnik
261
Android Architektur
developer.android.com
Taentzer
Einführung in die Softwaretechnik
262
Bibliotheken, Runtime und Kernel
 Android enthält eine Reihe von C/C++-Bibliotheken.
 z.B. SGL und 3D Librairies für 2D und 3D-Darstellungen
 z.B. SQLite als leichtgewichtiges relationales Datenbank-system
 Android Runtime
 Jede Android-Anwendung läuft in einem eigenen Prozess mit der
sogenannten Dalvik Virtual Machine.
 Die Dalvik VM basiert auf einem Linux Kernel.
 Linux Kernel
 Android basiert auf der Linux Kernel Version 3.0.1
 Der Kernel fungiert als Abstraktionsebene zwischen Hardware und
dem Rest des Software Stack.
Taentzer
Einführung in die Softwaretechnik
263
Android Anwendungen
 Android enthält eine Reihe von
Kernanwendungen.
 Email -Client, SMS-Programm,
Kalender, Karten, Web-Browser,
Kontakte, etc.
 Alle Anwendungen sind in Java
geschrieben.
 Jede Anwendung hat ihre eigene
Umgebung:
 eigener Linux-Prozess
 eigene Java-VM
 eindeutige Linux User Id (kann
auch von anderen Anwendungen
genutzt werden)
Taentzer
Einführung in die Softwaretechnik
developer.android.com
264
Der Android SDK Manager
 Nach der Installation einer EclipseVersion mit ADT (Android
Developer Tools).
 Zur Konfiguration von AndroidVersionen, die zur Entwicklung
benutzt werden.
 Start: Windows-> Android SDK
Manager
 Es können mehrere Versionen
ausgewählt werden.
Taentzer
Einführung in die Softwaretechnik
265
Starten einer App im Emulator
 Android Virtual Device
(AVD) anlegen
 AVD Manager aufrufen
 mit Create ein neues AVD
anlegen
Taentzer
Einführung in die Softwaretechnik
266
Start einer App mit Genymotion
 Alternative für einen
schnellen Emulator:
www.genymotion.com
 kann als weiteres Device
genutzt werden
 Download:
 Genymotion (mit Oracle
Virtual Box)
 Plugin für Eclipse oder
Intellij IDEA
 frei für persönliche Nutzung
Taentzer
Einführung in die Softwaretechnik
267
Beispiel: Eine einfache App für ein
Bestellsystem
Taentzer
Einführung in die Softwaretechnik
268
Application Framework
 Activity Manager: organisiert den Lebenszyklus einer
Anwendung
 Views: graphische Komponenten zum Aufbau einer
Anwendung, z.B. Listen, Textfelder, Knöpfe und auch ein
einbettbarer Web-Browser
 Content Providers: ermöglichen den Zugriff auf Daten,
auch aus anderen Anwendungen
 Resource Manager: Zugriff auch Resourcen, die nicht
Code sind, z.B. Graphiken
 Notification Manager: zur Benachrichtigung des Nutzers
über Ereignisse
Taentzer
Einführung in die Softwaretechnik
269
Application Components
Ausführbare Anwendungsteile:
 Activities: visuelle Komponente
 Beispiel: Liste von textuellen Kommentaren
 Eine Anwendung kann mehrere Activities haben, die sich gegenseitig
benutzen.
 Eine Activity ist als Start-Activity markiert.
 Jede Activity hat ein eigenes Fenster, in das sie zeichnet.
 Services: nicht sichtbare Komponenten
 Beispiel: Ein Service, der Musik abspielt
 Broadcast Receiver: hört auf Broadcast-Nachrichten
 Beispiel: Wechsel der Zeitzone, geringer Batteriestand, Aufnahme eines
Fotos, etc.
 Content Providers: veröffentlicht eine Menge von Daten für andere
Anwendungen
 Daten sind meist in einer SQLite-Datenbank gespeichert.
Taentzer
Einführung in die Softwaretechnik
270
Erstellung einer neuen Android App
 Erstellung einer
lauffähigen App:
 File>New>Android
Application Project
Taentzer
Einführung in die Softwaretechnik
271
Die Android Manifest-Datei
AndroidManifest.xml informiert Android über die
Komponenten der Anwendung:
Start-Activity
Taentzer
Einführung in die Softwaretechnik
272
Beispiel: Aufbau eines Android
Application Projekts
Taentzer
Einführung in die Softwaretechnik
273
Layout graphischer Komponenten



Layout-Definition durch eine
XML-Layout Datei.
Jedes XML-Element ist
entweder ein View oder ein
ViewGroup-Objekt.
Vordefinierte ViewGroupObjekte:
 LinearLayout
 RelativeLayout
 AbsoluteLayout
 TableLayout
 etc.
 Layout-Parameter:
 height, width
 vordefinierte Werte:
fillParent: füllt Platz des
ParentView aus
 wrap_content: umhüllt
den Inhalt minimal
 @+id/… verweist auf ids
in der Datei R.java
Taentzer
Einführung in die Softwaretechnik
274
Die Datei R.java
 R.java wird aus den Inhalten im Ordner /res generiert und
liegt unter /gen.
 R.java soll nicht geändert werden.
 Sie enthält einen Index für alle Ressourcen der
Anwendung.
 Ressourcen sind z.B. Namen und Ids von graphischen Elementen.
 Diese Klasse kann als Abkürzung für die Referenzierung
von Ressourcen genutzt werden.
Taentzer
Einführung in die Softwaretechnik
275
Lebenszyklus einer Activity
 Eine Activity hat drei mögliche Zustände:
 active oder running: auf dem Display zu sehen, Fokus der Ausführung
 paused: sichtbar, aber hat nicht den Fokus. Eine andere Activity liegt
darüber.
 stopped: nicht sichtbar und ohne Fokus, der Zustand und die Daten
werden solange gehalten, wie Speicher vorhanden
 Zustandswechsel werden durch Methodenaufrufe mitgeteilt:
 void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
Diese Methoden sollten zuerst
void onResume()
die entsprechende
void onPause()
Supermethode aufrufen.
void onStop()
void onDestroy()
 Alle Activities müssen onCreate() implementieren.
Taentzer
Einführung in die Softwaretechnik
276
Lebenszyklus einer Activity



onCreate(): das normale Setup, Bundle-Objekt übergibt den bisherigen
Zustand, danach direkt onStart() und onResume()
onPause(): eine andere Activity wird aktiv, ungesicherte Daten werden
gespeichert
onStop(): eine andere Activity wird sichtbar oder Activity wird zerstört,
onPause() wird immer vorher aufgerufen
developer.android.com
Taentzer
Einführung in die Softwaretechnik
277
Beispiel:
MainActivity.java
onCreate wird
überschrieben
Finden von graphischen
Komponenten mit
findViewById
Ids graphischer
Komponenten in R.java
Anonyme Klasse zur
Behandlung von Events
Taentzer
Einführung in die Softwaretechnik
278
Ereignisse
 Die Interaktion mit graphischen
Komponenten (Views) erfolgt
über Ereignisse.
 Beispiele für Ereignisse
(Events):
 Drücken eines Button
(on Click)
 Drücken einer Taste
(on Key)
 Berühren des Bildschirms
(on Touch)
Taentzer
 Zum Reagieren auf ein Ereignis
muss ein View als EventListener
registriert sein.
 Z.B: OnClickListener,
OnKeyListener, OnTouchListener
 Über Ereignisse werden
Benutzereingaben an graphische
Komponenten kommuniziert.
 Je nach Typ der graphischen
Komponente sind bestimmte
Ereignisse aktiv.
Einführung in die Softwaretechnik
279
Debuggen von Android Apps
 Breakpoints im Code
setzen
 App im Debug-Modus
ausführen
 Zur Debug Perspektive
wechseln
 Schrittweise ausführen
 Code und Variablen
inspizieren
Taentzer
Einführung in die Softwaretechnik
280
Zusammenfassung
 Android bietet einen Software-Stack für mobile Geräte,
bestehend aus Betriebssystem, Middleware und
Kernanwendungen
 Android SDK bietet Tools und APIs zur Entwicklung von
Anwendungen auf der Android-Plattform
 Activities folgen einem vorgegebenen Zustandsautomaten. Dadurch behält der Benutzer die maximale
Kontrolle über die Anwendungen.
 Graphische Komponenten werden separat vom Code in
XML spezifiziert.
 Jede Anwendung läuft in einem eigenen Prozess mit
eigener Virtual Machine.
Taentzer
Einführung in die Softwaretechnik
281
Herunterladen