Part 1 of this teardown broached the subject of a new set of circular launcher icons Google is creating for use on the homescreen, possibly just for the Pixel Launcher. It likely speaks to future plans for the look and feel of Android, but there's no denying that new icons are cosmetic – they don't actually do anything. Part 2 of this teardown switches over to the functional side as evidence shows Launcher Shortcuts will return with Android 7.1.

The Launcher Shortcuts API was introduced with the second Android N Developer Preview and quickly gained attention as a spiritual copy of the Home Screen Quick Actions introduced with iOS 9, and inspired many theories that pressure-sensitive screens would become a standard in Android. A few weeks later, Google confirmed rumors that the Launcher Shortcuts API would be removed with the fourth developer preview and wouldn't make it into the final release of Android 7.0, but it would probably appear in a later version of Android. As it turns out, the wait wouldn't have to be very long.

Teardown

Disclaimer: Teardowns are based on evidence found inside of apks (Android's application package) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are totally and completely wrong. Even when predictions are correct, there is always a chance that plans could change or may be canceled entirely. Much like rumors, nothing is certain until it's officially announced and released.

The features discussed below are probably not live yet, or may only be live for a small percentage of users. Unless stated otherwise, don't expect to see these features if you install the apk.

This teardown is a bit different from most. Instead of examining a single apk, or even a closely related set, I opened almost every apk Google actively distributes. The contents of this post are expected to be a part of Android 7.1 and implemented in the upcoming Pixel Launcher, but no information actually comes from the leaked Pixel Launcher itself. Sometimes the bigger picture is more telling than what you can get from just a single app.

On a note of clarity. The round launcher icons discussed in part 1 are expected to be primarily featured in the Pixel Launcher and may have some relevance in Android 7.1. The discussion of Launcher Shortcuts in this post, part 2, is definitely a feature coming with Android 7.1 and the Pixel Launcher has little bearing on that. The Pixel Launcher will very likely support the API and will probably be the first to do so (unless Nova suddenly swoops in to steal the show), but that's where its relevance stops.

Launcher Shortcuts

The previous coverage of Launcher Shortcuts discussed the basic function and how it was split into so-called Dynamic and Pinned shortcuts – basically, shortcuts were dynamically created by an app, and then users could permanently pin them to the homescreen.

The API and concepts were simple enough, but the original implementation suffered one notable weakness: since registration of shortcuts happened in code, it required apps to run at least once to begin creating them. That might not seem like a breaking issue since many of us start an app shortly after it's installed from the Play Store, but it's a different story with a freshly restored phone. In that scenario, very few shortcuts would exist until many of the apps are manually started, which could take days or weeks. The same issue could also appear in apps that originally lacked launcher shortcuts and added them in an update, but there were usually ways to work around that.

The new implementation of Launcher Shortcuts includes a solution to the shortcomings of the old version. Developers will be able to create an xml file with a set of predefined shortcuts. When an apk is installed, the OS will look for a simple meta tag in the AndroidManifest with the name android.app.shortcuts and a resource filled in with a pointer to the xml file. This is the tag:

AndroidManifest.xml (from Google Play Music):

<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>

The definition xml file in this case is named shortcuts. Below is a snippet of the file, including the definition of a shortcut.

/xml/shortcuts.xml (from Google Play Music):

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut android:shortcutId="music-recents"
android:icon="@drawable/ic_shortcut_recents"
android:enabled="true"
android:shortcutShortLabel="@string/launcher_shortcut_short_recent_activity"
android:shortcutLongLabel="@string/launcher_shortcut_long_recent_activity"
android:shortcutDisabledMessage="@string/launcher_shortcut_long_recent_activity">
<intent android:targetPackage="com.google.android.music"
android:action="com.google.android.music.shortcuts.RECENT_ACTIVITY"
android:targetClass="com.google.android.music.ui.navigation.ShortcutTrampolineActivity" />
</shortcut>

...
</shortcuts>

There may be more parameters supported by the API than what is shown here, and not all of these are required. Based on the snippet, developers will be able to define an icon, short and long labels (which may be chosen based on how a launcher displays them), an alternate name if the shortcut is currently disabled, a shortcut ID to interact with through code, and a flag to declare if the shortcut is enabled or not. Shortcuts must (should?) also include an intent to tell the system what to do if a user activates it – in this case, it jumps to the Recents playlist.

Some quick final notes about implementations. It's not clear if pinning shortcuts will still be considered a supported feature going forward. In fact, there's very little in the evidence to suggest Dynamic Shortcuts are supported or work like they did before. However, it's highly unlikely Google would remove the ability to create shortcuts through code, it's simply too useful and very powerful. I expect most current apps are either not making full use of the API yet, or the code that does is still not distributed or it's well hidden.

Apps already supporting Launcher Shortcuts

Ten apps currently contain Launcher Shortcut definitions like this. The first was Google Calendar, the developers of which tried to hide the purpose of the meta tag and xml file by naming it gonzalez_metadata.xml and initially leaving it blank. (It was a solid effort, but I saw the change and watched for more with every update. I've been planning this teardown for a couple months.) Most of the apps only joined the list in the last couple of weeks.

It will probably come as little surprise that the apps implementing Launcher Shortcuts happen to also be on the list with round launcher icons... Well, mostly. The Google app has shortcuts and it doesn't include a roundIcon property in its manifest, but that's just a technicality since the app has had a round icon for years and probably doesn't need to define it separately. Of course, there are plenty of apps with round icons that don't yet include shortcuts. Also, even less surprising, all of these target API 25, which is probably a requirement.

I've gone through the full list of apps and put together their descriptive text for the default set of shortcuts. This list does not include any dynamically generated shortcuts that may be added though code by the apps later. Most of these shortcuts will either navigate to a specific location in the app or they will launch a specific action, like jumping straight to a list of your library in Play Books or creating a new event in Calendar.

shortcut_mockups

Mockups of the existing launcher shortcuts.

Shortcut list

Play Books

  • Shop
  • My library

Calendar

  • New event
  • New reminder

Contacts

  • Add contact

Drive

  • Upload
  • Scan
  • Search

Play Music (short / long message)

  • Feel lucky / I'm feeling lucky
  • My library
  • Recents / Recent activity

Gmail (empty)

Google

  • Type search
  • Voice search

Maps

  • Home
  • Work

Play Movies & TV

  • My Movies
  • My TV Shows
  • My Wishlist

Photos

  • Free up space
  • I am feeling lucky

Yes, the Gmail shortcuts file is currently empty, which could mean any number of things. The development team may have kept the content of that file away from any public builds, it may be there as a formality, or it's possible nothing has been implemented yet. Out of all the apps on this list, Gmail is by far the most likely app to make extensive use of dynamic shortcuts, so there may not be any reason to include predefined shortcuts at all.

How we'll access Launcher Shortcuts

So, this probably revitalizes the comparisons and questions about how Launcher Shortcuts will be surfaced to users. Will there be pressure sensitive screens? Will we have to use gestures like a long-press or swipe? Will launchers offer special modes to access shortcuts? The answer to every one of these questions is yes, or at least probably.

We've heard nothing about pressure sensitive screens in the upcoming Pixel and Pixel XL handsets. That doesn't mean they can't have specialized hardware, but at this point, the rumors probably would have exposed that detail. This means we should probably expect a gesture on these phones.

It's fairly likely Google will set forth some rules, or at least guidelines for partners regarding the best ways to implement Launcher Shortcuts, so we might see some differences, but probably nothing too extreme. One question worth asking is if support will be a requirement. If it's not and some OEMs don't join in right away, we might see a situation similar to the Lockscreen Widgets introduced in Jelly Bean. Most phones either hid the functionality or didn't bother to implement it at all, which left developers largely disinterested in supporting them.

Third-party launchers won't have any specific requirements, so it will be interesting to see if they can give users creative ways to access and use shortcuts. For example, it should be possible to read all of the shortcuts from every app and present them in custom arrangements that aren't just matched to a single app, perhaps as a list of favorites.

Wrap-up

It's very interesting to see legitimate adoption of a new feature ahead of its official release. Not only that, but we're seeing it in Gmail, Maps, Docs, the Google Play content apps, and more. This isn't just one or two teams, it's spread across most of the major apps on the platform. That's not exactly a first for Google, but it's certainly uncommon.

On launch day for a new Android version, we're used to seeing new features in one or two apps, maybe even a handful if it's simple enough. This time, there's an organized effort to ensure a significant piece of Google's own library has shortcuts (and round icons) right away. Imagine if Android Wear had a reception like this.

That's it for this teardown. I've got little doubt a new set of icons and the return of Launcher Shortcuts are barely even scratching the surface of what we'll get with Android 7.1 (API 25) and the new Pixel Launcher, but this is already turning into a great start.