android things : building embedded devices

36
Android Things: Building Embedded Devices An Introduction Mubeen Jukaku Emertxe 4-March „17 EFY Conference

Upload: emertxe-information-technologies-pvt-ltd

Post on 18-Mar-2018

674 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Android Things : Building Embedded Devices

Android Things:Building Embedded Devices – An Introduction

Mubeen Jukaku

Emertxe

4-March „17

EFY Conference

Page 2: Android Things : Building Embedded Devices

Agenda

Bit of History

What is Android Things

Architecture

Summary

Q & A

Page 3: Android Things : Building Embedded Devices

A bit of History

Embedded Linux

Android

Brillo

Page 4: Android Things : Building Embedded Devices

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

Page 5: Android Things : Building Embedded Devices

Embedded LinuxArchitecture

Page 6: Android Things : Building Embedded Devices

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

Page 7: Android Things : Building Embedded Devices

Android Stack

Page 8: Android Things : Building Embedded Devices

Embedded Android

Page 9: Android Things : Building Embedded Devices

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

Page 10: Android Things : Building Embedded Devices

Brillo Architecture

Page 11: Android Things : Building Embedded Devices

Android Things - Overview

Page 12: Android Things : Building Embedded Devices

Why Android Things?

IOT challenges

Complex technologies

Interoperability

Security

Scalability

Page 13: Android Things : Building Embedded Devices

What is Android Things

Page 14: Android Things : Building Embedded Devices

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

Page 15: Android Things : Building Embedded Devices

Features Status

Features Status

Memory Footprint < 500 MB

Public Availability Developers Preview 1- Dec ’16Developers 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

Page 16: Android Things : Building Embedded Devices

What is Android Things…

Page 17: Android Things : Building Embedded Devices

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.

Page 18: Android Things : Building Embedded Devices

Supported Platforms

Page 19: Android Things : Building Embedded Devices

WeaveOpen 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

Page 20: Android Things : Building Embedded Devices

Trust & Security

Long Term Support

Page 21: Android Things : Building Embedded Devices

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

Page 22: Android Things : Building Embedded Devices

Android Things Architecture

Page 23: Android Things : Building Embedded Devices

Android ThingsArchitecture

Page 24: Android Things : Building Embedded Devices

Android ThingsArchitecture

Java API framework

Google Services

API Level 7.0 ( Nougat )

Graphics optional

Things Support Library

OTAs received directly from Google

Page 25: Android Things : Building Embedded Devices

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

Page 26: Android Things : Building Embedded Devices

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

Page 27: Android Things : Building Embedded Devices

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

Page 28: Android Things : Building Embedded Devices

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.

Page 29: Android Things : Building Embedded Devices

Things Support Library…

Page 30: Android Things : Building Embedded Devices

User Space Drivers

Page 31: Android Things : Building Embedded Devices

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)

Page 32: Android Things : Building Embedded Devices

Q & A

Page 33: Android Things : Building Embedded Devices

THANK YOU

Page 34: Android Things : Building Embedded Devices

Appendix

Page 35: Android Things : Building Embedded Devices

References

https://developer.android.com/things

https://developers.google.com/weave/

Page 36: Android Things : Building Embedded Devices

Contact Details

Mubeen Jukaku

Email: [email protected]

URL: http://www.emertxe.com

https://www.facebook.com/Emertxe https://twitter.com/EmertxeTweet https://www.slideshare.net/EmertxeSlides