Android Things:
Building Embedded Devices – An Introduction
Mubeen Jukaku
Emertxe
4-March „17
EFY Conference
Agenda
 Bit of History
 What is Android Things
 Architecture
 Summary
 Q & A
A bit of History
Embedded Linux
Android
Brillo
Embedded Linux
 A set of ad-hoc methods to package the Linux kernel with a
 (minimal) filesystem.
 FS content “to be determined” case-by-case
 APIs are specific to each device/build
 “Core software”:
• BusyBox
• U-Boot
• GNU Toolchain
 Your flavor of:
• glibc or uClibc or eglibc
• yocto or buildroot or eldk or ltib or ptxdist or ...
 No serious UX framework
Embedded Linux
Architecture
Android
 ... apart from its ubiquitous UX ...
 Fully-integrated IDE: Android Studio
 SDK/NDK
 ADB
 Fastboot
 Published, well-known, and very rich APIs
 A large and growing developer community
 And still we can use “embedded Linux” components:
• GNU toolchain, BusyBox, u-boot, …
 An actual standardized dev. env. across all product
lines
Android Stack
Embedded Android
Project Brillo
Initial Google platform for IoT
Based on Android
Announced at Google I/O 2015
Never officially released
Remained in “developer preview” mode
Needed to sign up for developer preview on
https://developers.google.com/brillo/
Sources available from
android.googlesource.com
“Apps” talk straight to HALs
Brillo Architecture
Android Things - Overview
Why Android Things?
IOT challenges
Complex technologies
Interoperability
Security
Scalability
What is Android Things
What is Android Things…
“Reboot” of Google's Android IoT strategy
Reinstates full Android environment
Developers use existing Android dev tools
C/C++ available through NDK
Extended APIs for IoT
Currently at Developer Preview 2
Features Status
Features Status
Memory Footprint < 500 MB
Public Availability Developers Preview 1- Dec ’16
Developers Preview 2 - Feb ’17
Android SDK, Runtime, APIs Developers Preview 1
TensorFlow (ML library) Supported
Device Usage Metrics Future Release
Security Future Release
OTA Updates Future Release
Weave Future Release
What is Android Things…
Turnkey Hardware Solutions
Device production for all
Certified Integrated Hardware Google BSPs
SoMs integrate the SoC, RAM, Flash
Storage, WiFi, Bluetooth and other
components onto a single board
•The Board Support Package (BSP) is
managed by Google.
•SoM vendors may provide the BSPs.
•OEMs provide HAL for sensors and
actuators as APKs.
Comes with FCC certifications Trusted platform to develop on with
standard updates and fixes from
Google.
You can optimize your board design by flattening existing modules
onto a PCB to save costs and space.
Supported Platforms
Weave
Open Communication Platform
 Devices can connect and interact
with one another, the internet,
and your phone
 Ensures that access to your
device and user data is secure
and private.
 Transports: 802.15.4 (zigbee,
threads), BLE, WiFi, Ethernet,
Others possible
Trust & Security
Long Term Support
Security…
Security Requirements from Google* are
largely the same as Android:
SE-Linux Enforcement
Android Verified Boot, Cryptographic
Chain of trust
Google Android Trusty
HW Keymaster 2.0
No Gatekeeper
Android Things Architecture
Android Things
Architecture
Android Things
Architecture
Java API framework
Google Services
API Level 7.0 ( Nougat )
Graphics optional
Things Support Library
OTAs received directly from Google
Behavior Changes
Standard system apps and content providers
absent
Missing core packages (ContactsContract,
MediaStore, Settings etc.)
Subset of Google Play Services available
No runtime permissions (Install time)
No notifications, no system-wide status bar
Behavior Changes…
Displays are optional
Supports graphical user toolkit
Does not include the system status bar or
navigation buttons.
Even without display, activities are still a
primary component of your app
Behavior Changes…
Home activity support
 Home launcher replaced by
IOT_LAUNCHER
Android Things expects one application to
expose a "home activity“ in manifest file
System launches application on boot
Things support Library
Peripheral IO APIs (PIO)
• Enables Apps to talk to sensors and actuators
• Supports GPIO, I2C, UART, PWM, SPI
User driver API
• Extend existing Android framework services
• Allow apps to inject hardware events into
framework that other apps can use.
Things Support Library…
User Space Drivers
Summary
Android Things is Google‟s IoT OS
Certified (but limited) Hardware SoM
support (current)
Developers use existing Android dev tools
Addresses most of the IoT challenges
Extended APIs for IoT (Things API)
Q & A
THANK YOU
Appendix
References
https://developer.android.com/things
https://developers.google.com/weave/
Contact Details
Mubeen Jukaku
Email: mubeenj@emertxe.com
URL: http://www.emertxe.com
https://www.facebook.com/Emertxe https://twitter.com/EmertxeTweet https://www.slideshare.net/EmertxeSlides

