Android Things is the latest attempt from Google to connect the dots between the cloud and devices by introducing an OS that is exclusively built for IoT devices. Initially announced as project Brillo, Android Things helps developers to build devices faster and enable them integrate with cloud services. This presentation traces the architectural aspects of Android Things by connecting it back with Embedded Linux, Embedded Android and Brillo.
2. Agenda
Bit of History
What is Android Things
Architecture
Summary
Q & A
3. A bit of History
Embedded Linux
Android
Brillo
4. 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
6. 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
9. 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
14. 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
15. 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
17. 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.
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
21. 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
24. Android Things
Architecture
Java API framework
Google Services
API Level 7.0 ( Nougat )
Graphics optional
Things Support Library
OTAs received directly from Google
25. 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
26. 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
27. 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
28. 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.
31. 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)