einführung in android - uni-marburg.de · nach der installation einer eclipse-version mit adt...
Post on 02-Sep-2019
3 Views
Preview:
TRANSCRIPT
Einführung in Android
9. Dezember 2014
Taentzer Einführung in die Softwaretechnik 261
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 262
Android Architektur
developer.android.com
Taentzer Einführung in die Softwaretechnik 263
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 264
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)
developer.android.com
Der Android SDK Manager
Nach der Installation einer Eclipse-Version mit ADT (Android Developer Tools).
Zur Konfiguration von Android-Versionen, 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
Taentzer Einführung in die Softwaretechnik 269
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 270
Application ComponentsAusfü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.
Erstellung einer neuen Android App
Erstellung einer lauffähigen App: File>New>Android
Application Project
Taentzer Einführung in die Softwaretechnik 271
Taentzer Einführung in die Softwaretechnik 272
Die Android Manifest-DateiAndroidManifest.xml informiert Android über die Komponenten der Anwendung:
Start-Activity
Beispiel: Aufbau eines Android Application Projekts
Taentzer Einführung in die Softwaretechnik 273
Taentzer Einführung in die Softwaretechnik 274
Layout graphischer Komponenten Layout-Definition durch eine
XML-Layout Datei. Jedes XML-Element ist
entweder ein View oder ein ViewGroup-Objekt.
Vordefinierte ViewGroup-Objekte: 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 275
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 276
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() void onResume() void onPause() void onStop() void onDestroy()
Alle Activities müssen onCreate() implementieren.
Diese Methoden sollten zuerst die entsprechende
Supermethode aufrufen.
Taentzer Einführung in die Softwaretechnik 277
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
Beispiel: MainActivity.java
Taentzer Einführung in die Softwaretechnik 278
onCreate wird überschrieben
Finden von graphischen Komponenten mit
findViewById
Ids graphischer Komponenten in R.java
Anonyme Klasse zur Behandlung von Events
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)
Zum Reagieren auf ein Ereignis muss ein View als EventListenerregistriert sein. Z.B: OnClickListener,
OnKeyListener, OnTouchListener Über Ereignisse werden
Benutzereingaben an graphische Komponenten kommuniziert.
Je nach Typ der graphischen Komponente sind bestimmte Ereignisse aktiv.
Taentzer 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
Taentzer Einführung in die Softwaretechnik 281
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 Zustands-automaten. 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.
top related