android things : building embedded devices

Post on 18-Mar-2018

674 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 LinuxArchitecture

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 ’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

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

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

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 ThingsArchitecture

Android ThingsArchitecture

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

top related