2011/12/07

Porque é que o Android tem "Lag"


Não há dúvidas que a fluidez de funcionamento dos iPhones e iPad é algo que impressiona todos os que os experimentam. Ano após ano, mesmo os dispositivos topos-de-gama do Android parecem ser incapazes de igualar tal suavidade de funcionamento - muitas vezes nem sequer quando comparados com iPhones de gerações anteriores. Afinal... o que se passa? Será que a equipa do Android não sabe tirar proveito do hardware?

Na sequência do post de uma engenheira do Google que clarificou que o Android já tem os gráficos acelerados por hardware desde o início, um ex-estagiário do Google que trabalhou na equipada do Android (e que agora está prestes a ir trabalhar para a "concorrência", no Windows Phone da Microsoft) tenta explicar o que se passa - e embora sejam apenas as suas suposições, o que é certo é que tem lógica.


Tudo terá a ver com a prioridade com que ambas as plataformas tratam a resposta aos toques do utilizador e ao ecrã.

Enquanto no Android, as funções de desenhar o ecrã e responder aos toques do utilizador são processados de forma "normal", partilhando o tempo do processador disponível com o resto do processamento; no iOS, haverá uma thread continuamente dedicada a essa função, que trabalha com prioridade máxima sobre tudo o resto. Ou seja, a partir do momento que o utilizador esteja a fazer qualquer operação no ecrã, tudo isso passa a ter prioridade sobre o resto do processamento - e dedicando a maioria dos recursos do hardware para essa função (à custa do atraso de outras operações que estejam a ser feitas nesse momento).

Com processadores dual-core e quad-core, esta situação torna-se mais saudável, já que poderm estar a ser feitas verdadeiramente em paralelo e não se está a competir pelos recursos de um único CPU insuficiente para fazer "tudo".

De qualquer forma, parece-me apenas lógico que em qualquer dispositivo (quer seja mobile, ou num PC "normal"), esta devesse ser a regra a seguir - obviamente, com as inevitáveis excepções - para que o utilizador nunca se sentisse frustrado ao sentir que o seu hiper-mega novo equipamento super potente, afinal nem ser capaz de arrastar uma simples janela sem que o seu movimento fosse feito "aos saltinhos".

... Verdade seja dita, com os CPUs quad-core mobile que agora começam a chegar ao mercado, como o Tegra 3, e o futuro "A6" da Apple, a potência adicional irá fazer com que as diferenças entre ambos os métodos utilizados pelo iOS e Android sejam cada vez menores - mas de qualquer forma, parece-me apenas lógico que a resposta ao utilizador devesse ter sempre prioridade sobre o resto.

(E faz-me relembrar que nos tempos dos primórdios das internets, enquanto as páginas eram ainda de HTML estático e a coisa da moda eram GIFs animados a piscar por todo o lado, já eu me preocupava em dar feedback de resposta a cada link clicado, substituindo-o por um "a carregar", para que a pessoa tivesse feedback de que clicou nalguma coisa - naquele tempo as páginas vinham por modem... tinha que se ter paciência! ;P)

