Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Embedded Android: Strengths and Weaknesses

Embedded Android: Strengths and Weaknesses

Android or "classic" linux embedded?
This presentation will introduce the android world and show why and when you should choose Android.

Cédric Cabessa

April 18, 2013
Tweet

More Decks by Cédric Cabessa

Other Decks in Technology

Transcript

  1. Embedded Android:
    Strengths and
    Weaknesses
    Cédric Cabessa
    [email protected]

    View Slide

  2. Summary
    ● Evolution
    ● Is Android Embedded ?
    ● Start with Android
    ● Pros and Cons

    View Slide

  3. Evolution
    ● Android Inc founded in 2003
    ● Acquired by Google in 2005
    ● Open Handset Alliance founded in 2007
    (Samsung, LG, HTC, TI, Nvdia, Intel,ARM, TMobile, Google, ...)
    ● HTC Dream in 2008
    android is announced in 2007
    OHA: develop open standards for mobile devices.
    vertical integration: mobile operator, software, semiconductor, handset manufacturer

    View Slide

  4. Evolution
    ● Tablet version: February 2011
    ● Merge phone / tablet: Octobre 2011
    http://faqoid.com/advisor/android-versions.php
    Device for consumer
    1.5 April 30, 2009 cupcake
    1.6 September 15, 2009 donut
    2.0/2.1 October 26, 2009 eclair
    2.2 May 20, 2010 froyo
    2.3 December 6, 2010 2.3.7 September 21, 2011 (gingerbread 40% in april 2013)
    3.0 February 22, 2011
    4.0.1 October 19, 2011 (ics 29%)
    4.1.1 July 9, 2012 (jb 25%)

    View Slide

  5. Evolution
    "First" device:
    T mobile G1
    Motorola Xoom
    Freescale imx53
    Flagship device (supported by AOSP: you can flash it)
    Nexus 4
    Nexus 10
    pandaboard
    pandaboard since 4.0. Android is officialy not general consumer only?

    View Slide

  6. Evolution
    Car radio :
    ● Clarion Mirage IVI (Android
    2.2 - Froyo)
    ● Parrot Asteroid (Android 1.5 -
    Cupcake)

    View Slide

  7. Evolution
    Watch :
    ● Sony Ericsson LiveView
    ● VEGA Android Watch
    ● I'm Watch

    View Slide

  8. Evolution
    Non mobile devices :
    ● Connected TV / set top boxes
    ● Bus Shelter
    ● IVI system
    ● etc
    consumer market -> embedded market

    View Slide

  9. Is Android Embedded?
    ● Compatibility Definition Document (JellyBean 4.1) :
    ○ 340 Mo RAM
    ○ OpenGL ES 1.0 et 2.0
    ○ Browser < 1300 ms
    ● Gingerbread (2.3)
    ○ 128 Mo RAM
    What is embedded
    designated task? Android can run many application
    hardware contraint?
    Android is often tuned to fullfil a specific task on a specific hardware.

    View Slide

  10. Is Android Embedded?
    ● Parrot Asteroid :
    ○ Android 1.5
    ○ 468 Mhz
    ○ 256 RAM

    View Slide

  11. Is Android Embedded?
    ● Portability
    ○ ARM
    ○ x86
    ○ MIPS
    ○ Power Architecture
    Majority ARM (high end: cortex A9)
    Intel pushes android
    Android is not java only. Binary compatibilty?
    => Intel "Houdini" (closed source)
    Tablet MIPS $100

    View Slide

  12. Start with Android
    ● Android Open Source Project
    ○ http://source.android.com
    ○ ~ 6 Go
    ○ Apache License
    ● OS = AOSP + Hardware Support
    ● Hardware :
    ○ Kernel (Linux + android patch) GPLv2
    ○ Drivers / library (blob)
    AOSP does not contains "hardware support" :
    * kernel
    * Drivers / lib (blob): gps, modem, video decoding

    View Slide

  13. Start with Android
    ● Flagship devices AOSP
    ○ Nexus : Galaxy, 4, 7, 10
    ○ Motorola Xoom
    ○ Pandaboard (experimental)
    ● Cyanogenmod
    kernel and blob available (separated from AOSP, but availalbe at http://source.
    android.com/source/building-devices.html)

    View Slide

  14. Start with Android
    ● Ask your manufacturer
    ○ Boards available for all Android version
    ○ Should provide:
    ■ Kernel
    ■ Hardware support libraries
    ■ AOSP patches
    Be careful to which part is binary or not, some manufacturer provide a full android
    package with lots of prebuilt binaries.
    A good manufacturer should let you download a specific version from google and only
    add hardware specific code / blob.
    Update / security fix is also a concern when choosing a manufacturer.

    View Slide

  15. Start with Android
    http://developer.android.com/about/versions/index.html

    View Slide

  16. Start with Android
    SOC support
    Android patches: Binder, PM (wakelock), paranoid network, ...
    Effort to merge patches in kernel.org
    Write your own driver for your device

    View Slide

  17. Start with Android
    "external" project: sqlite, webkit, ssl
    google project:
    surface manager (X/Wayland like)
    media framework (GStreamer like)
    Bionic: libc rewrite
    NOT posix
    no c++ exception
    no System V ipc
    incomplete thread support
    ...
    => carreful when porting C/C++ code to android

    View Slide

  18. Start with Android
    java core API
    dalvik != sun
    source: java6

    View Slide

  19. Start with Android
    Android specific API

    View Slide

  20. Start with Android
    Your app written in java, uses services from the framework that run on the Android
    Runtime, that call C written library, that use bionic to call kernel services.

    View Slide

  21. Start with Android
    ● Fully integrated development environment
    ○ Eclipse
    ○ Simulator
    ○ Debugger (DDMS)
    ○ Performance analyser (traceview, hierarchy
    viewer)
    ○ Static code analyser (lint)
    ○ Application deployement (Google Play)

    View Slide

  22. Start with Android
    ● Huge Community
    ○ User Group (Paug)
    ○ Linaro
    ○ Stackoverflow
    ○ Hackathon / Dev for fun

    View Slide

  23. Pros and Cons
    ● Android : fully integrated
    The library you need is already here: webkit, opengl, gps, webcam, ...
    SDK with doc
    The low level stack is already choosen

    View Slide

  24. Pros and Cons
    ● Linux Embedded: lot of choices
    You need to build your own system and add your own tool: webcam api, gps api, ...
    It is ok if :
    * You already have an expertise
    * you have specific needs (performance, footprint, ...)

    View Slide

  25. Pros and Cons
    ● OpenSource ... Google style
    ○ You can customize your ROM for your needs
    ○ You depend on Google for the future

    View Slide

  26. Pros and Cons
    ● User centric
    ○ App is king
    ○ GUI
    ○ Touch screen
    ○ RS232? CAN?
    ○ Lot of apps ready to use
    You can build your own support for the protocols you need, but you'll need to do it
    again for next version

    View Slide

  27. Pros and Cons
    ● User centric
    ○ App is king
    ○ GUI
    ○ Touch screen
    ○ RS232? CAN?
    ○ Lot of apps ready to use
    You can throw birds on pigs. It's only thing that matters no?

    View Slide

  28. References
    ● Android Builder Summit 2013
    http://www.linux.com/news/featured-blogs/200-libby-clark/707796-defining-android-vs-embedded-linux
    ● Growth of Android in Embedded Systems
    https://training.linuxfoundation.org/free-linux-training/download-training-materials/growth-of-android-in-
    embedded-systems

    View Slide

  29. Q&A
    Genymobile SAS - 41, rue Meslay 75003 PARIS - 01 83 64 25 40
    www.genymobile.com
    QUESTIONS ?
    Cédric Cabessa
    [email protected]
    [email protected]
    https://speakerdeck.com/cedriccabessa/embedded-android-strengths-and-weaknesses

    View Slide