O blog do Theus sobre tecnologia, sem papo furado.

guerra-dos-silicios29/08/20269 min de leitura

Por que o Android é tão difícil de otimizar? A culpa é da diversidade

Milhares de celulares, fabricantes, chips e câmeras tornam o Android um pesadelo de compatibilidade. E o Instagram é um ótimo exemplo disso.

Theus

Theus

Editor-chefe

Por que o Android é tão difícil de otimizar? A culpa é da diversidade

Eu acho que existe uma coisa que muita gente não percebe quando compara Android e iPhone: o celular pode até fazer a mesma coisa, mas o caminho para chegar lá pode ser completamente diferente.

E isso fica especialmente interessante quando você pensa em quem está por trás dos aplicativos que usamos todos os dias.

Porque fazer um aplicativo para iPhone já é um trabalho considerável.

Agora tenta fazer esse mesmo aplicativo funcionar bem em uma quantidade gigantesca de celulares diferentes, com processadores diferentes, câmeras diferentes, telas diferentes, versões diferentes do sistema e fabricantes que ainda colocam sua própria interface por cima do Android.

Bem-vindo ao Android.

Ou, como eu gosto de chamar:

Mad Max dos aplicativos.

O problema começa com uma coisa que é justamente uma das maiores forças do Android

O Android nasceu para estar em praticamente qualquer lugar.

Celular barato? Android.

Celular de R$ 10 mil? Android.

Celular dobrável que parece ter saído de um filme de ficção científica? Android.

Um negócio que dobra no meio e você ainda consegue abrir o WhatsApp? Android.

A proposta é justamente oferecer uma plataforma que possa funcionar em uma quantidade enorme de dispositivos e formatos. O próprio Google descreve o Android como uma plataforma feita para uma grande variedade de dispositivos e reconhece que essa diversidade exige que os aplicativos sejam preparados para diferentes configurações.

E isso é incrível para quem compra o celular.

Você tem escolha.

Pode escolher Samsung, Motorola, Xiaomi, Google, OnePlus, Oppo, Realme, entre várias outras.

Pode escolher um aparelho básico, intermediário, topo de linha, dobrável, compacto, enorme, barato ou absurdamente caro.

Só que existe alguém que olha para tudo isso e pensa:

“Agora eu tenho que fazer meu aplicativo funcionar nisso tudo.”

O desenvolvedor.

O iPhone é mais previsível. E isso ajuda muito

Não significa que desenvolver para iPhone seja fácil.

Essa é uma simplificação que eu não quero fazer.

A Apple também tem vários modelos, diferentes gerações, tamanhos de tela, câmeras e chips. Só que o ecossistema é muito mais controlado.

A Apple define o hardware, o sistema operacional e as principais APIs utilizadas pelos aplicativos.

Quando um desenvolvedor trabalha com câmera no iOS, por exemplo, existe uma arquitetura comum de captura através do AVFoundation, que permite acessar câmeras, configurar captura, foco, exposição, estabilização e outros recursos.

No Android, a história fica mais interessante.

O Google fornece a plataforma, mas existe uma quantidade enorme de fabricantes construindo aparelhos diferentes em cima dela.

E não é só trocar o processador e colocar uma câmera diferente.

Tem fabricante que muda a interface, fabricante que modifica o comportamento do sistema, fabricante que adiciona recursos próprios e fabricante que resolve fazer as coisas de um jeito que provavelmente fez algum desenvolvedor perder o sono.

É diversidade.

E diversidade é maravilhosa.

Até você precisar testar seu aplicativo nela.

Imagina que você é o desenvolvedor do Instagram

Agora vamos fazer um exercício.

Você trabalha no Instagram e precisa melhorar a câmera do aplicativo.

Você não pode simplesmente pensar:

“Beleza, vou fazer funcionar no celular.”

Que celular?

Um Galaxy S26 Ultra?

Um Motorola de entrada?

Um Xiaomi?

Um Pixel?

Um dobrável?

Um aparelho com uma câmera principal, outro com quatro câmeras, outro com duas e outro com um sensor que provavelmente tem mais megapixels que minha primeira câmera digital?

E ainda existe a questão do Android e das diferentes capacidades de hardware.

O próprio Google mantém informações de distribuição de dispositivos para que desenvolvedores consigam analisar características como versão do Android, memória RAM, SoC, Vulkan, OpenGL, tamanho de tela e ABI. Em outras palavras: até o próprio ecossistema oferece ferramentas para você entender com que tipo de hardware seu aplicativo vai precisar lidar.

É muita variável.

E é por isso que o Google criou ferramentas como o CameraX.

CameraX é basicamente o “tradutor” da câmera

O CameraX faz parte do Android Jetpack e existe para facilitar o desenvolvimento de recursos de câmera.

Uma das coisas interessantes é que ele oferece correções de compatibilidade e soluções específicas para que o comportamento seja mais consistente entre diferentes aparelhos.

Isso é importante porque uma câmera de celular não é simplesmente:

lente → sensor → foto.

Existe processamento de imagem, HDR, estabilização, diferentes sensores, diferentes resoluções, diferentes capacidades do aparelho e uma quantidade considerável de software no meio disso tudo.

E nem todo aparelho oferece exatamente os mesmos recursos.

O próprio Google mantém uma lista de dispositivos testados com CameraX e documenta quais recursos e extensões são compatíveis com determinados aparelhos.

Ou seja: até uma biblioteca criada justamente para diminuir a fragmentação precisa lidar com diferenças entre os aparelhos.

É quase como criar um tradutor que precisa aprender milhares de dialetos.

E aí chegamos ao Instagram

Agora fica mais fácil entender uma coisa que muita gente percebeu durante anos:

por que a câmera do Instagram parecia melhor no iPhone do que em muitos Androids, mesmo quando o Android tinha uma câmera absurdamente melhor no papel?

A explicação não é simplesmente:

“O Instagram tirava um print da tela.”

Essa história é divertida, mas é simplificada demais.

O problema real envolve a dificuldade de aplicativos de terceiros aproveitarem de maneira uniforme todos os recursos e capacidades das câmeras disponíveis no Android.

Um celular pode ter uma câmera excelente no aplicativo nativo e, ainda assim, um aplicativo de terceiros não necessariamente conseguir aproveitar exatamente o mesmo processamento e os mesmos recursos.

E isso explica uma coisa que sempre achei curiosa.

Você podia pegar um Android caríssimo, com uma câmera que parecia ter sido projetada pela NASA, abrir o Instagram e pensar:

“Ué... cadê a câmera que eu paguei?”

Enquanto isso, no iPhone, a integração entre hardware, sistema e APIs de câmera torna o caminho mais previsível para quem desenvolve aplicativos. A Apple fornece uma arquitetura própria de captura através do AVFoundation, incluindo acesso direto aos dispositivos de captura e aos dados produzidos por eles.

Não é mágica.

É integração.

E as fabricantes começaram a perceber isso

A Samsung, por exemplo, não ficou simplesmente esperando que o Instagram resolvesse tudo sozinho.

A empresa afirma que disponibilizou APIs de câmera para parceiros como Instagram e Snapchat para otimizar o desempenho das câmeras dos Galaxy nesses aplicativos.

E isso continuou evoluindo.

Na linha Galaxy S24, por exemplo, a Samsung anunciou integração de recursos de câmera diretamente com aplicativos sociais de terceiros, incluindo suporte a HDR no Instagram.

Ou seja: aquela velha história de “Android tem câmera boa, mas no Instagram fica uma porcaria” não é simplesmente uma característica eterna do sistema.

O mercado foi trabalhando para diminuir essa diferença.

E ainda trabalha.

Então o Android é pior?

Não.

E eu acho que essa é justamente a parte mais interessante dessa história.

A fragmentação do Android não existe porque o Google simplesmente decidiu fazer um sistema bagunçado.

Ela existe, em grande parte, porque o Android foi construído para ser extremamente flexível.

Essa flexibilidade permitiu que uma quantidade gigantesca de fabricantes entrasse no mercado.

E isso trouxe concorrência, aparelhos de diferentes preços e formatos e uma variedade que simplesmente não existe da mesma maneira no ecossistema da Apple.

O problema é que liberdade tem custo.

Para o usuário, essa liberdade pode ser maravilhosa.

Para o desenvolvedor, pode significar abrir o Android Studio e descobrir que agora ele precisa fazer o mesmo aplicativo funcionar em um negócio com tela dobrável, outro com câmera de 200 MP e outro que custa menos que o preço de uma Air Fryer.

Boa sorte.

E é por isso que a comparação “Android tem mais hardware” não conta a história inteira

Quando alguém fala:

“Meu Android tem 200 megapixels e o iPhone tem 48. Então minha câmera é melhor.”

eu já fico meio assim.

Porque especificação de hardware é só uma parte da história.

A experiência final depende do hardware, do sistema, dos algoritmos de processamento e também de como os aplicativos conseguem acessar tudo isso.

É por isso que dois celulares com câmeras excelentes no aplicativo nativo podem entregar experiências completamente diferentes dentro de um aplicativo de terceiros.

E isso não significa que um sistema seja magicamente superior ao outro.

Significa que um ecossistema mais controlado tem menos variáveis para administrar.

No fim, a fragmentação é uma bênção e uma maldição

Eu acho que essa é a melhor maneira de enxergar o problema.

A fragmentação do Android é ruim?

Para quem desenvolve, muitas vezes pode ser um baita desafio.

Para quem usa, ela também pode ser justamente o motivo pelo qual existe um celular Android para praticamente qualquer pessoa.

Você quer gastar R$700?

Tem.

Quer gastar R$3.000?

Tem.

Quer comprar um dobrável que parece um notebook que tomou anabolizante?

Também tem.

E tudo isso roda Android.

A mesma característica que torna o ecossistema mais complicado de otimizar é justamente uma das coisas que fizeram o Android chegar a tantos dispositivos diferentes.

No iPhone, a Apple controla praticamente toda a cadeia.

No Android, o Google fornece a plataforma e um monte de empresas constrói coisas diferentes em cima dela.

Um é mais controlado.

O outro é muito mais aberto e diverso.

E nenhum dos dois modelos é simplesmente “melhor” em tudo.

Mas quando você abrir o Instagram em um Android e perceber que a câmera finalmente está funcionando do jeito que deveria, talvez lembre que existe uma quantidade absurda de engenharia acontecendo nos bastidores para fazer aquele botão funcionar em um aparelho que é completamente diferente do próximo.

E pensar que tudo isso começou porque alguém só queria postar um Story.

A tecnologia é maravilhosa.

Às vezes também é um inferno.

E você, já percebeu essa diferença?

Você já teve um Android com uma câmera excelente que parecia pior dentro do Instagram, TikTok ou outro aplicativo?

Ou você acha que essa diferença já praticamente desapareceu nos celulares mais novos?

Conta nos comentários. Quero saber se essa história também aconteceu com você — e, principalmente, qual foi o celular que te fez pensar:

“Mano, essa câmera é muito melhor fora do Instagram.”

TagsAndroidDiversidadeOtimização

Comentários (0)

Ainda não há comentários. Seja a primeira pessoa a participar.
Por que o Android é tão difícil de otimizar? A culpa é da diversidade | otheusdescomplica