21 comentários:

  1. Totalmente de acordo. O mínimo lag que seja, torna a experiência num fracasso. E quando se trata de dispositivos de 500/600€, imperdoável.
    Para mim, é o ponto fraco do SO.

    Aacredito que o pessoal com Galaxy S2, Note, Nexus e topos de gama android derivados não se queixe disto. Mas a verdade é que quem já pegou num iPhone pode comprovar que a fluidez não é a mesma.

    Tenho um Galaxy S, CyanogenMod, versão 2.3.7 do Android.

    ResponderEliminar
  2. Antonio Luis Coelho7/12/11 11:44

    Viva

    Afinal, sabe-se:
    - O porquê,
    - O como,
    - O remendo...

    Mas assim, a cada novo produto podem dizer: "...é melhor do que o anterior...", pudera.
    Troca, consumidor...

    ResponderEliminar
  3. Mais uma notícia traduzida com montes de aspas...

    ResponderEliminar
  4. Concordo que o meu SGS (também com a CM7) não seja tão fluido como um iPhone.

    Mas a verdade é que não troco esses fps a menos por tudo o que consigo fazer a mais.

    Eu sou "esse" tipo de utilizadores :D

    ResponderEliminar
  5. @Luís Marques

    Também me incluo nesse grupo :)

    Mas que é chato, é.

    ResponderEliminar
  6. Pelo que li é mais devido ao hardware e às patentes que a Apple tem sobre os ecrãs tácteis que outra coisa qualquer. A Apple é detentora do melhor e mais responsivo ecrã tactil que existe e é muito muito dificil para a competição fazer melhor sem quebrar essas patentes. Mesmo que tenham processadores melhores, o hardware do lado do reconhecimento do toque não acompanha. E, claro, a questão da thread de que falas aí.

    ResponderEliminar
  7. Pelo que aprendi sobre processadores e concorrência, podes por os cores que quiseres que o problema vai sempre continuar. Não sei se algum dos sistemas operativos "normais" consegue usar mais que um Core para o mesmo processo (isto trás grandes problemas na gestão de memória, concorrência e gestão de caches)
    Espero não estar a dizer nenhuma barbaridade :P

    ResponderEliminar
  8. Tenho um ipad novinho em folha e as duas coisas que mais me impressionaram foram a qualidade do ecrã e aquilo a que chamas fuidez de funcionamento. É realmente impressionante.

    ResponderEliminar
  9. Luis Vítor7/12/11 17:52

    Realmente, tenho um SGS2 e não me posso queixar... É certo que a experiência táctil do iPhone é bastante boa, mas a meu ver não passa disso. E independentemente de algumas falhas que o SO possa ter, não trocava este telemóvel por nenhum outro do mercado actual (como já dizia o outro - "nem que me pagassem").
    Desafio portanto a Apple a produzir um iPhone 5 que me faça mudar de ideias :-) (mas também que não seja depois batido facilmente pelo SGS3)

    ResponderEliminar
  10. @Luis Vítor, para isso não precisas de esperar pelo 5, o iPhone 4 (nem é preciso o 4S) dá-lhe uma coça que meu Deus... a combinação perfeita iPhone + iOS + Jailbreak

    ResponderEliminar
  11. A acrescentar a este artigo, repito aqui o que escrevi há dias aqui mesmo no abertoatedemadrugada, a propósito da aceleração por hardware, e que também ajuda a explicar o porquê da tecnologia de base do Android andar sempre um passo atrás do iOS:
    A performance é sempre um compromisso entre 2 ou mais variáveis. Não existem sistemas perfeitos. No caso do Android, enquanto programador, encontro 2 ou 3 características que acabam por determinar invariavelmente alguma desvantagem face aos seus competidores Windows Phone 7, mas sobretudo face ao iOS, no capítulo da performance: o Android é multi-plataforma e isso exige compromissos, designadamente o compromisso de ter as apps a correr em máquinas virtuais java. Isto acrescenta uma camada lógica ao OS, o que não abona em favor da performance; o SDK está sobre-simplificado e sobre-automatizado (veja-se o caso dos garbage collectors), o que por um lado permite alargar o leque de programadores, mas por outro acaba por potenciar o aparecimento de apps mal-feitas. No iOS e mesmo no Windows Phone 7 as coisas funcionam de forma mais integrada.As apps têm menos uma barreira no acesso ao hardware e o SDK é mais estruturado, obrigando a ter uma disciplina de programação que dá mais trabalho, é certo, mas também obriga a fazer apps mais depuradas.

    ResponderEliminar
  12. Os actuais processadores Dual-Core Exynos da Samsung presentes nos Galaxy S2 (e até no Galaxy Tab 7.7), tornam a experiência super fluída, graças à sua grande capacidade de processamento e memória. Quem tem um Galaxy S2 não tem certamente muitos problemas com lags, já que regra geral a fluidez é muito boa. Pelo que vi o Galaxy Nexus (que não usa o exynos) é regra geral super fluído e muito rápido. O iphone é bastante fluido, mas também tem o seu lag aqui e ali, até o 4S apresenta nalgumas situações pequenos lags. A UI HTC Sense é super fluída também.
    Com o aparecimento de novos processadores dual e quad-core e a massificação da aceleração por hardware em todas as apps e ui, esse "lag" será cada vez menos menos perceptível. E o novo Galaxy S3 e os novos Exynos estão mesmo aí a chegar.
    ;)

    ResponderEliminar
  13. @Rehawk. Quem tem android dificilmente mudará para ios, e vice-versa. Logo é desnecessário estar a falar de superiores...estão os sistemas aqui e estão para ficar!
    Há quem goste de muita fluídez e de uma UI básica e simples, como se fosse para crianças, para esses temos a Apple. Há no entanto quem prefira um SO inovador, livre, super personalizável, com muita escolha entre diferentes hardwares e que seja mais desafiante para a mente e para esses temos o Android.
    (Não descurando claro o WP7.5, o Bada 2.0, o Web OS, o MeeGo, o Blackberry OS).
    ;)

    ResponderEliminar
  14. @Anónimo, não concordo de maneira alguma, aliás, basta ler o que escrevi sobre combinação perfeita, aquilo que afirmas é nitidamente de quem nunca mexeu no iOS com Jailbreak, se me falasses apenas do iOS se calhar concordava. ;)
    e Android juntamente com a palavra "inovador" não tem muito a ver. Sobre a escolha de harware concordo, mas para que é que quero andar a escolher entre milhentos aparelhos e marcas se um unico hardware faz tudo o que é preciso de uma forma perfeita, sem qualquer dificuldade, com enorme fluídez, com melhor performances do que hardwares superiores? É essa a diferença, é por isso que o iPhone está sempre um passo à frente, e isso é que custa a muita gente, porque escolhas todos nós podemos ter (eu por exemplo estou à vontade para falar, tenho 2 smartphones, 1 com iOS e outro com Android).
    A minha escolha sobre o melhor acho que é obvia e bastante sustentável.

    ResponderEliminar
  15. Tenho um Galaxy Ace e um iPhone. Quando comprei o Ace esperava desfrutar da liberdade que tanto se fala. Mas não encontrei naa significativamente melhor do que encontrei no iPhone. Atenção! Não falo de processador , placa gráfica, resolução, etc. A comparação não é justa com o Ace. Falo de poder fazer "coisas" com o gadget. Certo que tenho o iPhone com JB, e isso torna-o muito mais "livre" e configuravel, mas no Ace tb instalei uma Roma para ter o Gingerbread antes da actualização da Samsung. Sinceramente não vejo vantagens significativas em um ou outro sistema. Se alguém tiver que escolher um será mais pela utilização que se fará do aparelho. Se a ênfase for jogos aconselho vivamente o iOS, pois todos os jogos são lançados primeiro nessa plataforma, e algumas vezes em exclusivo, sendo o caso mais evidente Infinity Blade. Se os €€€ forem problemas o Android permite aceder a óptimos equipamentos por preços excelentes (vide o Huawei Ideos X5). E por aí vamos. Portanto escolha escolha sua plataforma e seja feliz, pois ambas são (por enquanto) o melhor em termos de comunicações móveis.

    ResponderEliminar
  16. @Redhawk. Pois quando aqui escrevi (ja algumas vezes) foi com conhecimento de causa pois tenho o iphone4 e o Galaxy S2. E sim o jailbreak do ios (que tenho desde as primeiras horas que tive o iphone) nada tem haver com a costumização de roms no android. No android a liberdade é total para todo o tipo de alterações possiveis e imaginárias. Alterações drásticas de UI, animações diversas no UI e Wallpapers, alterações de opções, costumização de memória disponível, de clock do processador, de voltagem do processador, instalação de apps como e quando quiser dentro e fora do market, passar ficheiros de toda a espécie, incluindo até apps via bluetooth, wifi, mail..., backup e partilha de tudo incluíndo apps, verdadeiros gestores de sistemas e ficheiros, ligação do smartphone ao PC e Mac para partilha de ficheiros sem requerer qualquer programa de terceiros,... e isto só para mencionar alguns benefícios e possibilidades (que são realmente intermináveis), mas só com o Android! As apps são básicamente as mesmas nos dois sistemas, mas a diferença e que geralmente no android ou são grátis, ou tem versão grátis ou são mais baratas que no ios. No android o 4G (a chegar a portugal) já é uma realidade há muitooooo, os dual-core já são realidade há muitooooo, o super amoled plus tambémm, agora vem os verdadeiros HD e os quad-core, enfim...só inovação. A possibilidade de escolher entre diferentes marcas e hardwares só acrescenta valor à diversidade e inovação do android, que permite UIs bem diversas como a Sense HTC ou o TW Samsung, diferentes tamanhos de ecrans e não só tamanhos para mãos pequeninas e vista muito boa (como nos mínimos 3,5'). Sem falar na constante evolução do sistema core do Android agora no ICS 4.1, que realmente acrescenta valor, novidade e inovação quer visual como funcional. Sim isto é inovação drástica de UI. Na apple tens praticamente o mesmo visual de UI e animações desde que a maça é maça. Sem falar no invariável tamanho de ecra (os mesmos pequenos 3.5' de sempre) e um design único, pena é ser sempre o mesmo, ou quase. Eu prefiro escolha e liberdade e não tenho qualquer problema em dizer, que apesar de ter os dois sistemas, prefiro o mais desafiante e melhor....o Android.
    ;)

    ResponderEliminar
  17. @Anónimo, eu compreendo perfeitamente o teu ponto de vista, mas repara que acabas invariavelmente por fazer referência ao hardware... Para que é que eu quero isso tudo (quad-cores e afins) se depois com um simples hardware muito mais básico consigo mais e melhor? Essa é a diferença... e é que nem sequer vale a pena discutir, está mais do que provado por esse web fora. As apps são cada vez mais as mesmas, e é facto que por norma na Appstore são mais caras que no Market (políticas já mais do que discutidas, concordesse ou não), o cerne da questão é que colocamos os 2 dispositos a correr lado a lado e depois preguntamo-nos se efectivamente são as mesmas ou não, mais uma vez, a diferença.
    Outra coisa, eu quero um tlmv, não quero um minitablet que nem no bolso cabe, cada coisa no seu lugar, ecrã superior a 4'' é do mais rídiculo que existe, faz-me lembrar o tempo em que apareceram os telemóveis que era preciso andar de carrgador atrás... Exemplo disso é o HTC Sensation. Se quero um tablet compro um iPad ou um Galaxy tab, não compro um mix rídiculo.

    ResponderEliminar
  18. O Android, enquanto SO, possui compromissos técnicos de base que o colocam sempre um passo atrás do iOS, e até do Windos Phone 7. Esses compromissos vao sendo disfarçados pelo aparecimento de hardware mais potente, mas esse hardware tambem acaba por ficar disponível para os outros SOs, pelo que a desvantagem volta sempre a aparecer.
    Não se pode ter tudo.

    ResponderEliminar
  19. @Redhawk. Opiniões são opiniões...valem o que valem...e a de milhões de usuários android é tão ou mais válida que a tua...e se leres bem o que escrevi vai bem além daquilo que gostas sempre de ressalvar...não é por tu o dizeres que vais mudar a opinião de quem prefere o android, muito menos a minha...se achas que o ios é melhor para ti ótimo, cada um escolhe o que mais lhe convém...pois a mim convém-me muito mais o sistema Android pelos motivos já descritos vezes sem conta e muitos outros.
    Nunca eu conseguiria estar satisfeito com um sistema tão básico e um ecrã tão pequeno para ler na net, ver fotos, filmes e jogar jogos, por mais fluído e bonitinho que seja...temos pena...;)
    E agora perguntas-me, como tens então tb um iphone4? Olha, já tive o 3, depois o Galaxy S e o Galaxy S2 (o melhor tlm de sempre :)) e tive a oferta de um iphone4. Gosto realmente da fluídez (em quase tudo), mas não gosto do UI extremamente limitado e quase igual ao meu velhinho iphone3, das mesmas restrições de sempre na partilha de ficheiros e acesso ao file system e não gosto sobretudo da fragilidade e peso para o tamanho que tem. Tudo aquilo que o android oferece e que a apple não, não me farão mudar de ideias e a milhões de outros utilizadores android, não fosse o android um dos sistemas em mais rápida expansão (mesmo com os seus fantásticos ecrans de 4, 4.2, 4.3, 4.5, 4.65, 5 e por ai fora até aos 10.1, a diversidade é isso mesmo e quem compra gosta e aprecia).
    Paciência, vais mesmo ter de aceitar que há quem prefira outros sistemas que não a monopolitária maçã e que além de os preferirem os achem bem melhores para as suas necessidades e gozo do dia a dia. Tanto a nível de hardware como também de software.
    Como já havia dito, ambos os OS estão aqui e estão para ficar, logo vais mesmo ter de gramar e perceber que há pessoas e sistemas diferentes daquilo que tu achas melhor.
    Eu sou uma delas!
    Eu prefiro Android!

    ;)

    ResponderEliminar
  20. PS: @redhawk. Só um exemplo prático que me esqueci de dar:
    PS: E quanto ás apps, parece que há uma falta de actualização da tua parte, algumas são ligeiramente melhores na apple outras no android. E melhores virão e mais adaptadas aos novos hardwares e versões do OS. Só um exemplo:
    Estive à cerca de 15 dias atrás em Miami, levei o meu Galaxy comigo. Para me orientar por lá recorri sempre ao fantástico Google Maps (e que ajuda preciosa foi) fazia o cache das porções do mapa que queria pelo wifi do hotel e depois navegada off-line pelos mapas quando estava na rua para nos orientarmos. Quando numa ocasião fiquei sem bateria uma das minhas amigas tinha o iphone4 consigo e tentámos por lá. Eu e ela ficámos surpreendidos que na app maps da apple não existe qualquer função para pré-carregar em cache as zonas dos mapas que queremos, é muito limitado em termos de 3D mapping e nem sequer permite o scrooling com os dois dedos e girar o mapa, que tanto jeito nos fez em Miami.
    Realmente há diferenças...mas nem sempre são para pior no Android. Este é um exemplo prático e que te posso dizer que foi essencial em todas a viagens que fizemos por lá!
    ;)

    ResponderEliminar
  21. Quem programa simultaneamente para iOS e para Android sabe bem que é preciso depurar muito código para conseguir que uma aplicação Android tenha o mesmo desempenho que a mesma aplicação tem em iOS, mesmo em hardware de topo.

    ResponderEliminar