Что случилось? Команда Google выпустила альфа-версию библиотеки Jetpack Core Performance, которая показывает технические возможности устройства и помогает адаптировать под них приложения. Библиотека взаимодействует с новым классом производительности, который появился на Android 11 и выше.
И что? Этот класс демонстрирует текущий уровень производительности устройства и на его общие характеристики. То есть он показывает, как устройство должно работать по техническим спецификациям и как оно работает на самом деле. И всё это верифицировали с помощью системы Compatibility Test Suite.
Благодаря этому классу разработчики смогут группировать устройства по уровню производительности и адаптировать версии приложений для каждой группы отдельно.
Как использовать? Чтобы добавить класс производительности в приложение, нужно включить следующую зависимость в build.gradle:
implementation 'androidx.core:core-performance:1.0.0-alpha02'
А чтобы, например, кодировать видео в разных разрешениях, можно использовать класс Media Performance:
class OptimalVideoSettings(context: Context){
private val devicePerf: DevicePerformance = DevicePerformance.create(context)
val encodeHeight by lazy {
when (devicePerf.mediaPerformanceClass) {
Build.VERSION_CODES.S -> 1080 // Если используется класс производительности 12-й версии, то 1080p
Build.VERSION_CODES.R -> 720 // Если используется класс производительности 11-й версии, то 720p
else -> 480
}
}
val encodeFps by lazy {
when(devicePerf.mediaPerformanceClass){
Build.VERSION_CODES.S -> 60 // Если используется класс производительности 12-й версии, то 60 fps
Build.VERSION_CODES.R -> 30 // Если используется класс производительности 12-й версии, то 30 fps
else -> 30
}
}
}
Подробнее о библиотеке Jetpack Core Performance и новом классе производительности — в блоге Android.