Top Banner
Android Embedded Webinar Dominik Helleberg Head of mobile development
46
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android Embedded - Einführung in Android als Embedded-Plattform

Android Embedded

Webinar

Dominik HellebergHead of mobile development

Page 2: Android Embedded - Einführung in Android als Embedded-Plattform

Speaker

Dominik Helleberg

Mobile Development

Android / Embedded

Tools

http://dominik-helleberg.de/+

Page 3: Android Embedded - Einführung in Android als Embedded-Plattform

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)

Page 4: Android Embedded - Einführung in Android als Embedded-Plattform

Android (2014)Android: Nummer eins der mobilen Betriebssysteme

1 billion active Android users per month (Pichai, 06/2014)

Google Devices http://developer.android.com/design/devices.htmlAndroid Auto http://developer.android.com/design/auto/index.html

Deutsch oder Englisch?

Page 5: Android Embedded - Einführung in Android als Embedded-Plattform

Android Android: Nummer eins der mobilen Betriebssysteme (Smartphones)

Page 6: Android Embedded - Einführung in Android als Embedded-Plattform

https://twitter.com/Arubin/status/27808662429

Android EmbeddedAndroid ist modern und “anders”

Page 7: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedTablets

Amazon http://www.amazon.de/dp/B00KQNUZ9MTolino http://www.tolino.de

Page 8: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedKameras

Nikon http://www.nikon.de/de_DE/product/digital-cameras/coolpix/style/coolpix-s800cSamsung http://www.samsung.com/de/promotions/galaxycamera/

Page 9: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedGlasses

Google Glass http://www.google.com/glass/start/Recon Instruments Snow2 http://www.reconinstruments.com/products/snow2/

Page 10: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedSmartwatches / Wear

Samsung Gear Live https://play.google.com/store/devices/details?id=samsung_gear_live_blackNeptune Pine http://www.neptunepine.com/LG-G Watch https://play.google.com/store/devices/details?id=lg_g_watch_blackMoto 360 http://www.motorola.de/consumers/moto360-de/Moto-360/moto-360-de.html

Page 11: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedMobility

Android Auto http://www.android.com/auto/Renault R-Link http://www.renault.de/renault-modellpalette/multimedia/r-link-wall/Boing 787 http://www.boeing.com/boeing/commercial/787family/Honda http://www.golem.de/news/honda-connect-nvidias-tegra-faehrt-mit-android-in-japan-1410-109590.html

Page 12: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedHome

LG Kühlschrank http://www.lg.com/us/refrigerators/lg-LFX31995ST-french-3-door-refrigeratorOuya http://ouya.tvAndroidTV http://developer.android.com/tv/index.htmlAmazon Fire TV http://www.amazon.com/Fire-TV-streaming-media-player/dp/B00CX5P8FC

Page 13: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedIndustry

ADLink IMX-2000 http://www.adlinktech.com/PD/web/PD_detail.php?cKind=&pid=1229Honeywell http://goo.gl/hyJXWfCasio EPOS http://goo.gl/k9L3V6Motorola MC3200 http://goo.gl/5dOVL7

Page 14: Android Embedded - Einführung in Android als Embedded-Plattform

http://e.ubmelectronics.com/2013EmbeddedStudy/index.html

Android Embedded

Page 15: Android Embedded - Einführung in Android als Embedded-Plattform

http://e.ubmelectronics.com/2013EmbeddedStudy/index.html

Android Embedded

Page 16: Android Embedded - Einführung in Android als Embedded-Plattform

Embedded Touch-UIDie Realität

Page 17: Android Embedded - Einführung in Android als Embedded-Plattform

http://commons.wikimedia.org/wiki/File:Helvar_Touchscreen_924.jpg

Embedded Touch-UIDie Realität

Page 18: Android Embedded - Einführung in Android als Embedded-Plattform

Embedded Touch-UIDie Realität

Page 19: Android Embedded - Einführung in Android als Embedded-Plattform

Embedded Touch-UIDie Realität

Page 20: Android Embedded - Einführung in Android als Embedded-Plattform

Embedded Touch-UIDie Lösung?

Page 21: Android Embedded - Einführung in Android als Embedded-Plattform

Android Open Source ProjektVorteile

User Interface

Page 22: Android Embedded - Einführung in Android als Embedded-Plattform

http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/

Android Open Source ProjektVorteile

Powered by Google

Page 23: Android Embedded - Einführung in Android als Embedded-Plattform

http://www.google.com/design/spec/material-design/introduction.html#https://www.youtube.com/watch?v=EBlTzQsUoOwhttp://www.anandtech.com/show/8231/a-closer-look-at-android-runtime-art-in-android-lhttp://arstechnica.com/gadgets/2014/07/examining-project-volta-we-put-android-l-through-our-battery-test/

Android Open Source ProjektVorteile Weiterentwicklung

Page 24: Android Embedded - Einführung in Android als Embedded-Plattform

