Android Developers Blog

With billions of Android devices around the world, Android has surpassed our wildest expectations. Today at Google I/O, we showcased a number of ways we’re pushing Android forward, with the O Release, new tools for developers to help create more performant apps, and an early preview of a project we call Android Go -- a new experience that we’re building for entry-level devices.

Fluid experiences in Android O
It's pretty incredible what you can do on mobile devices today, and how easy it is to rely on them as computers in our pockets. In the O release we've focused on creating fluid experiences that make Android even more powerful and easy to use, and today we highlighted some of those:

Picture-in-picture: lets users manage two tasks simultaneously, whether it’s video calling your friend while checking your calendar, or reading a new recipe while watching a video on a specific cooking technique. We’ve designed PIP to provide seamless multitasking on any size screen, and it’s easy for apps to support it.

Notification dots extend the reach of notifications, a new way for developers to surface activity in their app, driving engagement. Built on our unique and highly regarded notification system, dots work with zero effort for most apps - we even extract the color of the dot from your icon.

Autofill with Google simplifies setting up a new device and synchronizing passwords by bringing Chrome's Autofill feature to Android. Once a user opts-in, Autofill will work out-of-the-box for most apps. Developers can optimize their apps for Autofill by providing hints about the type of data expected or add support in custom views.

A new homescreen for Android TV makes it easy for users to find, preview, and watch content provided by apps. Apps can publish one or more channels, and users can control the channels that appear on the homescreen. You’ll be able to get started with creating channels using the new TvProvider support library APIs.

Smart Text Selection: In Android O, we’re applying on-device machine learning to copy/paste, to let Android recognize entities like addresses, URLs, telephone numbers, and email addresses. This makes the copy/paste experience better by selecting the entire entity and surfacing the right apps to carry out an action based on the type of entity.

TensorFlow Lite: As Android continues to take advantage of machine learning to improve the user experience, we want our developer partners to be able to do the same. Today we shared an early look at TensorFlow Lite, an upcoming project based on TensorFlow, Google’s open source machine learning library. TensorFlow Lite is specifically designed to be fast and lightweight for embedded use cases. Since many on-device scenarios require real-time performance, we’re also working on a new Neural Network API that TensorFlow can take advantage of to accelerate computation. We plan to make both of these available to developers in a maintenance update to O later this year, so stay tuned!

(L) Android O: Picture-in-picture, (R) Android O: Notification dots

Working on the Vitals in Android
We think Android’s foundations are critical, so we’re investing in Android Vitals, a project focused on optimizing battery life, startup time, graphic rendering time, and stability. Today we showcased some of the work we’ve done so far, and introduced new tools to help developers understand power, performance, and reliability issues in their apps:

System optimizations: in Android O, we’ve done a lot of work across the system to make apps run faster and smoother. For example we made extensive changes in our runtime - including new optimizations like concurrent compacting garbage collection, code locality, and more.

New Android Vitals Dashboards in the Play Console: today we launched six Play Console dashboards to help you pinpoint common issues in your apps - excessive crash rate, ANR rate, frozen frames, slow rendering, excessive wakeups, and stuck wake locks, including how many users are affected, with guidance on the best way to address the issues. You can visit the Play Console today to see your app's data, then learn how to address any issues.

Android Go
Part of Android’s mission is to bring computing to everyone. We’re excited about seeing more users come online for the first time as the price of entry level smart phones drop, and we want to help manufacturers continue to offer lower-cost devices that provide a great experience for these users. Today we gave a sneak peek of a new experience that we’re building specifically for Android devices that have 1GB or less of memory -- Internally we call it “Android Go,” and it’s designed around three things

OS: We’re optimizing Android O to run smoothly and efficiently on entry-level devices

Apps: We’re also designing Google apps to use less memory, storage space, and mobile data, including apps such as YouTube Go, Chrome, and Gboard.

Play: On entry-level devices, Play store will promote a better user experience by highlighting apps that are specifically designed for these devices -- such as apps that use less memory, storage space, and mobile data -- while still giving users access to the entire app catalog.

