Professional Documents
Culture Documents
2.
Theoretische Grundlagen
1. 2. 3. Komponenten einer Applikation Application lifecycle Sicherheitsfunktionen / Rechtemanagement
3.
Programmierung
1. 2. 3. 4. 5. 6. Views / Layouts Mens / Dialoge Texte / Internationalisierung Grafiken unter Bercksichtigung verschiedener Gertetypen Daten-Speicherung Ausblick
4. 5.
Deployment Live-Demo
Software-Versionen
Inhomogenitt und Update-Politik der HandyHersteller erschwert Entwickeln, da man sich nicht auf aktuelle Versionen verlassen kann:
Hardware
Verschiedenste Smartphones mit Android-OS:
Auflsungen von 240x400 (Samsung Galaxy 3) bis 480x800 (HTC Desire HD) Mit/ohne Lagesensor, GPS-Modul, Kompass Langsame CPU, schnelle CPU Wenig RAM, viel RAM
Bald: Android-Tablets -> noch mehr verschiedene Hardware, die man bercksichtigen sollte
Application components
Activity:
Stellt UI fr eine Aufgabe bereit. Bspw. knnte eine IM-Anwendung eine Activity haben fr die Anzeige der Kontakte, eine zweite fr das Schreiben einer Nachricht und eine weitere fr das Lesen der ChatHistory Jede Activity ist unabhngig von allen anderen
Service:
Hat keine grafische Oberflche Luft auf unbestimmte Zeit im Hintergrund und fhrt dort Aufgaben aus Beispiel: Ein Musikplayer, dessen Abspielfunktion als Service implementiert ist
Application components
Broadcast receiver
Wartet auf Broadcast-Nachrichten und reagiert entsprechend Kein UI Broadcast-Nachrichten knnen vom System kommen (neue Zeitzone, Batterie fast leer, Nutzer hat Sprache gendert), aber auch von User-Applikationen, z.B. wenn ein Update-Service eine Activity benachrichtigen mchte.
Content provider
Stellt Teile der Programm-Daten nach auen hin bereit Die Daten knnen im Dateisystem vorliegen, oder in einer SQLite-Datenbank, oder in irgendwas anderem, das Sinn macht
Activity Lifecycle
Service lifecycle
Views
Umschalten zwischen verschiedenen Ansichten ber Views:
Layout-Definition
Kein AWT/Swing XML-Dateien mit verschiedenen Layouts und Widgets, die ineinander verschachtelt werden:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_game" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/pleaseInsertNumber"
/> <EditText
android:id="@+id/game_UserInput" android:singleLine="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:minEms="3" android:numeric="integer"
/>
</LinearLayout>
UI-Events behandeln
View Objekt stellt Event Listener fr verschiedenste User-Interaktionen bereit ber callback handler knnen diese Events dann behandelt werden Beispiele:
onClick() onLongClick() onKey()
Men
Options-Men: Sobald man die Menu Taste drckt, erscheint ein Men mit maximal sechs Eintrgen, die jeweils ein Icon haben Soll das Men mehr Eintrge haben, wird ein zustzlicher Button generiert, der dann in ein reines Textmen mit allen Eintrgen wechselt Kontext-Men: Erscheint beim langen Drcken auf eine View Untermen: Kann Optionen im Options- oder Kontextmen zugeordnet werden
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="@string/menuStartNewGame" android:id="@+id/item_newGame" android:icon="@drawable/start_new_game"></item> <item android:id="@+id/item_quitApp" android:title="@string/menu_stopApp" android:icon="@drawable/close_app"></item> </menu>
Dialog
Dialoge erscheinen im Vordergrund der aktuellen Activity Solange ein Dialog offen ist, kann nichts anderes mehr in der Activity angeklickt werden Vier verschiedene Dialog-Typen:
AlertDialog mit 0-3 Buttons und einem Auswahlmen ProgressDialog: Fortschrittsanzeige mit 0-3 Buttons DatePickerDialog: Datums-Auswahl TimePickerDialog: Zeit-Auswahl
Ebenso knnen praktisch alle Mens usw. fr verschiedene Gerteklassen variabel definiert werden
Ausblick
Viele weitere Mglichkeiten, die hier nicht besprochen werden:
Animierte 2D-Grafik ber eigene Android-Klassen 3D-Grafik ber OpenGL ES 1.0 Nutzung von GPS-Koordinaten, Kompass-Daten, Lagesensor usw. Einbindung von Sound und Videos Gibt fr alles komplette Tutorials von Google und zahlreiche Foren von unabhngigen Entwicklern
Deployment
Android Market Zugang kostet einmalig $25 Auch alternative, kostenlose Markets verfgbar Keine Prfung der Programme durch Google Zur Signierung benutztes Zertifikat muss mindestens 30 Jahre lang gltig sein Bei Entwicklung mit Eclipse: Assistent leitet durch kompletten Vorgang, spuckt am Ende optimierte .apk-Datei aus, die nur noch ber ein WebInterface hochgeladen werden muss
Live-Demo
Eclipse + ADB-Plugin Querschnitt durch den Code einer einfachen Demo-Applikation (Nummern-Rate-Spiel) Testen mit dem Android Emulator Testen auf einem angeschlossenen AndroidHandy