Dieser Vortrag ist unter der Lizenz der Creative Commons Namensnennung-Nicht-kommerziell-
             Weitergabe unter gleichen Bedingungen 3.0, Deutschland veröffentlicht

                    http://creativecommons.org/licenses/by-nc-sa/3.0/de/
Die Android-Plattform
      Java für unterwegs?
Moritz Haarmann                  Benjamin Reimold


Medieninformatik, HdM Stuttgart   Angewandte Informatik, DH BW



     Nolte&Lauth GmbH                      aformatik




       @derwildemomo                     @elektrojunge
Hallo Android!
Wer seid Ihr?
   Hände hoch!
Agenda

Was ist    Apps für
                      B2B Apps   Technologie
Android   Endkunden
Was fehlt

• eine Einführung in die Programmierung für Android
• Werbung für Google/Android
• Keine Codebeispiele
• Geräte verschenken
• auch nicht am Ende
Verkaufsanteil Mobiler
   Betriebssysteme
Android     iPhone         Symbian        Other       RIM        Linux
WiMo

                     4 %
                            7 %    10 %


                19 %                      15 %



          1 %



                                  44 %


            Quelle: Gartner, Weltweiter Verkauf mobiler Betriebssysteme, Q1/10
18 erhältlich, 67
                                                                             welt weit



              Versionsgeschichte
               iPhone 3G                        iPhone 3GS                          iPad




  OHA                                  Cupcake 1.5           Eclair 2.0         Froyo 2.2
announces         Android 1.0
 Android                        Android 1.1          Donut 1.6            Eclair 2.1




       2008                     2009                               2010
Versionsverteilung
Android 1.5          Android 1.6              Android 2.1




                                 25 %



              50 %



                                 25 %




                     Quelle: Google, Zugriffe auf Android Market, Juni 2010
Apps für Endkunden
Apps für Endkunden

• Größter Anteil an Apps für Android
• Keine Zertifizierung wie bei Apples
  Appstore
• 25$ Registrierungsgebühr für Market
• Regional begrenzte Verteilung möglich
Monetarisierung Aktiv

• Aktiv: 30/70, davon 30% des Umsatzes an
  Google
• Zahlung nur über Google Checkout
• Apps können binnen 24h zurückgegeben
  werden, volle Rückerstattung inklusive
Monetarisierung Passiv

• Google Mobile Ads, vorgestellt 2010
• In-App Werbung
• Dauerhafte Einnahmen auch nach Kauf
• Attraktiver für Endkunden?
• Nicht in jedem App-Konzept realisierbar
50% der iphone käufer
                                         21% der android user



              Probleme
                                         quelle: admob




• Im Moment sind die Kunden weniger
  kauffreudig als bei Apple
• Illegale Verbreitung von Apps?
• Paid Market nicht überall verfügbar!
• Kauf nur über Google Checkout
• Hardwarefragmentierung
Android im
Unternehmen?
Erwartungen
• Einfache Entwicklung von Applikationen
  (Zeit & Kosten)
• Produktivitätssteigerung
• Erreichbarkeit
• Kontrolle
• Sicherheit
Neue Möglichkeiten?

• Geolokalisation
• Internetzugang
• Kamera
• Schnelle Prozessoren
• Lagesensoren
•?
Entwicklung

• Kostenloses SDK, Plugin für Eclipse
• Einfacher Einstieg bei der Entwicklung,
  bekannte IDE (Eclipse),Verwendung von
  Java(-Syntax) & XML
• Plattformunabhängig (Linux, Mac, Windows)
Android für Unternehmen?

• Programmier-/Laufzeitumgebung frei wählbar, z.B.
  auch Flash
• Philosophie der Offenheit (keine privaten APIs)
• Kein Desktop-Client à la iTunes notwendig
• Zugriff auf Gerätespeicher mittels Dateimanager
• Android ist im Kern Open Source (Security,…)
Android für Unternehmen?

 • Anbindung an Exchange
  • Sync von Adressen & E-Mails
  • Kein Sync von Kalender
 • Unabhängige Verteilung von Apps ohne
   Google & Android Market
 • Vollständig anpassbare GUI
Froyo für Unternehmen?
• Starker Schritt in Richtung
                                        remote wipe -> aus der
                                        ferne löschen



  Unternehmseinsatz
• Verbesserte MS Exchange Integration
 • Password Policies,
 • Address Lookup
 • Kalendersynchronisation
