Класс производительности Android

Как каждая версия Android определяет уровень производительности

Новая метрика для измерения производительности

Android уже давно предлагает своим разработчикам библиотеку совместимости, «библиотеку поддержки». Начиная с версии Android 9, эта библиотека устарела и была заменена новой версией под названием «AndroidX». Короче говоря, этот уровень совместимости предоставляет разработчикам относительно простой способ изящно обрабатывать новый API на старых устройствах Android, которые могут его не поддерживать.

Класс производительности Android отличается от класса AndroidX. Вместо того, чтобы напрямую предоставлять запасной вариант для этих устаревших функций, его цель - дать вам как разработчику представление о том, на что способно текущее оборудование устройства. Это также дает намек на еще одно важное отличие: классы производительности Android доступны во время выполнения, а не во время сборки, как это делает AndroidX.

Чтобы быть более конкретным, на момент написания Android предлагает три класса производительности: Media, Camera и Generic. Эти классы будут полностью доступны, начиная с Android 12, так как они были представлены в этой версии. Для Android 11 будет доступна подмножество этих классов.

// Example taken directly from
// Android's explanation, just
// to give a quick overview.
if (Build.VERSION.MEDIA_PERFORMANCE_CLASS >= Build.VERSION_CODES.S) {
   // Provide the most premium experience for highest performing devices
   ...
}
else if (Build.VERSION.MEDIA_PERFORMANCE_CLASS == Build.VERSION_CODES.R)
   // Provide a high quality experience
   ...
}
else {
   // Remove extras to keep experience functional
   ...
}

Новый способ группировки устройств

Классы производительности позволяют по-новому сгруппировать потребителей. Вместо того, чтобы просто полагаться на версию Android или, что еще хуже, проверять идентификаторы поставщиков конкретных устройств на соответствие настраиваемому набору правил, эти новые классы производительности можно использовать для прямой (и надежной) группировки потребителей по возможностям.

Что именно поддерживается каждой версией, можно увидеть в «Документе об определении совместимости с Android». Новый инструмент под названием «Набор для тестирования совместимости», также разработанный командой Android, проверяет предлагаемую совместимость для устройства. Но не волнуйтесь, это касается только производителей оборудования и их инженеров. Для вас как разработчика приложений важно использовать новый API в коде приложения.

Вперед-совместимая стратегия

Наконец, важно отметить, как этот новый класс производительности будет использоваться в будущих версиях Android. Например, устройство с Android 12 также поддерживает версию 12 класса производительности мультимедиа. Теперь, когда выйдет Android 13, это устройство все еще может обновиться до Android 13, но сохранит версию 12 класса производительности. Это могло быть уже очевидно для вас. , но я все же хотел выделить это поведение. Версии класса производительности не препятствуют производителям обновляться до последней версии Android.

Предложения

Связанные

Приложение

Языки