Recently, we saw the AOSP release of Android 12, though the release for Google Pixels will come a bit later. Android 12 has a ton of changes, and not all of them are user-facing. Sure, we get Material You, Privacy Dashboard, and a few other great features, but for OEMs, they have a lot more to worry about, too. OEMs also have to pay attention to any updates made to the Android Compatibility Definition Document (CDD). The CDD for Android 12 has been released, and it outlines a few things that OEMs in particular can focus on.

The Android Compatibility Definition Document is an important part of the Android ecosystem. In order to maintain consistency in APIs and platform behavior between Android devices, Google bundles the distribution of Google Mobile Services (which includes applications and frameworks like the Google Play Store and Google Play Services) with license agreements mandating that devices adhere to the rules under Google’s "Android Compatibility Program" (among other requirements). The Android Compatibility Program consists of multiple automated test suites and a set of rules enumerated in the CDD (CDD PDF for Android 12 available here).

If a device fails to meet the requirements outlined in the CDD, then it may fail Google's Compatibility Test Suite - resulting in a loss of access to Google's suite of applications. The CDD in the past has enforced changes that are good for consumers -- for example, the CDD for Android 11 outlines how an OEM must implement the home device controls on the power menu if they do implement it. This means that should an Android smartphone have device controls in the power menu, then it will be the same as on any other Android smartphone that implements it too.

Performance classes - Android 12 and Android 11

In the case of Android 12, there are a couple of changes that the CDD outlines, but most are pretty small or really only have an impact on OEMs. One of the biggest changes we've seen was the introduction of a "performance class" that can be defined in the build properties of an Android smartphone. Google already announced this alongside the release of Android 12 Beta 1, and it's an easy way for developers to check how fast an Android smartphone actually is. On the Android Developers page, Google says that each version of Android has its own corresponding performance class, which means there’s a performance class for Android 12 and there’ll be one for Android 13, 14, and so on.

As shown in the graphic above, performance classes are forward-compatible. This means that a device can upgrade to a new Android version without changing its performance class, but it also means that devices can change their class if they meet the requirements of that new OS version. Google said it would define a performance class for Android 11 too, which it did. The CDD actually refers to performance classes 11 and 12 as performance classes R and S respectively.

We did some digging at the time and found some of what would define the performance class for Android 12. Some key requirements for performance class 12 are below.

Performance class 12 key requirements

  • At least 6GB of RAM
  • At least 400dpi and 1080p resolution
  • At least 120MB/s sequential write, 250MB/s sequential read, 10MB/s random write, and 40MB/s random read speeds
  • Must have (at minimum) a 12MP rear camera capable of 4K 30 FPS recording
  • Must have (at minimum) a 4MP front-facing camera capable of 1080p 30 FPS recording

At the time, we didn't find information about performance class 11. That performance class is now defined in the CDD, too. The requirements for performance class 11 are below.

Performance class 11 key requirements

  • At least 6GB of RAM
  • At least 400dpi and 1080p resolution
  • At least 100MB/s sequential write, 200MB/s sequential read, 10MB/s random write, and 25MB/s random read speeds
  • Must have (at minimum) a 12MP rear camera capable of 4K 30 FPS recording
  • Must have (at minimum) a 4MP front-facing camera capable of 1080p 30 FPS recording

There are a lot more requirements than are outlined above, but most of them refer to codecs, camera processing, and other information.

Performance classes may be useful for app developers to improve the overall experience on not just devices meeting the “performance class” spec, but also for lower-end phones. If an app detects a phone doesn’t meet the requirements for a “performance class” device, they can turn off certain, more demanding features or visual effects in order to improve the way that the app works on lower-end phones. Likewise, it can also detect if it's running on one of the best Android phones, in which case, it can enable high-performance features.