Logo ru.androidermagazine.com
Logo ru.androidermagazine.com

Простой трюк Facebook для обслуживания множества различных устройств Android

Anonim

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

Facebook продемонстрировал всем на Big Android Meat и приветствовал новое простое решение - компонент Device Year Class.

Разработчики Facebook описывают этот новый программный компонент следующим образом:

Device Year Class - это библиотека Android, которая реализует простой алгоритм, который отображает ОЗУ, ядра ЦП и тактовую частоту устройства на год, в котором эта комбинация спецификаций считалась высокопроизводительной. Это позволяет разработчику легко изменять поведение приложения в зависимости от возможностей аппаратного обеспечения телефона.

Библиотека не изменяет поведение в приложении. Он возвращает значение (выраженное в году), которое хранится в коде для случаев, когда разработчику необходимо изменить способ работы приложения, чтобы адаптировать работу к конкретному типу оборудования. Это означает, что разработчик может написать приложение с причудливой анимацией и переходами, которое будет воспроизводиться так, как задумано, при работе на чем-то вроде Galaxy Note 4, но не использовать приятные на вкус, когда приложение работает на чем-то вроде Moto E. Как вы можете представьте себе, что такое управление в приложении, таком как Facebook, которое установлено на миллионах и миллионах различных телефонов, может и будет способствовать лучшему восприятию почти для всех. И это легко реализовать. Из документации на GitHub:

if (year >= 2013) { // Do advanced animation } else if (year > 2010) { // Do simple animation } else { // Phone too slow, don't do any animations }

Лучше всего то, что библиотека поставляется с открытым исходным кодом по лицензии BSD Software (та же лицензия, которую Google использует для исходного кода Android) и доступна каждому разработчику для бесплатного использования.

Мы знаем, что это не волшебство, и, скорее всего, у большинства разработчиков, работающих над большими проектами, есть какой-то метод обработки различных аппаратных конфигураций. То, что делает годовой класс устройства, - это простое и «элегантное» решение большой проблемы, и любой может его использовать.

Страница устройства класса Year 'GitHub