Android Things : Building Embedded Devices

  • 1.
    Android Things: Building EmbeddedDevices – An Introduction Mubeen Jukaku Emertxe 4-March „17 EFY Conference
  • 2.
    Agenda  Bit ofHistory  What is Android Things  Architecture  Summary  Q & A
  • 3.
    A bit ofHistory Embedded Linux Android Brillo
  • 4.
    Embedded Linux  Aset of ad-hoc methods to package the Linux kernel with a  (minimal) filesystem.  FS content “to be determined” case-by-case  APIs are specific to each device/build  “Core software”: • BusyBox • U-Boot • GNU Toolchain  Your flavor of: • glibc or uClibc or eglibc • yocto or buildroot or eldk or ltib or ptxdist or ...  No serious UX framework
  • 5.
  • 6.
    Android  ... apartfrom its ubiquitous UX ...  Fully-integrated IDE: Android Studio  SDK/NDK  ADB  Fastboot  Published, well-known, and very rich APIs  A large and growing developer community  And still we can use “embedded Linux” components: • GNU toolchain, BusyBox, u-boot, …  An actual standardized dev. env. across all product lines
  • 7.
  • 8.
  • 9.
    Project Brillo Initial Googleplatform for IoT Based on Android Announced at Google I/O 2015 Never officially released Remained in “developer preview” mode Needed to sign up for developer preview on https://developers.google.com/brillo/ Sources available from android.googlesource.com “Apps” talk straight to HALs
  • 10.
  • 11.
  • 12.
    Why Android Things? IOTchallenges Complex technologies Interoperability Security Scalability
  • 13.
  • 14.
    What is AndroidThings… “Reboot” of Google's Android IoT strategy Reinstates full Android environment Developers use existing Android dev tools C/C++ available through NDK Extended APIs for IoT Currently at Developer Preview 2
  • 15.
    Features Status Features Status MemoryFootprint < 500 MB Public Availability Developers Preview 1- Dec ’16 Developers Preview 2 - Feb ’17 Android SDK, Runtime, APIs Developers Preview 1 TensorFlow (ML library) Supported Device Usage Metrics Future Release Security Future Release OTA Updates Future Release Weave Future Release
  • 16.
    What is AndroidThings…
  • 17.
    Turnkey Hardware Solutions Deviceproduction for all Certified Integrated Hardware Google BSPs SoMs integrate the SoC, RAM, Flash Storage, WiFi, Bluetooth and other components onto a single board •The Board Support Package (BSP) is managed by Google. •SoM vendors may provide the BSPs. •OEMs provide HAL for sensors and actuators as APKs. Comes with FCC certifications Trusted platform to develop on with standard updates and fixes from Google. You can optimize your board design by flattening existing modules onto a PCB to save costs and space.
  • 18.
  • 19.
    Weave Open Communication Platform Devices can connect and interact with one another, the internet, and your phone  Ensures that access to your device and user data is secure and private.  Transports: 802.15.4 (zigbee, threads), BLE, WiFi, Ethernet, Others possible
  • 20.
  • 21.
    Security… Security Requirements fromGoogle* are largely the same as Android: SE-Linux Enforcement Android Verified Boot, Cryptographic Chain of trust Google Android Trusty HW Keymaster 2.0 No Gatekeeper
  • 22.
  • 23.
  • 24.
    Android Things Architecture Java APIframework Google Services API Level 7.0 ( Nougat ) Graphics optional Things Support Library OTAs received directly from Google
  • 25.
    Behavior Changes Standard systemapps and content providers absent Missing core packages (ContactsContract, MediaStore, Settings etc.) Subset of Google Play Services available No runtime permissions (Install time) No notifications, no system-wide status bar
  • 26.
    Behavior Changes… Displays areoptional Supports graphical user toolkit Does not include the system status bar or navigation buttons. Even without display, activities are still a primary component of your app
  • 27.
    Behavior Changes… Home activitysupport  Home launcher replaced by IOT_LAUNCHER Android Things expects one application to expose a "home activity“ in manifest file System launches application on boot
  • 28.
    Things support Library PeripheralIO APIs (PIO) • Enables Apps to talk to sensors and actuators • Supports GPIO, I2C, UART, PWM, SPI User driver API • Extend existing Android framework services • Allow apps to inject hardware events into framework that other apps can use.
  • 29.
  • 30.
  • 31.
    Summary Android Things isGoogle‟s IoT OS Certified (but limited) Hardware SoM support (current) Developers use existing Android dev tools Addresses most of the IoT challenges Extended APIs for IoT (Things API)
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
    Contact Details Mubeen Jukaku Email:mubeenj@emertxe.com URL: http://www.emertxe.com https://www.facebook.com/Emertxe https://twitter.com/EmertxeTweet https://www.slideshare.net/EmertxeSlides