Android in der Industrie Jörg Pleumann Head of Android Development Noser Engineering AG Berner Technologie-Impulse 08.09.2011 Agenda ● Was ist Android? ● Software ● Hardware ● Industrielle Projekte ● Fazit Einleitung (I) ● Android ● ● ● ● Kompletter Software-Stack (nicht nur) für Mobiltelefone Führende SmartphonePlattform Open Source Open Handset Alliance ● Google, HTC, T-Mobile ● … ● Noser Engineering Einleitung (II) ● ● Open Source ● GNU / Apache / etc. ● Beliebig anpassbar ● Keine Lizenzkosten Technisch attraktiv ● Linux-Kernel ● Java-Applikationen ● Legt Wert auf Effizienz ● Ähnlich Embedded Systems GPL GPL C++/ /Assembler Assembler CC/ /C++ Apache/ /BSD BSD Apache Java Java Aufbau der Plattform Laufzeitumgebung ● Kompatibel zu Untermenge des JDK 1.5 FuF Vluloy llyls java.io sust java.io äpunp java.lang java.lang dopir o java.lang.annotation java.lang.annotation gtertde java.lang.ref java.lang.ref java.lang.reflect java.lang.reflect java.math java.math java.net java.net java.nio java.nio java.nio.channels java.nio.channels java.nio.channels.spi java.nio.channels.spi java.nio.charset java.nio.charset java.nio.charset.spi java.nio.charset.spi java.security java.security java.security.acl java.security.acl java.security.cert java.security.cert java.security.interfaces java.security.interfaces java.security.spec java.security.spec java.sql java.sql d FuF Vluloy llyls java.text sust java.text äpunp java.util java.util dopir ogter java.util.concurrent java.util.concurrent java.util.concurrent.atomictde FuF Vluloy llyls org.xml.sax sust org.xml.sax äpunp org.xml.sax.ext org.xml.sax.ext dopi org.xml.sax.helpers org.xml.sax.helpers rogtertde java.util.concurrent.atomicd java.util.concurrent.locks java.util.concurrent.locks java.util.jar java.util.jar java.util.logging java.util.logging java.util.prefs java.util.prefs java.util.regex java.util.regex java.util.zip java.util.zip d ÄOl Otlde lerder javax.xml evVr javax.xml eev javax.xml.parsers javax.xml.parsers rersriiso ino n javax.crypto javax.crypto javax.crypto.interfaces javax.crypto.interfaces javax.crypto.spec javax.crypto.spec javax.net javax.net javax.net.ssl javax.net.ssl javax.security.cert javax.security.cert javax.sql javax.sql PUaP rantlrv ytoly javax.security.auth javax.security.authsllusptu äpn javax.security.auth.callbck javax.security.auth.callbck opdro javax.security.auth.login javax.security.auth.loginitgertde javax.security.auth.x500 javax.security.auth.x500 d org.w3c.dom org.w3c.dom Framework ● Einige Beispiele für GUI-Elemente... Werkzeuge ● Entwicklungsprozess (vereinfacht) IDE IDE ● ● JavaJavaCompiler Compiler Bestehende Werkzeuge und Wissen nutzbar Android SDK Package Package Tool Tool HelloWorld.apk HelloWorld.apk Dx Dx Converter Converter Dalvik Dalvik VM VM HelloWorld.apk HelloWorld.apk Hello.class classes.dex World.class strings.txt strings.txt image.png image.png SDK ● Build-Werkzeuge ● Dokumentation ● Beispiele ● Emulator ● Konfigurierbar ● Erweiterbar ● Debugging Tools ● Eclipse Plugin NDK ● ● Native Development Kit ● Ergänzung zum SDK ● Einbinden von C(++)-Code ● Java Native Interface (JNI) ● Auslieferung mit der App Achtung! ● Lohnt sich nicht immer ● Code nicht mehr portabel Hardware (I) ● ● Mittelklasse: Nexus One ● Von HTC produziert ● Von Google vertrieben Technische Daten ● 1 GHz, 384 MB RAM, WVGA ● UMTS, quad-band GSM ● Touchscreen, Trackball ● 5 MP, GPS, diverse Sensoren Hardware (II) ● ● Über Telefone hinaus ● Internet Tablet ● Media Player ● Navigationssystem ● Wecker Noch ein Schritt weiter ● Ticket-Automat ● Automotive ● Anlagensteuerung Prototyp ● ● ● ● ● Drehende Scheibe Transparente Symbole Lichtschranke misst Umdrehungen LED für StroboskopEffekt Nur ein Symbol soll aufleuchten Kundenprojekte (I) ● Mobile Messgeräte ● ● ● ● ● Auswahl einer HWPlattform Portieren von Android Integration eines oder mehrerer Sensoren Entwicklung einer spezialisierten Applikation Eigener Marktplatz für Applikationen (optional) Kundenprojekte (II) ● ● Automotive-Plattform und -Applikation ● Basis für In-Car Entertainment & Internet ● Teilweise inspiriert vom Rennsport ● Vorstellung auf der IAA 2011 Herausforderungen ● Portierung und Anpassen von Android ● Umfangreiche, attraktive Applikation ● Anforderungen im Bereich Automotive ● Von der Evaluation zur Serienreife Fazit ● ● Was fehlt? ● Standard-API für Sensoren / Aktoren / Busse ● Framework für industrielle Anwendungsfälle ● Echtzeiterweiterungen (Ziswiler, 2009) Was bekommt man? ● Moderne Open-Source Plattform ● Mächtiges Set von Werkzeugen ● Gute Time-to-Market dank Java NOSER ENGINEERING AG Talackerstrasse 99 CH-8400 Winterthur +41 52 23456 11 (phone) [email protected] www.noser.com Vielen Dank!