There is a wide variety of android devices existing in today’s market. They come in different shapes and forms and also have different prices which are due to a difference in specifications (i.e. the devices with better specs are more expensive than those with poorer specs). This makes it very easy for any Android user to tell which device is stronger just by finding out the specs on the box of the phone or by looking them up online.
An app that is running on your device can not look up specs online but it could in theory do stuff like matching the name of your device against some sort of database and derive your specs from that, call APIs that have an information directory for things like resolution or inspecting system properties for things like RAM capacity, and so on, but in actuality, there isn’t a quick or easy way to know the kind of performance your android device is expected to deliver.
This makes it very valuable if there was an easy way to organize the different android devices into different categories which makes it easy for an app to provide different experiences with optimization for each of the device classes. During last year’s annual developer conference organized by Google, they announced what they are referring to as “performance class” which was first introduced on Android 12.
So what is a performance class? According to Google, this is a standard that defines a set of capabilities that go beyond Android’s baseline requirements. Devices that meet the performance class requirements can support more demanding use-cases and deliver higher quality content. Developers can check for performance class at runtime and then reliably deliver enhanced experiences that take full advantage of the device’s performance.
Each version of Android has its corresponding performance class. The performance class is defined in the version’s Android Compatibility Definition Document. Every Android device states the performance class that it can support. Developers can test to find out the device’s performance class at runtime and deliver upgraded experiences that would take full advantage of the device’s capabilities.
Performance classes are forward-compatible. This means that an android device can be upgraded to a newer platform version without updating its performance class. For instance, an android device that initially supports performance class 12 can upgrade to Android 13 and it would continue to state that it supports class 12 if it does not meet the requirements of class 13.
This class concentrates on media use cases in android 12. The detailed performance class requirements are disclosed in the Android Compatibility Definition Document. The specified requirements in the CDD are in the following areas:
- Generic
- Memory
- Read/write performance
- Screen density
- Screen resolution
- Media
- Encoding quality
- Concurrent codec sessions
- Frame drops
- Camera
- Resolution
- HDR image capture
- Video stabilization support.
Performance classes provide a very easy way to categorize Android devices based on their capabilities without relying on a specific Android version.