• Device Policy Management API
Froyo für Unternehmen?
                                          push to phone,
                                          vertriebsbeispiel




• Remote Wipe
• Auto-Update von Applikationen
• Push-to-Phone Feature (Cloud 2 Device
  Messaging)
Nachteile

• Starke, unbekämpfte Plattformfragmentierung
• Falls Nutzung mit Google-Account: Sicherheit,
  Datenschutz
• Google bietet keinen direkten Support
• Anpassungen verhindern native OS-Updates
• Keine native Vollverschlüsselung
Zukunft
• Entwicklung des Marktes (iPhone,
  Blackberry, WinPhone7, Symbian, MeeGo,
  WebOS, Bada?)
• Android Integration mit Enterprise
  Backends (SAP, Lotus, ...)
• Web-Applikationen sollen sich immer mehr
  wie native Apps anfühlen, HTML5 (Zugriff
  auf Kamera, Lagesensor, etc.)
• Android 3.0 (Gingerbread)? Langsamere
  Release-Zyklen?
Fazit
• Einfache Entwicklung von Applikationen
  (Zeit & Kosten)
• Mit Froyo (2.2) gesteigerte
  Businesstauglichkeit
• Android wird zunehmend interessant für
  die Anwendung im Enterprise-/Business-
  Umfeld
• Anpassungen notwendig, nicht zu
  unterschätzen
Die Dalvik VM
Hintergrund
• Dalvík: Hafenstadt in Island
• Entwickelt unter der Führung von Dan
  Bornstein, seit 2005 bei Google
• VM mit Fokus auf resourcenbeschränkte
  Umgebungen
• Keine Java VM!
Laufzeitverhalten

• Jede Applikation läuft in eigenem Prozess
  mit eigenem Speicher
• Sandboxing wichtig wegen
 • Stabilität
 • Sicherheit!
Unterschiede zur JVM


• Dalvik benutzt DEX-Binaries, die aus .Class
  Dateien kompiliert werden
• .Class und .dex sind nicht binär kompatibel
• Lizenzfrage?
DEX-Format
• „Captain Obvious“ meldet: DEX = Dalvik
  Executable
• Größte Optimierung statischer Art: globaler
  Constant Pool für alle Klassen eines Pakets.
• Andere Opcodes (2 byte statt 1 byte)
• Dx-tool konvertiert JAR nach DEX
• Bei der Installation wird noch optimiert,
  z.B. bei Byte Order, Inline Functions, Static
  linking...
Garbage Collector
• Prinzipiell: Mark and Sweep
• Problematisch: Kommt der GC, ist für
  (geräteabhängig, da die Prozessorleistung
  variiert) ca. 200ms Pause
• GC fernhalten: Eigener Programmierstil
• Vgl. iPhone: Kein GC!
Java für Android?
Java für Android?
• Grundsätzlich vollkommen anderes
  Gesamtkonzept verglichen mit der Java ME
• „abgespeckte“ Java SE, basierend auf Apache
  Harmony (Open Sorce Java Runtime)
• Keine Java ME-Klassen
• Generics und Annotations
• Reflection
Bestandteile
         AWT,
                                   Android
         Swing,     Java API
                                   Packages
         JDBC



• Konsistente API auf allen Geräten mit gleicher Version
• Rasche Weiterentwicklung (von Google bestimmt)
Java für Android?
• Exzessiver Gebrauch von final, static
• Vermeidung von Iteratoren, Collections,
  Enums, übermäßiger Objektallokation
  (Reuse, StringBuilder)
• Unterschied: Sehr bewusster Umgang mit
  Speicher notwendig, saubere Entwicklung.
UI-Entwicklung

• Kein Swing, kein AWT
• Prinzipiell: Deklarativ mittels XML (wie in
  Silverlight oder JavaFX), oder
  programmatisch unter Benutzung von
  android.*
• Wenig Gemeinsamkeiten mit der
  traditionellen UI-Entwicklung in Java,
  abgesehen vom Event-Handling
Fazit
• Bekannte Technologie, neue Anwendung
• Java als Köder?
• Revolutionär: Hochoptimierte VM inklusive
  eigenem Bytecode
• Nicht vergleichbar mit Java ME
• Resourcen: http://tinyurl.com/jfs2010
Fragen?
Danke!
Moritz Haarmann                Benjamin Reimold


 m.haarmann@gmail.com          benjamin.reimold@aformatik.de

   @derwildemomo                      @elektrojunge




               http://gtugna.gtugs.org

