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. 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
  2. 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%)
  3. 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?
  4. Evolution Car radio : • Clarion Mirage IVI (Android 2.2

    - Froyo) • Parrot Asteroid (Android 1.5 - Cupcake)
  5. Evolution Non mobile devices : • Connected TV / set

    top boxes • Bus Shelter • IVI system • etc consumer market -> embedded market
  6. 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.
  7. 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
  8. 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
  9. 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)
  10. 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.
  11. 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
  12. 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
  13. 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.
  14. Start with Android • Fully integrated development environment ◦ Eclipse

    ◦ Simulator ◦ Debugger (DDMS) ◦ Performance analyser (traceview, hierarchy viewer) ◦ Static code analyser (lint) ◦ Application deployement (Google Play)
  15. Start with Android • Huge Community ◦ User Group (Paug)

    ◦ Linaro ◦ Stackoverflow ◦ Hackathon / Dev for fun
  16. 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
  17. 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, ...)
  18. Pros and Cons • OpenSource ... Google style ◦ You

    can customize your ROM for your needs ◦ You depend on Google for the future
  19. 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
  20. 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?
  21. 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
  22. 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