Casa > O > O Que É Exactamente A Fragmentação Do Android?

O que é exactamente a fragmentação do Android?

A fragmentação do Android é um termo exagerado baseado em algumas sementes de verdade:

  • Existem várias versões de SO em dispositivos Android na natureza.
  • Existem várias variantes de SO feitas por fabricantes individuais que quebram coisas.
  • Existem "demasiadas" resoluções de ecrã para suportar (tipicamente comparadas com o iOS).
  • Teste é difícil com tantas opções de dispositivos.

O meu passado está na escrita de jogos para PCs, e as reclamações sobre a fragmentação são sempre estranhas em comparação com a fragmentação real com a qual tivemos que lidar naquela época.

Sim, as coisas podem ser marginalmente mais difíceis de lidar no Android do que criar uma compilação somente de iOS, mas isso'é realmente uma pequena fração do esforço para criar um aplicativo para começar com.

Versões do SO Android

Aqui está uma lista das versões atuais do SO Android:

Dashboards | Desenvolvedores do Android

Se você tiver como alvo 4.x, você atinge 98% dos dispositivos. Você pode fazer isso enquanto usa novos recursos, usando a camada de compatibilidade que o Google fornece: O Google efetivamente suporta a maioria das novas funcionalidades para dispositivos antigos usando a camada de compatibilidade, fazendo com que as diferenças não sejam um problema.

Adicionalmente, o Google tem movido o código central do SO para "aplicações" que podem ser atualizadas mesmo quando o fabricante não't atualizar o SO do dispositivo.

Variantes do fabricante

Samsung, HTC, LG, e outros fabricantes personalizam o Android por várias quantidades para diferenciar seus produtos. Ocasionalmente isto pode causar um problema quando eles fazem algo imprudente, mas para 95% das aplicações, as diferenças de SO são irrelevantes. Os 5% restantes podem precisar de uma correção para uma variante específica do fabricante, mas tipicamente ele's uma correção simples.

Screen Resolutions

Acho que esta foi a principal queixa original sobre fragmentação: O iPhone tinha exactamente uma resolução, por isso as pessoas podiam apenas desenhar uma interface exactamente para essa resolução. Então os displays Retina foram lançados. E o iPad Mini. E agora temos várias novas resoluções nas variantes iPhone e iPad.

Um desenvolvedor usando a abordagem tradicional do iOS de criar um novo layout para cada resolução vai olhar para a lista maior de resoluções do Android e gritar "fragmentação! Mas eu submeto que a codificação para a independência de resolução é a abordagem certa em ambas as plataformas. Então você projeta seu layout uma vez para dispositivos do tamanho de um telefone, e talvez mais uma vez para tablets, e você're done. Resoluções e relações de aspecto ligeiramente diferentes de repente são't um problema usando esta abordagem.

Testing

Esta é a categoria com mais dentes, mas mesmo os testes podem ser tratados. Você não't quer comprar uma centena de dispositivos, mas quer uma ampla cobertura de dispositivos em seus testes.

Então integre análise de tempo de execução e relatórios de falhas em seu aplicativo, e vá para serviços de teste online que oferecem para executar seu teste em centenas de dispositivos. Ou simplesmente faça uma versão beta e colete os dados de seus usuários.

Eu raramente vejo bugs específicos da plataforma de qualquer maneira, então ter um Nexus e um dispositivo Samsung por perto para testar tem sido suficiente.

Resumo

Fragmentação é um termo jogado ao redor por pessoas que querem justificar não criar uma versão Android de seu aplicativo, mas ele'é mais uma desculpa fraca do que uma razão substancial. Eu pessoalmente acredito que o desenvolvimento de plataformas cruzadas é o futuro, e as ferramentas realmente podem ajudá-lo com várias das questões listadas, contornando inteiramente as diferenças de SO, tornando a "fragmentação" ainda menos um problema.

De Nidorf

Onde é que eu arranjo cupões Udemy? :: O que é este ícone '*' (em forma de estrela) preso ao canto superior direito do meu Nexus 4?