Algumas pessoas gostam de chamá-lo de fragmentação, outras de escolha, mas por qualquer nome certamente existem muitos telefones Android diferentes. Criar aplicativos que precisam trabalhar com todos eles não é tarefa fácil. Você tem configurações de hardware muito diferentes que fazem uma grande diferença no desempenho, e mesmo que um arquivo apk possa funcionar em todos eles, ainda há o problema de precisar que um aplicativo seja executado sem problemas em dispositivos de ponta, sem sacrificar os recursos de alta qualidade. dispositivos finais. Quando você está falando de um aplicativo tão popular quanto o Facebook, isso pode rapidamente se tornar um pesadelo para as pessoas que fazem a codificação.
O Facebook mostrou a todos no Big Android Meat and Greet uma nova solução simples - o componente Classe de Ano do Dispositivo.
Os desenvolvedores do Facebook descrevem esse novo componente de software como este:
A Classe do ano do dispositivo é uma biblioteca Android que implementa um algoritmo simples que mapeia a RAM, o núcleo da CPU e a velocidade do relógio de um dispositivo para o ano em que essas combinações de especificações foram consideradas sofisticadas. Isso permite que um desenvolvedor modifique facilmente o comportamento do aplicativo com base nos recursos do hardware do telefone.
A biblioteca não altera nenhum comportamento no aplicativo. Ele retorna um valor (expresso como um ano) armazenado no código para os momentos em que um desenvolvedor precisa alterar a maneira como um aplicativo trabalha para adaptar a experiência a um tipo específico de hardware. Isso significa que um desenvolvedor pode escrever um aplicativo com animações e transições sofisticadas que serão reproduzidas conforme o esperado quando executadas em algo como um Galaxy Note 4, mas não usarão os olhos quando o aplicativo estiver executando algo como um Moto E. Como você pode imagine que esse tipo de controle em um aplicativo como o Facebook - instalado em milhões e milhões de telefones diferentes - pode e trará uma experiência melhor para praticamente todos. E é fácil de implementar. Na documentação do GitHub:
if (year >= 2013) { // Do advanced animation } else if (year > 2010) { // Do simple animation } else { // Phone too slow, don't do any animations }
O melhor de tudo é que a biblioteca é de código aberto sob a licença de software BSD (a mesma licença que o Google usa para a fonte Android) e está disponível para todos os desenvolvedores usarem gratuitamente.
Sabemos que isso não é mágico e é provável que a maioria dos desenvolvedores que trabalham em grandes projetos possua algum tipo de método para lidar com diferentes configurações de hardware. O que a classe ano do dispositivo faz é fornecer uma solução simples e "elegante" para um grande problema, e qualquer pessoa pode usá-la.
Página GitHub da classe do ano do dispositivo