Die Android Plattform

  • 1.
    Dieser Vortrag istunter der Lizenz der Creative Commons Namensnennung-Nicht-kommerziell- Weitergabe unter gleichen Bedingungen 3.0, Deutschland veröffentlicht http://creativecommons.org/licenses/by-nc-sa/3.0/de/
  • 2.
    Die Android-Plattform Java für unterwegs?
  • 3.
    Moritz Haarmann Benjamin Reimold Medieninformatik, HdM Stuttgart Angewandte Informatik, DH BW Nolte&Lauth GmbH aformatik @derwildemomo @elektrojunge
  • 4.
  • 5.
    Wer seid Ihr? Hände hoch!
  • 6.
    Agenda Was ist Apps für B2B Apps Technologie Android Endkunden
  • 7.
    Was fehlt • eineEinführung in die Programmierung für Android • Werbung für Google/Android • Keine Codebeispiele • Geräte verschenken • auch nicht am Ende
  • 8.
    Verkaufsanteil Mobiler Betriebssysteme Android iPhone Symbian Other RIM Linux WiMo 4 % 7 % 10 % 19 % 15 % 1 % 44 % Quelle: Gartner, Weltweiter Verkauf mobiler Betriebssysteme, Q1/10
  • 9.
    18 erhältlich, 67 welt weit Versionsgeschichte iPhone 3G iPhone 3GS iPad OHA Cupcake 1.5 Eclair 2.0 Froyo 2.2 announces Android 1.0 Android Android 1.1 Donut 1.6 Eclair 2.1 2008 2009 2010
  • 10.
    Versionsverteilung Android 1.5 Android 1.6 Android 2.1 25 % 50 % 25 % Quelle: Google, Zugriffe auf Android Market, Juni 2010
  • 11.
  • 12.
    Apps für Endkunden •Größter Anteil an Apps für Android • Keine Zertifizierung wie bei Apples Appstore • 25$ Registrierungsgebühr für Market • Regional begrenzte Verteilung möglich
  • 13.
    Monetarisierung Aktiv • Aktiv:30/70, davon 30% des Umsatzes an Google • Zahlung nur über Google Checkout • Apps können binnen 24h zurückgegeben werden, volle Rückerstattung inklusive
  • 14.
    Monetarisierung Passiv • GoogleMobile Ads, vorgestellt 2010 • In-App Werbung • Dauerhafte Einnahmen auch nach Kauf • Attraktiver für Endkunden? • Nicht in jedem App-Konzept realisierbar
  • 15.
    50% der iphonekäufer 21% der android user Probleme quelle: admob • Im Moment sind die Kunden weniger kauffreudig als bei Apple • Illegale Verbreitung von Apps? • Paid Market nicht überall verfügbar! • Kauf nur über Google Checkout • Hardwarefragmentierung
  • 16.
  • 17.
    Erwartungen • Einfache Entwicklungvon Applikationen (Zeit & Kosten) • Produktivitätssteigerung • Erreichbarkeit • Kontrolle • Sicherheit
  • 18.
    Neue Möglichkeiten? • Geolokalisation •Internetzugang • Kamera • Schnelle Prozessoren • Lagesensoren •?
  • 19.
    Entwicklung • Kostenloses SDK,Plugin für Eclipse • Einfacher Einstieg bei der Entwicklung, bekannte IDE (Eclipse),Verwendung von Java(-Syntax) & XML • Plattformunabhängig (Linux, Mac, Windows)
  • 20.
    Android für Unternehmen? •Programmier-/Laufzeitumgebung frei wählbar, z.B. auch Flash • Philosophie der Offenheit (keine privaten APIs) • Kein Desktop-Client à la iTunes notwendig • Zugriff auf Gerätespeicher mittels Dateimanager • Android ist im Kern Open Source (Security,…)
  • 21.
    Android für Unternehmen? • Anbindung an Exchange • Sync von Adressen & E-Mails • Kein Sync von Kalender • Unabhängige Verteilung von Apps ohne Google & Android Market • Vollständig anpassbare GUI
  • 22.
    Froyo für Unternehmen? •Starker Schritt in Richtung remote wipe -> aus der ferne löschen Unternehmseinsatz • Verbesserte MS Exchange Integration • Password Policies, • Address Lookup • Kalendersynchronisation • Device Policy Management API
  • 23.
    Froyo für Unternehmen? push to phone, vertriebsbeispiel • Remote Wipe • Auto-Update von Applikationen • Push-to-Phone Feature (Cloud 2 Device Messaging)
  • 24.
    Nachteile • Starke, unbekämpftePlattformfragmentierung • Falls Nutzung mit Google-Account: Sicherheit, Datenschutz • Google bietet keinen direkten Support • Anpassungen verhindern native OS-Updates • Keine native Vollverschlüsselung
  • 25.
    Zukunft • Entwicklung desMarktes (iPhone, Blackberry, WinPhone7, Symbian, MeeGo, WebOS, Bada?) • Android Integration mit Enterprise Backends (SAP, Lotus, ...) • Web-Applikationen sollen sich immer mehr wie native Apps anfühlen, HTML5 (Zugriff auf Kamera, Lagesensor, etc.) • Android 3.0 (Gingerbread)? Langsamere Release-Zyklen?
  • 26.
    Fazit • Einfache Entwicklungvon Applikationen (Zeit & Kosten) • Mit Froyo (2.2) gesteigerte Businesstauglichkeit • Android wird zunehmend interessant für die Anwendung im Enterprise-/Business- Umfeld • Anpassungen notwendig, nicht zu unterschätzen
  • 27.
  • 28.
    Hintergrund • Dalvík: Hafenstadtin Island • Entwickelt unter der Führung von Dan Bornstein, seit 2005 bei Google • VM mit Fokus auf resourcenbeschränkte Umgebungen • Keine Java VM!
  • 29.
    Laufzeitverhalten • Jede Applikationläuft in eigenem Prozess mit eigenem Speicher • Sandboxing wichtig wegen • Stabilität • Sicherheit!
  • 30.
    Unterschiede zur JVM •Dalvik benutzt DEX-Binaries, die aus .Class Dateien kompiliert werden • .Class und .dex sind nicht binär kompatibel • Lizenzfrage?
  • 31.
    DEX-Format • „Captain Obvious“meldet: DEX = Dalvik Executable • Größte Optimierung statischer Art: globaler Constant Pool für alle Klassen eines Pakets. • Andere Opcodes (2 byte statt 1 byte) • Dx-tool konvertiert JAR nach DEX • Bei der Installation wird noch optimiert, z.B. bei Byte Order, Inline Functions, Static linking...
  • 32.
    Garbage Collector • Prinzipiell:Mark and Sweep • Problematisch: Kommt der GC, ist für (geräteabhängig, da die Prozessorleistung variiert) ca. 200ms Pause • GC fernhalten: Eigener Programmierstil • Vgl. iPhone: Kein GC!
  • 33.
  • 34.
    Java für Android? •Grundsätzlich vollkommen anderes Gesamtkonzept verglichen mit der Java ME • „abgespeckte“ Java SE, basierend auf Apache Harmony (Open Sorce Java Runtime) • Keine Java ME-Klassen • Generics und Annotations • Reflection
  • 35.
    Bestandteile AWT, Android Swing, Java API Packages JDBC • Konsistente API auf allen Geräten mit gleicher Version • Rasche Weiterentwicklung (von Google bestimmt)
  • 36.
    Java für Android? •Exzessiver Gebrauch von final, static • Vermeidung von Iteratoren, Collections, Enums, übermäßiger Objektallokation (Reuse, StringBuilder) • Unterschied: Sehr bewusster Umgang mit Speicher notwendig, saubere Entwicklung.
  • 37.
    UI-Entwicklung • Kein Swing,kein AWT • Prinzipiell: Deklarativ mittels XML (wie in Silverlight oder JavaFX), oder programmatisch unter Benutzung von android.* • Wenig Gemeinsamkeiten mit der traditionellen UI-Entwicklung in Java, abgesehen vom Event-Handling
  • 38.
    Fazit • Bekannte Technologie,neue Anwendung • Java als Köder? • Revolutionär: Hochoptimierte VM inklusive eigenem Bytecode • Nicht vergleichbar mit Java ME • Resourcen: http://tinyurl.com/jfs2010
  • 39.
  • 40.
  • 42.
    Moritz Haarmann Benjamin Reimold m.haarmann@gmail.com benjamin.reimold@aformatik.de @derwildemomo @elektrojunge http://gtugna.gtugs.org