The following is the first few sections of a chapter from The Busy Coder's Guide to Android Development, plus headings for the remaining major sections, to give you an idea about the content of the chapter.


Android Things Basics

In December 2016, Google announced Android Things, a successor to the Brillo project, as Google’s entry into the Internet of Things (IoT) market. Android Things allows you to write Android apps, akin to the ones that you write for phones and tablets, that can run on “headless” (no UI) devices like the Raspberry Pi 3.

This chapter will explore what Android Things is, how it differs from ordinary Android app development, and what you can do with it.

Conversely, this chapter will not cover details of connecting an Android Thing to any particular hardware (e.g., an external switch, an external LED, an external camera). The details for doing this will depend tremendously on the specific hardware, and so that aspect of Android Things is out of scope for this book. Instead, this book focuses on the classic Android side of Android Things, plus aspects that may be in common across Things scenarios (e.g., implementing secure remote control APIs, so the user can monitor and control a Thing via a mobile app or Web browser).

NOTE: This chapter is based off of Developer Preview 6.1 of Android Things. As a result, some of what is in here may change significantly with future previews and the first production-grade edition of Android Things. This chapter will be updated as needed over time to reflect those changes.

Prerequisites

Understanding this chapter requires that you have read the core chapters of this book.

Um, What’s a Thing?

The Internet of Things, generally speaking, represents embedded electronics that interact with the Internet that are not, in themselves, a general-purpose computing device.

That statement probably did not help much.

What’s Not a Thing?

An Android phone is not considered to be an IoT device, as Android phones are designed to run arbitrary apps. The same goes for tablets and Android Wear devices. A desktop or notebook computer, equivalents of Android devices for other platforms (e.g., iOS), and kin are also general-purpose computing devices and not considered to be part of IoT.

Typical Things

Other items that connect to home/office networks, and perhaps the broader Internet, are more likely to be considered IoT devices. These include:

Home entertainment devices — “smart TVs”, Internet-connected DVRs, and the like — sit somewhat in a middle ground. Roughly speaking, if the user can install apps on a device, that device would not be considered an IoT device. However, the lines here definitely get murky, and there are many things that you might want to do with Android Things that would be equally relevant for Android TV.

Android Things and IoT

IoT devices themselves run the gamut from tiny low-power items to, well, TVs and refrigerators. Even vehicles might be considered part of IoT.

Android itself started out running on fairly low-end hardware (e.g., 500MHz single-core CPUs, 192MB RAM, etc.). However, Android itself has grown over the years, and even those specifications exceed what some IoT platforms offer.

As such, expect to see Android Things on “higher-end” IoT devices, ones with sufficient hardware power to be able to run Android.

Headless, But No Horseman

The preview of this section was accidentally identified as an Android 'tasty treat' by the Cookie Monster.

Setting Up a Raspberry-Flavored Thing

The preview of this section took that left turn at Albuquerque.

An App For Your Thing

The preview of this section was abducted by space aliens.

Control Interfaces

The preview of this section was eaten by a grue.

What’s Different?

The preview of this section is out seeking fame and fortune as the Dread Pirate Roberts.

Environment Details

The preview of this section is in an invisible, microscopic font.

Considerations

The preview of this section is en route to Mars.