Embedded Android : System Development - Part IV (Android System Services)
Android Things : Building Embedded Devices
-
Upload
emertxe-information-technologies-pvt-ltd -
Category
Technology
-
view
672 -
download
2
Transcript of Android Things : Building Embedded Devices
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: [email protected]
URL: http://www.emertxe.com
https://www.facebook.com/Emertxe https://twitter.com/EmertxeTweet https://www.slideshare.net/EmertxeSlides