SlideShare ist ein Scribd-Unternehmen logo
Android Entwicklung
App Entwickler Konferenz 2010
Bonn, 17. November
Markus Junginger
Twitter: #app2010
@greenrobot_de
Über mich
 Markus Junginger, greenrobot
 2007: Erste Android App
 2001: Erstes Mobile Projekt
 12 Jahre Java Erfahrung
 20 Jahre Entwicklungserfahrung
 Android & Mobile Entwicklung
 Android Technology Usergroup München
Outline
 Einführung
 Activities & Intents
 Hello World
 User Interface (UI)
 Typische Tasks (Entwicklung)
 Features Android 1.5 – 2.2
100.000
200.000
#2
Android Schichten
Vier Entwicklungsarten
 Android SDK: Entwicklung mit Java
 Webseiten (Chrome/WebKit)
 Cross Platform Apps
 Native Entwicklung
– NDK in Verbindung mit Android SDK
– Eigene Android Firmware
Vier Entwicklungsarten
 Android SDK: Entwicklung mit Java
 Webseiten (Chrome/WebKit)
 Cross Platform Apps
 Native Entwicklung
– NDK in Verbindung mit Android SDK
– Eigene Android Firmware
Entwicklung mit Android SDK
 Java 5 (Scala, JRuby)
 Java 5 SE APIs teilweise vorhanden
(io, nio, lang, util, math, etc.)
 Proprietäre Android APIs (android.*)
 Dalvik Virtual Machine
 IDE: Eclipse (oder von Hand)
 Device Emulator
Installation Android SDK & IDE
 Eclipse 3.5 mit Google ADT Plugins
 Android SDK
 Plattformen
Anatomie einer App
Activities
 Einstiegspunkt in Android Programm
 Aktiver Programmteil
 Eine Activity setzt (mind.) ein View (GUI)
 Activities unterliegen Life Cycle
 onResume und onPause (Persistenz!)
 Android OS kann Activities killen
 Alternative: Services (back-, foreground)
Intents
 Eine Absicht etwas zu tun ohne zu
definieren wie es getan werden soll
 Vernetzung von Apps über lose Kopplung
 Angelehnt an URLs (Beispiel: „tel:123“)
 Auch für das Aktivieren eines neuen
Zustand einer App: Starten einer Activity
Android Projekt anlegen
Android Projekt anlegen
 IDE erstellt Gerüst
 R.java ist generiert
 res Verzeichnis
 AndroidManifest.xml