The Android Go experience will ship in 2018 for all Android devices that have 1GB or less of memory. We recommend getting your apps ready for these devices soon -- take a look at the Building for Billions to learn about the importance of offering a useful offline state, reducing APK size, and minimizing battery and memory use.

O Developer Preview 2, Now in Public Beta
Today’s release of O Developer Preview 2 is our first beta-quality candidate, available to test on your primary phone or tablet. We’re inviting those who want to try the beta release of Android O to enroll now at android.com/beta -- it’s an incredibly convenient way to preview Android O on your Nexus 5X, 6P, and Player, as well as Pixel, Pixel XL, or Pixel C device.

With more users starting to get Android O on their devices through the Android Beta program, now is the time to test your apps for compatibility, resolve any issues, and publish an update as soon as possible. See the migration guide for steps and a recommended timeline.

Later today you’ll be able to download the updated tools for developing on Android O, including the latest canaries of Android Studio, SDK, and tools, Android O system images, and emulators. Along with those, you’ll be able to download support library 26.0.0 beta and other libraries from our new Maven repo. The change to Maven from SDK Manager means a slight change to your build configuration, but gives you much more flexibility in how you integrate library updates with your CI systems.

Today we are releasing Developer Preview 2 (DP2) for Android Things, bringing
new features and bug fixes to the platform. We are committed to providing
regular updates to developers, and aim to have new preview releases
approximately every 6-8 weeks. Android Things is a comprehensive solution to
building Internet of Things (IoT) products with the power of Android. Now any
Android developer can quickly build a smart device using Android APIs and Google
services, while staying highly secure with updates direct from Google. It
includes familiar tools such as Android Studio, the Android Software Development
Kit (SDK), Google Play Services, and Google Cloud Platform. Android Things
supports a System-on-Module (SoM) architecture, where a core computing module
can be initially used with development boards and then easily scaled to large
production runs with custom designs, while continuing to use the same Board
Support Package (BSP) from Google.

New features and bug fixes

Thanks to great developer feedback from our Developer Preview 1, we have now
added support for USB Audio to the Hardware Abstraction Layer (HAL) for Intel
Edison and Raspberry Pi 3. NXP Pico already contains direct support for audio on
device. We have also resolved many bugs related to Peripheral I/O (PIO). Other
feature requests such as Bluetooth support are known issues, and the team is
actively working to fix these. We have added support for the Intel Joule platform, which offers the most
computing power in our lineup to date.

Native I/O and user drivers

There are many developers who use native C or C++ code to develop IoT software,
and Android Things supports the standard Android NDK. We have now released a
library to provide native access to the Peripheral
API (PIO), so developers can easily use their existing native code. The documentation
explains the new API, and the sample provides a
demonstration of how to use it.

An important new feature that was made available with Android Things DP1 was
support for user
drivers. Developers can create a user driver in their APK, and then bind it
to the framework. For example, your driver code could read a GPIO pin and
trigger a regular Android KeyEvent, or read in an external GPS via a serial port
and feed this into the Android location APIs. This allows any application to
inject hardware events into the framework, without customizing the Linux kernel
or HAL. We maintain a repository
of user drivers for a variety of common hardware interfaces such as sensors,
buttons, and displays. Developers are also able to create their own drivers and
share them with the community.

TensorFlow for Android Things

One of the most interesting features of Android Things is the ability to easily
deploy machine learning and computer vision. We have created a highly requested
sample
that shows how to use TensorFlow on
Android Things devices. This sample demonstrates accessing the camera,
performing object recognition and image classification, and speaking out the
results using text-to-speech (TTS). An early-access TensorFlow inference library
prebuilt for ARM and x86 is provided for you to easily add TensorFlow to any
Android app with just a single line in your build.gradle file.

Thank you to all the developers who submitted feedback for the previous
developer preview. Please continue to send us your feedback by filing bug
reports and feature
requests, and ask any questions on stackoverflow.
To download images for Developer Preview 2, visit the Android Things download
page, and find the changes in the release
notes. You can also join Google's IoT
Developers Community on Google+, a great resource to keep up to date and
discuss ideas, with over 2900 new members.