Wie funktioniert Android App-Entwicklung?
Welche Tools benötige ich?
Schritt-für-Schritt Anleitung für Android App-Entwicklung.
Update 9.2012: Google hat seine Online Dokumentation erweitert. Mein Vortrag ist teilweise veraltet.
2. Inhaltsverzeichnis
Android
Toolchain
Beispiel Hello World
mehr Beispiele
Android Market
Ausblick
Virtualisierung
Franz Leitner DI, Android Entwicklung, 2012, Seite:2
3. Was ist Android:
… ein Betriebssystem und Software-Plattform für mobile Devices.
Android baut auf dem Linux-Kernel 2.6.x auf. („“rooten)
Android OS optimiert Speichernutzung, Prozessverwaltung, Akkulaufzeit, Touchscreen
2D, 3D Graphik
Dalvik VM: Google's Implementation einer VM, optimiert für Mobile Devices
Eine einzige Applikation läuft im Vordergrund. Diese Applikation hat den Fokus und füllt
normalerweise den gesamten Bildschirm.
Quelloffen – Sourcen und Schnittstellen sind offen gelegt. Jeder darf Erweiterungen (OS +
Apps) implementieren.
http://source.android.com/,
Android Market – Sie dürfen Ihre Apps veröffentlichen. Ein weltweiter Markt steht zur
Verfügung.
2005: Google erwirbt Startup Android Inc. von Andy Rubin.
2008: erstes Android Smartphone, HTC Dream (Google G1)
Franz Leitner DI, Android Entwicklung, 2012, Seite:3
4. Android Infos
http://developer.android.com/,
Die Entwickler Site von Google Android. Hier findet man alle wichtigen Infos zur
Applikationsentwicklung auf Android.
http://source.android.com/,
Das Android Open SourceProjekt von Google. Hier findet man den Quellcode zur Android
Plattform.
http://androidguys.com/,
Nützliche Informationen für den Entwickler rund um das Android Projekt.
http://android-developers.de/,
Forum
Source: Jürg Luthiger,University of AppliedSciences Northwestern Switzerland
Franz Leitner DI, Android Entwicklung, 2012, Seite:4
5. Android Versionen
Beispiel,
Statistik
Jänner 2012
Franz Leitner DI, Android Entwicklung, 2012, Seite:5
6. Android Versionen
Quelle: Kaliudis A., 2011, Das Wesen der Androiden, connect 6/2011
Franz Leitner DI, Android Entwicklung, 2012, Seite:6
7. http://developer.android.com,
Das „Original“
Beste Dokumentation
Installation SDK
Implementieren
Test
Beispiele
Verweile hier – lange,
wie bei
„Call of Duty“
Franz Leitner DI, Android Entwicklung, 2012, Seite:7
8. Toolchain
Projekt anlegen
App
programmieren
App testen
App release
im Market
0 1h
Franz Leitner DI, Android Entwicklung, 2012, Seite:8
9. Toolchain
1. JavaSE – JDK ! , http://www.oracle.com/technetwork/java/javase/downloads,
(Mai 2011: Wir setzen zur Entwicklung Windows7 64 Bit ein. Die Erfahrung zeigte uns jedoch,
dass ein JDK für 32-Bit installiert sein muss. Daher empfehlen wir hier den Download der 32-
Bit Version)
2. Android SDK , http://developer.android.com/sdk,
(Software Development Kit)
- Packete auswählen und installieren. Android Versionen auswählen !
(etwas Geduld … warten … warten … ~1 h … )
3. Eclipse , http://www.eclipse.org/downloads/ + ADT plugin ,
http://developer.android.com/sdk/eclipse-adt.html,
im Anschluss gleich Update aufrufen
Eclipse – Help – Check for Updates
„Update“ immer aufrufen, wenn auch in Android SDK ein Update/Installation war.
Franz Leitner DI, Android Entwicklung, 2012, Seite:9
14. Eclipse + ADT plugin
Windows – Preferences – Android – SRC Location
Franz Leitner DI, Android Entwicklung, 2012, Seite:14
15. Google App Inventor (?)
Vollständige Entwicklungs-Umgebung für unerfahrene SW
Entwickler. Leider nicht weiterentwickelt (Stand Jan-2012).
Franz Leitner DI, Android Entwicklung, 2012, Seite:15
16. Layer Model
Applications
Internet
phone Email
Libraries / Android RE (runtime environment)
OS Linux Kernel 2.6.x.x
SD NIC NFC
cards
touch
screen Hardware GPS
Franz Leitner DI, Android Entwicklung, 2012, Seite:16
18. Wichtige Begriffe
Activity
Ist eine Java Klasse, repräsentiert das dynamische Verhalten ihres App.
bearbeitet alle Aktivitäten, User-Interface (onClick…)
Hat Lebenszyklen (onCreate, onStart, onResume, onPause, onStop, onDestroy)
View
Screen layout, User-Interface
Intent
Verbindung von Aktivities, Folgeseitensteuerung
Austausch von Daten/Nachrichten zwischen Anwendungen, Komponenten
Services
Hintergrundprozesse
haben i.Allg. keine View (graphische Ausgabe)
Parametrierbar
Lebenszyklen: onCreate, onStart, onDestroy
Broadcast Receiver – Eventhandling
Content Provider - Datenabstrahierung
Franz Leitner DI, Android Entwicklung, 2012, Seite:18
19. Jetzt geht‘s los
Erstes Beispiel – Hello World – einfach
http://developer.android.com/resources/tutorials/hello-world.html,
viel zu einfach, daher gleich weiter:
Hello World – viel besser –
http://www.androidpit.de/de/android/wiki/view/Android_Anf%C3%A4nger_Workshop,
- siehe auch PDF (Beilage zu diesem Vortrag) - wurde bereits von HP entfernt
Vorsicht: diese Anleitung ist etwas veraltet.
DEMO
(siehe auch nächste Folie)
Franz Leitner DI, Android Entwicklung, 2012, Seite:19
20. Demo – Hello World
Eclipse: Projekt anlegen, Objekte erklären
File – New – Project – Android – Android Project
Eclipse – properties View einschalten
Window – Show view – others – General – properties
DEMO - <theFile>.java , main.xml
DEMO – AndroidManifest.xml
Permissions !! – für Internet, SD card, …
DEMO: Google Suche: android permission
Application – Icon
DEMO: Eclipse -
Version code, Version name
Layout http://developer.android.com/guide/topics/ui/declaring-
layout.html,
Eclipse – File – New – Others – Android – new IconSet
Icons können auch mit anderen Tools erstellt werden. Wichtig ist die
Pixel-Groöße.
Franz Leitner DI, Android Entwicklung, 2012, Seite:20
21. Eclipse project workspace
Klasse der Haupt-Activity
Resourcen-ID-Definitionen (automatisch erstellt, nicht editieren!)
Ordner für Binär-Dateien (alles, was Android nicht selbst verwaltet)
Ordner für Resource-Dateien (Bilder, Layouts, Strings, ...)
Logo in hoher Auflösung (72 x 72 Pixel – 240 dpi)
Logo in niedriger Auflösung (36 x 36 Pixel – 120 dpi)
Logo in mittlerer Auflösung (48 x 48 Pixel – 160 dpi)
Layout-Definition für View der Haupt-Activity
String-Definitionen
"Manifest"-Datei, definiert Infos wie Name, Logo und Haupt-Activity
code optimierung, automatisch erstellt, nicht editieren
Projekt-Eigenschaften
Franz Leitner DI, Android Entwicklung, 2012, Seite:21
22. Demo – Hello World
DEMO - main.xml
Layout, fill parent, wrap containt,
android:id="@+id/buttonAmstetten“
Run As – Android application
Focus setzen auf Projekt, oder java Klasse. NIEMALS xml files
Run configuration
Simulator AVD starten:
1. In Eclipse – Run – (run configuration zuvor kontrollieren)
2. Direkt: Start – Programme - … - Android SDK tools – AVD Manager
Es können beliebig viele AVDs laufen (Resourcen-Problem).
AVDs können kommunizieren – Internet, GPS, auch Phonecalls und SMS.
http://developer.android.com/guide/developing/devices/emulator.html,
Gute Beispiele:
http://developer.android.com/resources/faq/commontasks.html,
Franz Leitner DI, Android Entwicklung, 2012, Seite:22
23. Demo, sample projects
eclipse – File-New–Project- And.Sample Project
Lunar Lander -
http://developer.android.com/resources/samples/LunarLander/index.html,
Paint http://developer.android.com/reference/android/graphics/Paint.html,
FrameLayout
SurfaceView
USB – http://developer.android.com/resources/samples/USB/index.html,
mUsbManager = (UsbManager)getSystemService(Context.USB_SERVICE);
API 14 (4.0)
Media Player
http://developer.android.com/guide/topics/media/mediaplayer.html,
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start();
Camera
http://developer.android.com/guide/topics/media/camera.html,
/** Check if this device has a camera */
c = Camera.open();
Franz Leitner DI, Android Entwicklung, 2012, Seite:23
24. Debugging
Am Einfachsten mit Ausgaben am Bildschirm:
Toast.makeText(this, “….”,).show();
Klasse log: Log.v() Log.d() Log.i() Log.w() and Log.e()
Eclipse
Der beste Weg für Debugging
Breakpoints werden unterstützt
Eclipse console beobachten
Project – Properties - JavaCompiler
adb - Android Debug Bridge
http://developer.android.com/guide/developing/tools/adb.html,
(cmd fenster) telnet localhost 5554
port nummer anpassen !!
Franz Leitner DI, Android Entwicklung, 2012, Seite:24
25. Test
Für erste Versuche mit dem Simulator(oder Smartphone) und
manuelles Durchspielen.
Automatisiertes Testen mit Eclipse und ADT,
günstig, da wir Eclipse bereits zum Implementieren verwenden.
http://developer.android.com/guide/developing/testing/testing_eclipse.html,
Andere Tools,
weitere Infos hier
http://developer.android.com/guide/developing/testing/index.html,
Franz Leitner DI, Android Entwicklung, 2012, Seite:25
26. App Release
Wir möchten unser App freigeben im Market.
eclipse – File – Export – Android
Erzeuge einen Keystore:
Dein privater Keystore: nur einmal notwendig
Pwd bitte merken !!
Später: „Use existing keystore“
APK Datei wird erzeugt.
Datei ist verschlüsselt.
APK Datei hochladen in den Android Market
(-> nächste Folie)
Franz Leitner DI, Android Entwicklung, 2012, Seite:26
27. Hochladen in den Market
https://play.android.com/publish/Home,
Registrieren im Google Android Market (25 $ einmalig)
Anmelden
APK hochladen:
2 Screenshots notwendig, 320 x 480, 480 x 800, 480 x 854,
1280 x 720, 1280 x 800
Hochauflösendes App-Logo:
512 x 512 , 32-Bit-PNG oder –JPEG
Beschreibung (Deutsch, Englisch, …)
Versionen …
App-Type, Kategorie
Kostenpflichtig, Frei ?
Franz Leitner DI, Android Entwicklung, 2012, Seite:27
28. Endlich im Android Market
Franz Leitner DI, Android Entwicklung, 2012, Seite:28
30. Entwickeln in VMWare
VMWare Player - http://www.vmware.com/products/player/,
Frei verfügbar.
Das Beste für „Amateure“. ESX-Server für Profies.
VMWare Image erzeugen, Windows oder Linux
Windows: erzeuge ein Image mit: File – create New Virt. Machine
Linux: fertiges Image verfügbar, z.Bsp Ubuntu:
Ubuntu 10.10 Desktop with VMware Tools,
Einstellungen der virt. Machine: (in VMWare Player ):
Memory RAM ~ 1,5 GB
Hard Disk ~ 40 GB (20 GB reichen auch)
Netzwerk: NAT (empfohlen)
Installieren der kompletten Android Toolchain in der VM.
(JavaSDK, Android SDK, Eclipse+ADT)
Virt. Machine kann einfach weitergegeben werden. Aber zuvor
„Niederfahren“.
Franz Leitner DI, Android Entwicklung, 2012, Seite:30
31. Netzwerkeinstellungen in VMWare
NAT Bridged Host-only
Host
10.0.0.140 VM VM
Host Guest Host Guest
10.0.0.140
Guest VM 10.0.0.140 10.0.0.141
192.168.0.100
Franz Leitner DI, Android Entwicklung, 2012, Seite:31
32. Entwickeln in VMWare
Booten und Einsteigen in das BIOS:
Sehr zeitkritisch, da die Anzeige zu kurz ist.
Editieren der .vmx Datei. Anzeigen des Boot Menüs für 7 Sekunden:
[bios.forceSetupOnce = "TRUE“] … optional
bios.bootDelay = “7000“
eine VM kann einfach weitergegeben werden.
Zuvor die VM komplett niederfahren, dann erst die Files kopieren.
Copy/Paste zwischen Host/Guest funktioniert, wenn die VMWare-Tools installiert
sind.
Bei Problemen: einen USB Stick verwenden.
(Removeable devices – connect/disconnect)
Booten von CD, USB oder ISO-Image wird unterstützt.
Bottleneck: Harddisk !
Franz Leitner DI, Android Entwicklung, 2012, Seite:32
34. OS Markt Anteile
Ausblick von
Franz Leitner
Windows
Phone 7
Franz Leitner DI, Android Entwicklung, 2012, Seite:34
35. development effort
Franz Leitner DI, Android Entwicklung, 2012, Seite:35
36. Referenzen
www.Gallileocomputing.de – PDF, „Android 3“
veraltet, Sensoren, GPS
Seminararbeit Software-Engineering, 28-6-2011, Andre Tschersich
Android Workshop für Anfänger - Sven Woltmann – 23.2.2010, AndroidPIT
Mobile ApplicationDevelopment – Android Einführung,
Jürg Luthiger,
University of AppliedSciences Northwestern Switzerland
Institute forMobile and DistributedSystems
Developers Guide, Google - http://developer.android.com/guide/index.html
Android, Wikipedia
http://de.wikipedia.org/wiki/Android_(Plattform) ,
http://en.wikipedia.org/wiki/Android_(operating_system) ,
JavaSE, Wikipedia - http://de.wikipedia.org/wiki/JavaSE,
Eclipse Software - http://www.eclipse.org/,
AndroidPIT - http://www.androidpit.de/,
AndroidPIT Anfängerworkshop -
http://www.androidpit.de/de/android/wiki/view/Android_Anf%C3%A4nger_Workshop,
Franz Leitner DI, Android Entwicklung, 2012, Seite:36
37.
38. Weitere Android Themen:
Lokalisieren – Mehrsprachige Texte
Android Services – Applikationen im Hintergrund
URI - Universal Ressource Identifier
Intents - Austausch von Nachrichten und Daten
Android Native Development
Android Scripting
Debugging mit LogCat oder Android-Log
Daten persistent speichern: 4 Arten:
SharedPreferences
http://developer.android.com/reference/android/content/SharedPreferences.html,
Dateien
SQLite Datenbank
Netzwerk
Franz Leitner DI, Android Entwicklung, 2012, Seite:38
39. Android Dokumentation
Auf dem PC lokal - ..docs
Beispiele: ..samples
Franz Leitner DI, Android Entwicklung, 2012, Seite:39
40. Activity states
Link ,
ActivityManager verwaltet
States.
onPause() – sichern von Benutzerdaten !
Android darf jederzeit Prozesse beenden.
Nur onPause() wird immer aufgerufen.
Franz Leitner DI, Android Entwicklung, 2012, Seite:40