Illustration by Virginia Poltrack

Now in Android #43

Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.

NiA43 in Video and Podcast Form

This Now in Android is also offered in video and podcast form. It’s the same content, but with less reading required. The article version (keep reading!) is still the place to come for links to all of the content that’s covered.

Podcast

Click on the link below, or just subscribe to the podcast in your favorite client app.

Google for Games 2021 Developer Summit ⛰

The Google for Games 2021 Developer Summit was last week, and we used it as an opportunity to announce a bunch of new things we’re doing to make game development better on Android. For game development, this was the equivalent of our Google I/O.

Google for Games Developer Summit

Android Game Development Kit 🛠️

To begin with, we introduced the Android Game Development Kit or AGDK, a collection of tools and libraries to make game development easier, faster, and better.

Introducing the Android Game Development Kit

Game development libraries

The AGDK includes C and C++ libraries that address Android game development pain points. Using GameActivity along with our text input and game controller libraries, you can write your game loop without having to touch JNI code. When you combine this with our existing Oboe audio library and frame pacing library, we’ve built high-performance ways to get at the key services your game needs.

C/C++ libraries for Android games

Game development extension

Also part of the AGDK is the Android Game Development Extension for Visual Studio, which is now available to all developers. It allows you to add Android as a target platform in your existing Visual C++ game projects. You can develop C /C++ multi-platform games, deploying to and debugging on an Android device or emulator, all within a single IDE with a single set of project files. The extension supports the latest versions of the Android SDK and NDK, and works with our most popular tools, such as Android Studio profilers, logcat, the SDK manager, and the virtual device manager.

Android Game Development Extension

Optimizing your game

Finally, the AGDK includes tools and libraries to help you further optimize your game. On the library front, the Android Performance Tuner provides user telemetry — now with the ability to track loading times. The Android GPU Inspector beta now supports frame profiling, allowing you to capture a single frame of your app or game, inspecting the entire state of the Vulkan API along with profiling data from the GPU. It also supports profiling in OpenGL by running your OpenGL workload on top of the Vulkan API using ANGLE.

Android GPU Inspector frame profiling

Reach and devices 📱

We added a new tool within the Google Play console that takes metrics such as overall install base, crash rates, and ANR rates, and breaks them down by useful attributes such as Android platform version, RAM, SoC, OpenGL ES version, Vulkan version, and screen metrics. It also includes peer data and country level filtering, and you can even export this data for use in your own analysis tools. In addition to reach and devices, we also added new tools for ratings and reviews within the console.

Reach and devices

Android 12 for Games 🎮

Android 12 includes play as you download to get your users into gameplay faster. What this means is that some game assets aren’t downloaded at install time, but are instead downloaded in the background after the initial install. It all happens without you having to make changes to your game if you’re using App Bundle.

Play as you download

Android 12 also introduces Game Mode APIs to allow game players to pick a performance profile such as better battery life or performance mode. The API allows Android to communicate the player’s preferences so you can adjust your game accordingly, but the system can also intervene on their behalf with Game Mode interventions that automatically adjust the game. You can opt out of these interventions with a manifest setting, and we have provided a form so you can help us tune these interventions for your game.

And more…

The summit includes many more sessions, including learnings from top mobile game developers, optimizing games for Chrome OS, and introducing the Play Integrity API. Here’s the complete playlist from the event.

Android 12 beta 3 🤖

We released the 3rd beta of Android 12, which includes the final APIs for API 31 along with a few new features. For example, we’ve introduced a new ScrollCapture API to help support the much-requested scrolling screenshots feature.

We’ve also added new privacy indicator APIs to WindowInsets that let you get the maximum bounds of the indicators and their relative placement on the screen, and a new permission that allows apps paired with Companion Device Manager to start foreground services.

The AppSearch Jetpack library allows you to use AppSearch within your app in LocalStorage mode on Android 4.0+, and will support Android 12+’s central index in PlatformStorage mode that allows the system to display your app’s data on System UI surfaces and within other apps.

We also released a beta of Android 12 for TV, which includes refresh rate switching settings, better display mode reporting, and updates to Android’s tunnel mode that reduces media processing overhead in the Android Framework. Android TV now supports background blurring with RenderEffect for in-app blurs and WindowManager for cross-window blurs, as well as official support for rendering the UI at 4k.

Introducing MAD Skills: Performance ⏲️

The MAD Skills series continues with more technical content about modern Android development.

We’re introducing Performance this week, which covers how to use both system tracing and sampling profiling to debug performance issues in apps.

In the first episode, Carmen focuses on system trace profiling within Android Studio. System trace allows you to get a detailed view of what your app is doing, and see it in the context of what’s going on in the rest of the system. Carmen walks through the user interface, explains how to collect traces within Android Studio and on device, and shows how to set trace information within your app.

But Wait, There’s More MAD content!

For ongoing content, be sure to check the MAD Skills playlist on YouTube, the articles on Medium, or this handy landing page that points to all of it.

AndroidX Releases

Jetpack Compose reached release candidate 2 status, which means we’re really close to a release. Since the new AGDK libraries are part of Android Jetpack, you’ll also see them there.

Articles 📰

Connect your Android users with a tap: Fast Pair

If you are a device manufacturer or a developer working on an app that accompanies a particular device covers how you can use the Fast Pair Service to reduce the amount of work that you and your end users have to do to pair your devices — and, unless you want to handle pairing within your companion app, this is all done without Android app coding.

Updating your widget for Android 12

began a mini blog series on updating your app’s launcher Widget for Android 12. This first post covers simple changes to make your widget look great on devices running Android 12 while also offering a consistent experience on older versions of Android.

Documentation updates 🆕

We’ve completely revamped, redesigned, updated, and extended our game developer pages, organizing them around information for developers that are using a pre-built, turnkey game engine as well as for developers that are using a custom engine or are customizing an existing engine.

Also, we’ve launched a new home for building responsive layouts that adapt to fit phones, tablets, foldables, and Chrome OS devices. This page brings together guides on our APIs, Material Design resources, and codelabs to help you get started.

ADB Podcast Episodes 🎧

There has been one new episode of Android Developers Backstage posted since the last Now in Android.

ADB released episode #170, part of our continuing series on Jetpack Compose. In this episode and are joined by Doris Liu and Nader Jawad to discuss Compose’s Animation and Graphics systems. They explain how they adapted traditionally imperative systems to a declarative world and give an overview of both the high level composables the library offers as well as lower level building blocks you can drop down to for more control.

Now then… 👋

That’s it for this time, with Android 12 Beta 3, the new MAD Performance series, Android 12 Widgets, Fast Pair, Compose Animation, a new home for responsive layouts, and the Android Game Development Kit along with lots of other new stuff for game developers. Come back here soon for the next update from the Android developer universe.

--

--

Daniel Galpin
Android Developers

Developer Advocate at Google, writer, editor, theatrical performer, and social dancer.