Android Embedded Webinar Dominik Helleberg Head of mobile development Speaker Dominik Helleberg Mobile Development Android / Embedded Tools http://dominik-helleberg.de/+ Android (2013) Android: Nummer eins der mobilen Betriebssysteme 1.5 Millionen Aktivierungen täglich (Larry Page, 17.10.2013) 1 Milliarde aktivierte Geräte (Sundar Pichai, 03.09.2013) Android (2014) Android: Nummer eins der mobilen Betriebssysteme 1 billion active Android users per month (Pichai, 06/2014) Google Devices Android Auto http://developer.android.com/design/devices.html http://developer.android.com/design/auto/index.html Android Android: Nummer eins der mobilen Betriebssysteme (Smartphones) Android Embedded Android ist modern und “anders” https://twitter.com/Arubin/status/27808662429 Android Embedded Tablets Amazon Tolino http://www.amazon.de/dp/B00KQNUZ9M http://www.tolino.de Android Embedded Kameras Nikon Samsung http://www.nikon.de/de_DE/product/digital-cameras/coolpix/style/coolpix-s800c http://www.samsung.com/de/promotions/galaxycamera/ Android Embedded Glasses Google Glass Recon Instruments Snow2 http://www.google.com/glass/start/ http://www.reconinstruments.com/products/snow2/ Android Embedded Smartwatches / Wear Samsung Gear Live Neptune Pine LG-G Watch Moto 360 https://play.google.com/store/devices/details?id=samsung_gear_live_black http://www.neptunepine.com/ https://play.google.com/store/devices/details?id=lg_g_watch_black http://www.motorola.de/consumers/moto360-de/Moto-360/moto-360-de.html Android Embedded Mobility Android Auto Renault R-Link Boing 787 Honda http://www.android.com/auto/ http://www.renault.de/renault-modellpalette/multimedia/r-link-wall/ http://www.boeing.com/boeing/commercial/787family/ http://www.golem.de/news/honda-connect-nvidias-tegra-faehrt-mit-android-in-japan-1410-109590.html Android Embedded Home LG Kühlschrank Ouya AndroidTV Amazon Fire TV http://www.lg.com/us/refrigerators/lg-LFX31995ST-french-3-door-refrigerator http://ouya.tv http://developer.android.com/tv/index.html http://www.amazon.com/Fire-TV-streaming-media-player/dp/B00CX5P8FC Android Embedded Industry ADLink IMX-2000 Honeywell Casio EPOS Motorola MC3200 http://www.adlinktech.com/PD/web/PD_detail.php?cKind=&pid=1229 http://goo.gl/hyJXWf http://goo.gl/k9L3V6 http://goo.gl/5dOVL7 Android Embedded http://e.ubmelectronics.com/2013EmbeddedStudy/index.html Android Embedded http://e.ubmelectronics.com/2013EmbeddedStudy/index.html Embedded Touch-UI Die Realität Embedded Touch-UI Die Realität http://commons.wikimedia.org/wiki/File:Helvar_Touchscreen_924.jpg Embedded Touch-UI Die Realität Embedded Touch-UI Die Realität Embedded Touch-UI Die Lösung? Android Open Source Projekt Vorteile User Interface Android Open Source Projekt Vorteile Powered by Google http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/ Android Open Source Projekt Vorteile Weiterentwicklung http://www.google.com/design/spec/material-design/introduction.html# https://www.youtube.com/watch?v=EBlTzQsUoOw http://www.anandtech.com/show/8231/a-closer-look-at-android-runtime-art-in-android-l http://arstechnica.com/gadgets/2014/07/examining-project-volta-we-put-android-l-through-our-battery-test/ Android Open Source Projekt Vorteile Weiterentwicklung https://plus.google.com/u/0/104162817526798820937/posts/UVXbWmxWvBh https://www.openhub.net/p/platform_art Android Open Source Projekt Vorteile Weiterentwicklung Video http://www.google.com/design/spec/material-design/introduction.html Android Open Source Projekt Vorteile Tooling Android Open Source Projekt Vorteile Hardware Acceleration “builtin” Application Views Canvas API libHWUI OpenGL ES SurfaceFlinger SKIA Android Open Source Projekt Vorteile - HAL Application SystemService Manager Interface locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); private final ILocationManager mService; void requestLocationUpdates( in LocationRequest request, in ILocationListener listener, in PendingIntent intent, String packageName); Manager Service HAL / native private native boolean native_start(); typedef struct { /** Starts navigating. */ int (*start)( void ); } Android Open Source Projekt Vorteile Getrennte Embedded / App Entwicklung App / Frontend / Business Logik (Java) Android Framework Java / C / C++ Native / Treiber Kernel C / C++ Android Open Source Projekt Architektur Stock Apps User Apps Framework / API Java System Services Dalvik / ART / Runtime / Zygote Libs HAL Kernel Init Android Open Source Projekt Architektur - Source User Apps Framework / API Java System Services Dalvik / ART / Runtime / Zygote Libs HAL Kernel Init https://android.googlesource.com/ Stock Apps Android Embedded Vorteile Ein BSP für alles: Build Targets ● Firmware for production/debug (extern: Kernel, Bootloader) ● Emulator ● Custom SDK / SDK Addons ● Embedded Android as a Platform Android Embedded Vorteile Ein BSP für alles: Releasetools ● Firmware Updates: ● komplett ● incrementel / delta (inc. Kernel, Bootloader) ● Digitale Signaturen Android Embedded Vorteile Buildsystem inkl. Produktlinien- und Variantenmanagement ● Board Configuration ○ Hardware Konfiguration ■ Partitionierung ■ Boot-Adressen ○ Architektur ○ Firmware (Bootloader, Kernel…) Android Embedded Vorteile Buildsystem inkl. Produktlinien- und Variantenmanagement ereader-BoardConfig.mk fsl-BoardConfigCommon.mk fsl-omx.mk fsl-gpu.mk fsl-codec.mk Android Embedded Vorteile Buildsystem inkl. Produktlinien- und Variantenmanagement ● Product Configuration ○ Gerätenamen, Hersteller etc. ○ System Apps ○ System Module ■ Shared Libraries ■ Vorinstallierte Daten ○ Lokalisierung Android Embedded Vorteile Buildsystem inkl. Produktlinien- und Variantenmanagement imx50_rpd.mk ereader.mk imx5x.mk generic_no_telephony.mk core.mk language_small.mk Android Embedded Tolino Shine ● Freescale BSP (Android 2.3.3) ● EPD Patches ● 7 GB Source (Build ~ 45 Minuten) ● Designanpassung an EPD ● Recovery / Updateprozess ● Angepasstes USB Verhalten ● Batterielaufzeit / Bootzeit “You can change everything... …Maybe you shouldn‘t “ Android Embedded Vorteile: Android Plattform ● klare Lizenzierung (Apache V2, GPL V3) ● bestehendes KnowHow (Android / Linux / Java) ● große Entwickler-Community (Custom ROMs) ● Applikations & GUI Entwicklung in Java ● zunehmende Auswahl an günstiger, touch-basierter Hardware ● industry proven ● responsive UI “builtin” Android Embedded Vorteile: Kernel ● ARM SoCs Hersteller fokussiert auf Android ● sehr große Entwickler Community ● Treiber mit externen Abhängigkeiten möglich ● Android Kernel ist Standard für ARM BSPs ● Zusammenarbeit Android/Linux Kernel community ● Auch Nicht-Android Plattformen arbeiten mit dem Android Kernel: WebOS, FirefoxOS, Ubuntu Phone Android Embedded Herausforderungen Plattform ● auf smart Devices optimiert ● Abweichungen vom "Vanilla" Linux (Bionic, Kernel, Filesystem Layout, etc.) ● Hohe Innovationsrate -> schnelle Releases, keine Roadmap ● Google Plattform ● Dokumentation... Android Embedded Herausforderungen Plattform cont. Android Embedded Herausforderungen Plattform, Plattform cont. Android Embedded Herausforderungen Plattform / App ● hohe Hardwareanforderungen ● UI zentriert ● Realtime ? ● Robustheit: uptime, watchdog, etc. ● kein Store, keine Play Services ● UI Entwicklung ist nicht Enterprise Java ● Ansprüche an UI und UX sind hoch Android Embedded Weiterführende Literatur http://www.oreilly.de/catalog/9781449308292/index.html http://www.pearsonhighered.com/educator/product/Modern-Operating-Systems/9780133591620.page Vielen Dank für Ihre Aufmerksamkeit! Kontakt Dominik Helleberg http://dominik-helleberg.de/+ Mail: [email protected]