По моему опыту, это ужасная кроличья нора. Даже если вы реализуете сложное решение, такое как рендеринг вне экрана, чтобы измерить возможности устройства, результаты могут быть искажены из-за того, что устройство временно разогнано из-за методов экономии заряда батареи или мер по уменьшению нагрева, или из-за того, что ресурсы перенаправлены на другой работающий процесс. .
Подавляющее количество аппаратных изменений в Android делает практически невозможной базу данных о возможностях устройств, если у вас нет достаточно ресурсов для решения этой проблемы.
Я думаю, что наименее худший подход - использовать несколько простых прокси, чтобы получить общее представление о том, является ли устройство high-end или нет. Я использовал следующее:
- Версия ОС Android
- Количество ядер процессора
- Поддерживаемый графический API (версия OpenGLES и, возможно, поддерживается ли Vulkan)
- Объем доступной оперативной памяти
- Разрешение устройства
- Поддерживается ли highp в фрагментных шейдерах