Hello World
Hello World
public class HelloAndroid extends
Activity {
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
UI Prinzipien: Klassisch…
 Als Resourcen oder programmatisch
 UI Komponenten: Basisklasse View
 Layouts (Linear, Grid, Table, Relative, …)
 UI Thread: Änderungen an der GUI
 Events (OnClick, …)
 Visueller GUI Editor in Eclipse
 Low-Level Canvas API
UI & Asynchrone Verarbeitung
 UI Thread darf niemals blockiert werden
 Nach 5s Android System Dialog
 Netzwerkzugriffe, etc. in eigenem Thread
 ProgressDialog, Progress Indicator
 UI Update aber wieder im UI Thread
– Verschiedene Möglichkeiten, z.B. AsyncTask
Client-/Server Kommunikation
 Apache HttpClient 4
 Kein SOAP out of the box  kSOAP
 REST mit XML
– XML: SAX, DOM, Pull aber kein XPath
 REST mit JSON
– JSON integriert
– Einfach zu parsen
Persistenz
 Files für XML, JSON, Java Objekte, …
 Preferences mit Key/Value Paaren
 Vorteil: einfache UI Erstellung
 SQLite
 Über Applikations-/Prozessgrenzen:
Content Provider
Performance
 Hohe Performance für normale Apps
 Optimierungen nötig für:
– Background Services (be nice)
– Spiele, Multimedia (flüssiger Ablauf)
 GC legt VM für 100-200ms lahm
 Regel #1: GC vermeiden. Keine neuen
Objekte in zentralen Schleifen anlegen
 Versteckte Anlage von Objekten
Android Market
 Google
 Alternative App Stores existieren
 Registrierung notwendig, einmalig $25
 Signieren mit Zertifikat (self-signed)
 Kein Review Prozess, sofort im Market
 Bezahlung über Google Checkout
 70% der Einnahmen an Entwickler
Pluspunkte
 Schneller Einstieg für Java Entwickler
(dennoch: komplexe API & Details!)
 All-in: Eclipse-basierte IDE
 Open Source
 Sicherheit (Permissions, Prozesse, User)
 Loose Coupling zwischen Apps (Intents)
 UI Customization mit Themes
 GPS, Kamera, Beschleunigungssensor
Home Screen Widgets (seit 1.5)
Screens und DPI (seit 1.6)
120dpi
ldpi
160dpi
mdpi
240dpi
hdpi
Kleiner Screen
bis 3 Zoll
QVGA
(240x320)
Tattoo
Mittlerer Screen
3-4 Zoll
HVGA
(320x480)
G1, Hero
WVGA
(480x854)
Milestone
Großer Screen
Ab ca. 5 Zoll
WVGA
(800x480)
archos 5
Automatische Skalierung
160 dpi
120 dpi
240 dpi
Android 2.0 & 2.1 (Eclair)
 Multitouch API
 Bluetooth API
 QuickContacts
 Sync & Account Manager
 Live Wallpaper (2.1)
API Änderungen in Prozent
0%
1%
2%
3%
4%
5%
6%
1.1 1.5 1.6 2.0 2.0.1 2.1 2.2
API Änderungen in Prozent
0%
1%
2%
3%
4%
5%
6%
1.1 1.5 1.6 2.0 2.0.1 2.1 2.2
Android 2.2 (Froyo)
 Cloud-to-Device Messaging (Push)
 Apps auf SD Karte (External Storage)
 Backup von App Daten (Cloud)
 OpenGL ES 2.0 (Shader)
 Spracherkennung API
 Flash und V8 im Browser
 JIT Compiler (2-5 mal schneller)
Cloud to Device: Vorbereitung
Cloud to Device: Senden
Android Versionen
What‘s next? Gingerbread!
 Hardware beschleunige UI (GPU)
 Tablet Unterstützung
 WebM
 JIT Compiler Optimierungen
 Bezahlmöglichkeit (NFC)
 ???
Weitere Ressourcen
 developer.android.com
 SDK: Dev Guide mit guten How-tos,
Referenz und API Demos mit Source
 Android Developer Blog
 android-hilfe.de Forum
 androidpit.de
 XING Gruppe
Vielen Dank! Q&A
Markus Junginger
markus@greenrobot.de
http://greenrobot.de
Twitter: greenrobot_de

Weitere ähnliche Inhalte

Was ist angesagt?

Gwt Techtalk Präsentation
Gwt Techtalk PräsentationGwt Techtalk Präsentation
Gwt Techtalk Präsentationmlegenhausen
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Gregor Biswanger
 
Applikationsentwicklung für Android
Applikationsentwicklung für AndroidApplikationsentwicklung für Android
Applikationsentwicklung für Android
Thorsten Weiskopf
 
Web-GUIs mit Vaadin
 Web-GUIs mit Vaadin Web-GUIs mit Vaadin
Web-GUIs mit Vaadin
gedoplan
 
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...
Andreas Kunz
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
Torben Brodt
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Gregor Biswanger
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile ServicesSascha Dittmann
 
Silverlight - Tipps & Tricks für Fortgeschrittene
Silverlight - Tipps & Tricks für FortgeschritteneSilverlight - Tipps & Tricks für Fortgeschrittene
Silverlight - Tipps & Tricks für Fortgeschrittene
André Wussow
 
Einführung in die Android Applikationsentwicklung
Einführung in die Android ApplikationsentwicklungEinführung in die Android Applikationsentwicklung
Einführung in die Android Applikationsentwicklung
Thorsten Weiskopf
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Gregor Biswanger
 
Chrome for Work | CLOUDPILOTS FastTrack Update
Chrome for Work | CLOUDPILOTS FastTrack UpdateChrome for Work | CLOUDPILOTS FastTrack Update
Chrome for Work | CLOUDPILOTS FastTrack Update
CLOUDPILOTS Software & Consulting GmbH
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Christian Janz
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
MVVM mit WPF
MVVM mit WPFMVVM mit WPF
MVVM mit WPF
Hendrik Lösch
 
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen AnwendungenJavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
molily
 
Rich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidRich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit Android
Dominik Helleberg
 
Interactive Publishing Suite
Interactive Publishing SuiteInteractive Publishing Suite
Interactive Publishing Suite
THIS IS! Digital Media Group GmbH
 

Was ist angesagt? (18)

Gwt Techtalk Präsentation
Gwt Techtalk PräsentationGwt Techtalk Präsentation
Gwt Techtalk Präsentation
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Applikationsentwicklung für Android
Applikationsentwicklung für AndroidApplikationsentwicklung für Android
Applikationsentwicklung für Android
 
Web-GUIs mit Vaadin
 Web-GUIs mit Vaadin Web-GUIs mit Vaadin
Web-GUIs mit Vaadin
 
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...
UI5 Custom Controls (German language!) - Präsentation von den DSAG Thementage...
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
 
Silverlight - Tipps & Tricks für Fortgeschrittene
Silverlight - Tipps & Tricks für FortgeschritteneSilverlight - Tipps & Tricks für Fortgeschrittene
Silverlight - Tipps & Tricks für Fortgeschrittene
 
Einführung in die Android Applikationsentwicklung
Einführung in die Android ApplikationsentwicklungEinführung in die Android Applikationsentwicklung
Einführung in die Android Applikationsentwicklung
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
 
Chrome for Work | CLOUDPILOTS FastTrack Update
Chrome for Work | CLOUDPILOTS FastTrack UpdateChrome for Work | CLOUDPILOTS FastTrack Update
Chrome for Work | CLOUDPILOTS FastTrack Update
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
 
MVVM mit WPF
MVVM mit WPFMVVM mit WPF
MVVM mit WPF
 
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen AnwendungenJavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
 
Rich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidRich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit Android
 
Interactive Publishing Suite
Interactive Publishing SuiteInteractive Publishing Suite
Interactive Publishing Suite
 

Ähnlich wie Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)

Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!
inovex GmbH
 
Erstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsErstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-Apps
Ralf Lütke
 
Android Ice Cream Sandwich WJAX 2011
Android Ice Cream Sandwich WJAX 2011Android Ice Cream Sandwich WJAX 2011
Android Ice Cream Sandwich WJAX 2011Dominik Helleberg
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Gregor Biswanger
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
Gordon Breuer
 
Mobile Development mit ASP.NET MVC 4
Mobile Development mit ASP.NET MVC 4Mobile Development mit ASP.NET MVC 4
Mobile Development mit ASP.NET MVC 4
Digicomp Academy AG
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
Jens Binfet
 
iOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstelleniOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstellenMichael Kühnel
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
Jürg Stuker
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Andreas Schreiber
 
Android Entwicklung
Android EntwicklungAndroid Entwicklung
Android Entwicklung
franky1888
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile Anwendungen
Markus Eiglsperger
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007
Jürg Stuker
 
Windows 8
Windows 8Windows 8
Windows 8
Andreas Heil
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
Marc Müller
 
Wieviel Client braucht das Web?
Wieviel Client braucht das Web?Wieviel Client braucht das Web?
Wieviel Client braucht das Web?
gedoplan
 
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
Christian Heindel
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
Ulrich Krause
 

Ähnlich wie Android Entwicklung (App Entwickler Konferenz 2010 der Telekom) (20)

Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!Niemals nach Mitternacht füttern - Grüne Roboter überall!
Niemals nach Mitternacht füttern - Grüne Roboter überall!
 
Erstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsErstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-Apps
 
Android Ice Cream Sandwich WJAX 2011
Android Ice Cream Sandwich WJAX 2011Android Ice Cream Sandwich WJAX 2011
Android Ice Cream Sandwich WJAX 2011
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
 
Mobile Development mit ASP.NET MVC 4
Mobile Development mit ASP.NET MVC 4Mobile Development mit ASP.NET MVC 4
Mobile Development mit ASP.NET MVC 4
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
 
iOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstelleniOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstellen
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
 
Android Entwicklung
Android EntwicklungAndroid Entwicklung
Android Entwicklung
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile Anwendungen
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007
 
Windows 8
Windows 8Windows 8
Windows 8
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
Wieviel Client braucht das Web?
Wieviel Client braucht das Web?Wieviel Client braucht das Web?
Wieviel Client braucht das Web?
 
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile Geräte (SharePoint UserGroup Dresden 11/2011)
 
GWT
GWTGWT
GWT
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 

Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)

  • 1. Android Entwicklung App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger Twitter: #app2010 @greenrobot_de
  • 2. Über mich  Markus Junginger, greenrobot  2007: Erste Android App  2001: Erstes Mobile Projekt  12 Jahre Java Erfahrung  20 Jahre Entwicklungserfahrung  Android & Mobile Entwicklung  Android Technology Usergroup München
  • 3. Outline  Einführung  Activities & Intents  Hello World  User Interface (UI)  Typische Tasks (Entwicklung)  Features Android 1.5 – 2.2
  • 4.
  • 5.
  • 8. #2
  • 10.
  • 11. Vier Entwicklungsarten  Android SDK: Entwicklung mit Java  Webseiten (Chrome/WebKit)  Cross Platform Apps  Native Entwicklung – NDK in Verbindung mit Android SDK – Eigene Android Firmware
  • 12. Vier Entwicklungsarten  Android SDK: Entwicklung mit Java  Webseiten (Chrome/WebKit)  Cross Platform Apps  Native Entwicklung – NDK in Verbindung mit Android SDK – Eigene Android Firmware
  • 13. Entwicklung mit Android SDK  Java 5 (Scala, JRuby)  Java 5 SE APIs teilweise vorhanden (io, nio, lang, util, math, etc.)  Proprietäre Android APIs (android.*)  Dalvik Virtual Machine  IDE: Eclipse (oder von Hand)  Device Emulator
  • 14. Installation Android SDK & IDE  Eclipse 3.5 mit Google ADT Plugins  Android SDK  Plattformen
  • 16. Activities  Einstiegspunkt in Android Programm  Aktiver Programmteil  Eine Activity setzt (mind.) ein View (GUI)  Activities unterliegen Life Cycle  onResume und onPause (Persistenz!)  Android OS kann Activities killen  Alternative: Services (back-, foreground)
  • 17.
  • 18.
  • 19. Intents  Eine Absicht etwas zu tun ohne zu definieren wie es getan werden soll  Vernetzung von Apps über lose Kopplung  Angelehnt an URLs (Beispiel: „tel:123“)  Auch für das Aktivieren eines neuen Zustand einer App: Starten einer Activity
  • 21. Android Projekt anlegen  IDE erstellt Gerüst  R.java ist generiert  res Verzeichnis  AndroidManifest.xml
  • 23. Hello World public class HelloAndroid extends Activity { @Override public void onCreate(Bundle state) { super.onCreate(state); TextView tv = new TextView(this); tv.setText("Hello, Android"); setContentView(tv); } }
  • 24. UI Prinzipien: Klassisch…  Als Resourcen oder programmatisch  UI Komponenten: Basisklasse View  Layouts (Linear, Grid, Table, Relative, …)  UI Thread: Änderungen an der GUI  Events (OnClick, …)  Visueller GUI Editor in Eclipse  Low-Level Canvas API
  • 25.
  • 26. UI & Asynchrone Verarbeitung  UI Thread darf niemals blockiert werden  Nach 5s Android System Dialog  Netzwerkzugriffe, etc. in eigenem Thread  ProgressDialog, Progress Indicator  UI Update aber wieder im UI Thread – Verschiedene Möglichkeiten, z.B. AsyncTask
  • 27. Client-/Server Kommunikation  Apache HttpClient 4  Kein SOAP out of the box  kSOAP  REST mit XML – XML: SAX, DOM, Pull aber kein XPath  REST mit JSON – JSON integriert – Einfach zu parsen
  • 28. Persistenz  Files für XML, JSON, Java Objekte, …  Preferences mit Key/Value Paaren  Vorteil: einfache UI Erstellung  SQLite  Über Applikations-/Prozessgrenzen: Content Provider
  • 29. Performance  Hohe Performance für normale Apps  Optimierungen nötig für: – Background Services (be nice) – Spiele, Multimedia (flüssiger Ablauf)  GC legt VM für 100-200ms lahm  Regel #1: GC vermeiden. Keine neuen Objekte in zentralen Schleifen anlegen  Versteckte Anlage von Objekten
  • 30. Android Market  Google  Alternative App Stores existieren  Registrierung notwendig, einmalig $25  Signieren mit Zertifikat (self-signed)  Kein Review Prozess, sofort im Market  Bezahlung über Google Checkout  70% der Einnahmen an Entwickler
  • 31. Pluspunkte  Schneller Einstieg für Java Entwickler (dennoch: komplexe API & Details!)  All-in: Eclipse-basierte IDE  Open Source  Sicherheit (Permissions, Prozesse, User)  Loose Coupling zwischen Apps (Intents)  UI Customization mit Themes  GPS, Kamera, Beschleunigungssensor
  • 32. Home Screen Widgets (seit 1.5)
  • 33. Screens und DPI (seit 1.6) 120dpi ldpi 160dpi mdpi 240dpi hdpi Kleiner Screen bis 3 Zoll QVGA (240x320) Tattoo Mittlerer Screen 3-4 Zoll HVGA (320x480) G1, Hero WVGA (480x854) Milestone Großer Screen Ab ca. 5 Zoll WVGA (800x480) archos 5
  • 35. Android 2.0 & 2.1 (Eclair)  Multitouch API  Bluetooth API  QuickContacts  Sync & Account Manager  Live Wallpaper (2.1)
  • 36. API Änderungen in Prozent 0% 1% 2% 3% 4% 5% 6% 1.1 1.5 1.6 2.0 2.0.1 2.1 2.2
  • 37. API Änderungen in Prozent 0% 1% 2% 3% 4% 5% 6% 1.1 1.5 1.6 2.0 2.0.1 2.1 2.2
  • 38. Android 2.2 (Froyo)  Cloud-to-Device Messaging (Push)  Apps auf SD Karte (External Storage)  Backup von App Daten (Cloud)  OpenGL ES 2.0 (Shader)  Spracherkennung API  Flash und V8 im Browser  JIT Compiler (2-5 mal schneller)
  • 39. Cloud to Device: Vorbereitung
  • 42. What‘s next? Gingerbread!  Hardware beschleunige UI (GPU)  Tablet Unterstützung  WebM  JIT Compiler Optimierungen  Bezahlmöglichkeit (NFC)  ???
  • 43. Weitere Ressourcen  developer.android.com  SDK: Dev Guide mit guten How-tos, Referenz und API Demos mit Source  Android Developer Blog  android-hilfe.de Forum  androidpit.de  XING Gruppe
  • 44. Vielen Dank! Q&A Markus Junginger markus@greenrobot.de http://greenrobot.de Twitter: greenrobot_de