
Joe Maring / Autoridade Android
DR
- O Google está introduzindo um novo sistema no Android 17 para reduzir o tempo que os threads de software passam esperando a conclusão um do outro.
- Ao revisar como o acesso à memória é temporariamente bloqueado, o DeliQueue permite que os threads sejam executados com menos interrupções.
- Isso pode resultar em uma redução de 4% na perda de frames de aplicativos, ou até 7,7% na interface do sistema Android.
Você pode nem estar pensando conscientemente sobre isso, mas é provável que perceba que alguma coisa está ativado quando seu telefone Android não está funcionando tão bem quanto poderia. Tudo ainda é feito – você desliza, navega pela interface do sistema, entra e sai de aplicativos – mas às vezes é necessário fazer escarificações para que o Android acompanhe você, e isso pode significar a perda de frames. Você pode ver isso como uma gagueira ou uma rolagem que não é tão suave como em outros momentos. Mas com o Android 17, o Google está introduzindo algumas mudanças que podem tornar esse fenômeno um pouco menos pronunciado.
Não quero perder o melhor de Autoridade Android?


Em seu Blog de desenvolvedores Android, o Google compartilha um mergulho bastante técnico nas mudanças que ocorrerão no MessageQueue no Android 17. “O que diabos é MessageQueue”, você pergunta? É uma parte essencial do sistema que os aplicativos Android usam para exibir sua IU.
O problema é que até agora os threads de software conseguiram bloquear temporariamente a fila enquanto trabalham com ela, e isso pode levar a situações em que um thread precisa esperar mais do que deveria para que outro libere o bloqueio. Se isso demorar muito, processos importantes não serão concluídos a tempo, levando a consequências para o usuário, como perda de quadros.
O Google está ciente dessa limitação há algum tempo, e a solução era clara, se não um pouco esmagadora: fazer a transição do MessageQueue para uma estrutura de dados sem bloqueios. Basicamente, em vez de bloquear toda a fila, o Android 17 implementa um novo sistema chamado DeliQueue, que oferece suporte a restrições muito mais granulares em locais específicos da memória.

Anatomia de um quadro descartado.
Sem serem muito arrastados para o como e o porquê disso, os threads não são forçados a ficar parados esperando que outros liberem esse bloqueio antes que possam fazer o trabalho por conta própria – e isso permite que eles evitem gargalos que podem resultar em desempenho instável e instável. O Google explica que o abandono da antiga abordagem de um serviço por vez foi o que levou ao nome do novo sistema:
É como retirar um ingresso em uma delicatessen – seu número é determinado pelo momento em que você apareceu, mas a ordem em que você recebe a comida não precisa ser a mesma.
Os desenvolvedores ainda precisam testar seus aplicativos para garantir que funcionarão corretamente com o DeliQueue, mas o Google passou por alguns testes bastante robustos e já corrigiu os dois bugs que surgiram.
Que tipo de melhorias você realmente espera ver? Em seus testes, o Google relata uma redução de 4% nos frames perdidos em aplicativos e uma redução de 7,7% nos frames perdidos no sistema e na interface do iniciador. Isso não é enorme, é verdade, mas ainda é um bom progresso na direção certa. Também podemos esperar que os aplicativos iniciem um pouco mais rápido.
Obrigado por fazer parte da nossa comunidade. Leia nossa Política de Comentários antes de postar.
