AndroidThings & IoT Recap
Tags: androidthings, internetofthings, development, google
Published: 2017-09-27 16:05:19

---
title: "AndroidThings & IoT Recap"
published: true
tags: android-things,internet-of-things,development,google
canonical_url: https://medium.com/gdgnyc/androidthings-iot-recap-8759c2b7641f
---

_The Android Things team_ [_held a webinar today_](https://android-developers.googleblog.com/2017/06/android-things-hackster-community.html?hl=be) _to spotlight two key resources for IoT developers: the_ [_Android Things platform_](https://developer.android.com/things/index.html) _& the_ [_Hackster.io community_](https://www.hackster.io/google)_._

{% tweet 883341813867847680 %}

_This is a quick recap of what we learnt at from that call. The talk was tapedâ€Š–â€Šfollow_ [_GDG New York City_](https://medium.com/u/149ee411aa42) _to get notified if the video is publicly&nbsp;shared._

### What is&nbsp;IoT?

There is a lot of hype, but also a lot of opportunity, in the domain being referred to as the **Internet of Things&nbsp;(IoT)**.

At its core, the IoT vision involves connecting physical objects to the Internet, enabling an ecosystem of digital services that can be powered by the data generated from these objects (_context sensing_) or be used to control them _(actuation)_ remotely via mobile or web apps. Gartner predicts these “intelligent things” will be a key strategic technology in&nbsp;2017.

[Gartner's Top 10 Strategic Technology Trends for 2017 - Smarter With Gartner](http://www.gartner.com/smarterwithgartner/gartners-top-10-technology-trends-2017/)

While IoT is often used to talk about products in the consumer industry (smart home, wearables, autonomous vehicles), the _Industrial IoT (IIoT)_ segment is gaining momentum in the enterprise with a focus on using machine learning, connectivity and big data to tackle challenges in health, safety and efficiency in industries like agriculture and&nbsp;mining.

[Roundup Of Internet Of Things Forecasts And Market Estimates, 2016](https://www.forbes.com/sites/louiscolumbus/2016/11/27/roundup-of-internet-of-things-forecasts-and-market-estimates-2016/#4ce97093292d)

Analysts estimates differ but the general consensus is that the number of IoT-enabled “things” will reach ~30B devices by 2020 with a multi-billion dollar consumer market and a multi-trillion dollar enterprise market in&nbsp;IIoT.

**_So what are the opportunities and challenges for the IoT app developer?_**

The opportunities lie in areas like service automation, fitness, collaborative computing, real-time tracking/alerts, remote control and quantified self, to name just a few. New areas for exploration include wearables, smart toys, autonomous vehicles and education.

The challenges lie in tackling security and data privacy concerns, managing complexity in deploying apps to diverse hardware and software platforms, dealing with regulatory approval, and integrating frictionlessly into existing application ecosystems for growth and monetization.

**_This is where the AndroidThings vision comes&nbsp;in._**

### What is AndroidThings?

[Android Things | Android Things](https://developer.android.com/things/index.html)

AndroidThings is Google’s initiative to support development and innovation for the Internet of Things ecosystem.

> All figures below were screenshots from the webinar and have been used for illustration only. All errors in explanations are&nbsp;mine.

![](https://cdn-images-1.medium.com/max/609/1*gNl5u0H2i6dVQbWBrZ4Gcg.png)<figcaption>Core value proposition</figcaption>

At its core it offers three value propositionsâ€Š–â€Šbringing the reach of the Android ecosystem to IoT, delegating the complexity of hardware management to Google (and allowing developers to focus on building custom hardware extensions and rich software experiences), and leveraging the trusted security solutions provided out-of-the-box by&nbsp;Google.

1. **The Power of Android.** This takes two forms. First, application developers can embrace familiar languages (Java, Kotlin) and tools (Android Studio) for faster development. Second, they can leverage frictionless integration with other Google services (Play, Firebase, Cloud) to get comprehensive solutions with built-in support for monetization, serverless computing and big data analytics.

![](https://cdn-images-1.medium.com/max/1002/1*H733xVsfmhnioG1tEIUSWQ.png)

**2. Managed By Google.** Google manages the complexity of low-level hardware, Linux kernel and Android core components of the stack. Updates (e.g., for security or feature upgrades) get pushed out to devices automaticallyâ€Š–â€Šyou, as developer, need to manage only updates to your apps and any user-level drivers you have added to the platform.

Not only does this allow developers to quickly scale their products to new devices, but it also reduces the time/cost otherwise spent in oversight efforts instead of product improvements. The new addition of an [AndroidThings Console](https://partner.android.com/things/console/u/0/) allows developers to review deployment versions and potentially get usage insights and administrative support in&nbsp;future.

_Note: Google advocates mentioned that they are actively continuing to add drivers and libraries to support new/popular boards, sensors & accessoriesâ€Š–â€Šhave one you want to see supported?_ [_Post an “ask” to their IoT Community_](https://plus.google.com/communities/107507328426910012281)

![](https://cdn-images-1.medium.com/max/657/1*3gaUT0BSjDCJ8HDe2xr87Q.png)

3. **Automatic And Secure.** Standard security practices like signed images and verified boot are provided by default. Not only are software updates and security patches proactively pushed out, but their **A/B Rollback Protection** feature ensures this happens with minimum downtime.

Patches are downloaded and installed in the background, and the devices rebooted when optimal, to have them take effect. If any issues occur during this update, the process is setup to automatically roll back to the last stable image, ensuring that your deployed hardware or software solution is never left in an unavailable state.

### Turnkey Hardware&nbsp;Support

As someone who isn’t familiar with low-level embedded systems architecture or software, this aspect of AndroidThings was appealing. Effectively anyone can get started by using an [AndroidThings certified development board](https://developer.android.com/things/hardware/index.html) that uses a [System-on-Modules (SOM) architecture](https://en.wikipedia.org/wiki/System_on_module) to abstract complexity and promote rapid composability at the hardware level. Learn more about[the supported hardware platforms here](https://developer.android.com/things/hardware/developer-kits.html).

**SoM Architecture:** As I understand it, SoM is analogous to how software frameworks abstract complexity of underlying operating systems; as a developer you simply stack the relevant SoM on the baseboard to get a desired hardware platform for rapid prototyping & test. When you finally want to build/release production hardware, you can optimize the design by reusing those modules in a single PCBâ€Š–â€Šensuring that the end result is consistent with no changes needed to your higher-level software&nbsp;layers.

![](https://cdn-images-1.medium.com/max/678/1*jkOgIAUHJmt0raK9Pi0CYQ.png)<figcaption><em>Image Credit: </em>Screenshot from “IoT Bootstrapping with Android Things”Â Webinar</figcaption>

**Google Managed BSP:** Google maintains the BSP ([Board Support Package](https://en.wikipedia.org/wiki/Board_support_package)) ensuring the device is updated with the latest software and security patches with minimal developer effort required. This makes it easier for developers who don’t have embedded systems experience, to deploy new IoT solutions with confidence and focus their attention on software at the apps&nbsp;level.

**Simplified Certification and Testing**. All modules Google support are pre-certified for various regulatory or industry testing standards. Once you have prototyped an IoT solution, taking it to market requires you to overcome the regulatory hurdles associated with hardware deployment. Because Google-supported modules are pre-certified, your time/cost for product-readiness is now significantly reduced.

### What does the platform look&nbsp;like?

It helps to first understand what the **standard** Android Development platform looks like. The default architecture builds on a Linux operating system and associated native libraries (for efficiency and abstraction), over which are stacked the Android Application Framework (high-level, reusable services/components) and core Android Applications (high-level, popular apps) both of which have primarily served a consumer market focused on interactive user experiences.

![](https://cdn-images-1.medium.com/max/674/1*eiukYp_RGiIRFDdxeuvI6Q.png)<figcaption><em>Standard Android Architecture (Image Credit: </em>“IoT Bootstrapping with Android Things”Â Webinar)</figcaption>

The AndroidThings architecture _“scrubs” [_[_like a “Brillo” pad_](http://www.androidpolice.com/2016/12/13/googles-brillo-internet-things-platform-now-android-things-developer-preview-available-download/)_]_ the standard architecture down to make it more suitable for the resource-constrained IoT platforms. It does this in two ways. First, it eliminates the default Android Applications (which targeted interactive users) and parts of the Framework (that are not relevant to “headless” or display-less devices). Second, it also provides IoT-ready versions of other components that remain compatible with the usage/behaviors expected by Android developers but are optimized for more resource-constrained hardware.

![](https://cdn-images-1.medium.com/max/675/1*7Wygjt0XWjo_90aay5krqw.png)

It also adds a new _Peripheral Driver Library_ to the platform, targeted primarily at supporting better interfacing of applications with the low-level interfaces afforded by sensors and actuators. The library connects popular peripherals to the Android applications layer through _User Driver APIs_â€Š–â€Šwith pre-written drivers available for most common peripherals. The Peripheral Driver Library is open-sourced and has various samples to get your startedâ€Š–â€Š[read more about it&nbsp;here](https://developer.android.com/things/sdk/driver-library.html).

![](https://cdn-images-1.medium.com/max/638/1*80bMOsQkcYDdCa76cmphEg.png)

### Resources & Next&nbsp;Steps:

Where can you go to learn more? We recommend you do the following first:

- **_Follow_** Developer Advocates: [Dave Smith](https://medium.com/u/c91ac3b63127) &[Wayne Piekarski](https://medium.com/u/b0d0b1a4ba7)
- **_Join_** [Google Developer Group NYCâ€Š](https://www.meetup.com/gdgnyc/)–â€Š[AndroidThings](https://www.meetup.com/gdgnyc/events/234963772/) meetup in&nbsp;Aug
- **_Explore_** [Google Developers Codelabsâ€Š–â€ŠIoT & AndroidThings](https://codelabs.developers.google.com/?cat=IoT)
- **_Watch_** [Android Things @Google IO 2017â€Š–â€ŠYouTube&nbsp;Playlist](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIUtQeTRlRoDCdncUpWnR4M)

We’ll update this section with more resources (and a link to the webinar recording when we have it) but here are resources worth bookmarking for repeat visits & assistance (with clickable links for image&nbsp;below)

- [Android Things&nbsp;SDK](https://developer.android.com/things/index.html)
- [Hackster.io Community](https://www.hackster.io/google)
- [Google IoT Developers G+ Community](https://plus.google.com/communities/107507328426910012281)

![](https://cdn-images-1.medium.com/max/717/1*Hh5gsBnTeliWUjjX2dYJzQ.png)

* * *