https://plus.google.com/u/0/104162817526798820937/posts/UVXbWmxWvBhhttps://www.openhub.net/p/platform_art

Android Open Source ProjektVorteile Weiterentwicklung

Page 25: Android Embedded - Einführung in Android als Embedded-Plattform

http://www.google.com/design/spec/material-design/introduction.html

Android Open Source ProjektVorteile Weiterentwicklung

Video

Page 26: Android Embedded - Einführung in Android als Embedded-Plattform

Android Open Source ProjektVorteile

Tooling

Page 27: Android Embedded - Einführung in Android als Embedded-Plattform

Android Open Source ProjektVorteile

Hardware Acceleration “builtin”

Canvas API

ViewsApplication

OpenGL ES

libHWUI SKIA

SurfaceFlinger

Page 28: Android Embedded - Einführung in Android als Embedded-Plattform

Android Open Source ProjektVorteile - HAL

SystemService

Application locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

private final ILocationManager mService;

Manager Interface

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 ); }

Page 29: Android Embedded - Einführung in Android als Embedded-Plattform

Android Open Source ProjektVorteile

Getrennte Embedded / App Entwicklung

Android FrameworkJava / C / C++

App / Frontend / Business Logik(Java)

Native / TreiberKernelC / C++

Page 30: Android Embedded - Einführung in Android als Embedded-Plattform

Android Open Source ProjektArchitektur

Stock Apps

Framework / API

User Apps

JavaSystem Services

Dalvik / ART / Runtime / Zygote

Kernel

Libs HAL Init

Page 31: Android Embedded - Einführung in Android als Embedded-Plattform

Android Open Source ProjektArchitektur - Source

Stock Apps

Framework / API

User Apps

JavaSystem Services

Dalvik / ART / Runtime / Zygote

Kernel

Libs HAL Init

https://android.googlesource.com/

Page 32: Android Embedded - Einführung in Android als Embedded-Plattform

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 EmbeddedVorteile

Page 33: Android Embedded - Einführung in Android als Embedded-Plattform

● Firmware Updates:

● komplett

● incrementel / delta (inc. Kernel, Bootloader)

● Digitale Signaturen

Ein BSP für alles: Releasetools

Android EmbeddedVorteile

Page 34: Android Embedded - Einführung in Android als Embedded-Plattform

● Board Configuration

○ Hardware Konfiguration

■ Partitionierung

■ Boot-Adressen

○ Architektur

○ Firmware (Bootloader, Kernel…)

Buildsystem inkl. Produktlinien- und

Variantenmanagement

Android EmbeddedVorteile

Page 35: Android Embedded - Einführung in Android als Embedded-Plattform

Buildsystem inkl. Produktlinien- und

Variantenmanagement

ereader-BoardConfig.mk

fsl-BoardConfigCommon.mk

fsl-omx.mk fsl-codec.mkfsl-gpu.mk

Android EmbeddedVorteile

Page 36: Android Embedded - Einführung in Android als Embedded-Plattform

● Product Configuration

○ Gerätenamen, Hersteller etc.

○ System Apps

○ System Module

■ Shared Libraries

■ Vorinstallierte Daten

○ Lokalisierung

Buildsystem inkl. Produktlinien- und

Variantenmanagement

Android EmbeddedVorteile

Page 37: Android Embedded - Einführung in Android als Embedded-Plattform

Buildsystem inkl. Produktlinien- und

Variantenmanagement

imx50_rpd.mk

ereader.mk imx5x.mk

language_small.mkgeneric_no_telephony.mk

core.mk

Android EmbeddedVorteile

Page 38: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedTolino 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 “

Page 39: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedVorteile: 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”

Page 40: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedVorteile: 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

Page 41: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedHerausforderungen Plattform

● auf smart Devices optimiert

● Abweichungen vom "Vanilla" Linux

(Bionic, Kernel, Filesystem Layout, etc.)

● Hohe Innovationsrate -> schnelle Releases, keine Roadmap

● Google Plattform

● Dokumentation...

Page 42: Android Embedded - Einführung in Android als Embedded-Plattform

Herausforderungen Plattform

Android EmbeddedHerausforderungen Plattform cont.

Page 43: Android Embedded - Einführung in Android als Embedded-Plattform

Herausforderungen Plattform

Android EmbeddedHerausforderungen Plattform, cont.

Page 44: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedHerausforderungen 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

Page 45: Android Embedded - Einführung in Android als Embedded-Plattform

Android EmbeddedWeiterführende Literatur

http://www.oreilly.de/catalog/9781449308292/index.htmlhttp://www.pearsonhighered.com/educator/product/Modern-Operating-Systems/9780133591620.page

Page 46: Android Embedded - Einführung in Android als Embedded-Plattform

KontaktDominik Helleberg

http://dominik-helleberg.de/+Mail: [email protected]

Vielen Dank für Ihre Aufmerksamkeit!