O Google está trabalhando no uso de modelos de aprendizado de máquina para prever quando o usuário deseja deslizar para trás no Android 12.
O Google lançou a primeira prévia do desenvolvedor do Android 12 outro dia, e estávamos investigando o código para encontrar tudo o que há de novo. Uma das mudanças mais interessantes que detectamos é uma revisão na forma como o Android detecta gestos de deslizar para trás. Se implementado, o Android 12 usará modelos de aprendizado de máquina para prever quando o usuário pretende usar o gesto de voltar.
Com o lançamento do Android 10, o Google introduzido seu sistema de navegação gestual em tela cheia. O sistema de navegação por gestos do Android coloca uma pílula na parte inferior da tela com a qual você pode interagir para alternar entre aplicativos, abrir a interface de aplicativos recentes ou ir para a tela inicial. O botão Voltar, entretanto, foi substituído por um gesto de deslizar para dentro que pode ser acionado do lado esquerdo ou direito da tela. Muita tinta foi derramada sobre
o problema com o gesto de voltar do Android, mas para crédito do Google, eles tornou a experiência consistente em todo o ecossistema e têm APIs fornecidas para os desenvolvedores garantirem a compatibilidade com o gesto. Embora muitos aplicativos tenham deixado de usar um Gaveta de navegação, ainda existem muitos aplicativos em que o gesto para trás pode entrar em conflito com a interface do usuário do aplicativo. Para resolver esse problema, o Google está testando uma nova abordagem baseada em aprendizado de máquina para detecção de gestos de volta no Android 12.O modo como o gesto de voltar do Android funciona atualmente é o seguinte. Uma área de disparo invisível existe quase sempre em ambos os lados da tela. Esta área de disparo se estende entre 18dp-40dp de largura nas laterais da tela, dependendo da configuração de sensibilidade traseira definida pelo usuário. O usuário pode acionar um gesto para trás simplesmente colocando um dedo em qualquer lugar da inserção e, em seguida, movendo esse dedo para dentro além de uma distância mínima. O Google usou mapas de calor da tela do telefone ao projetar as inserções de gesto para trás e eles se estabeleceram áreas de reconhecimento que os usuários consideram ergonômicas e fáceis de usar com uma mão.
Navegação por gestos no Android 10+. Fonte: Google.
O problema com esta abordagem, como o Google eles mesmos admitem, é que alguns usuários ainda deslizam para abrir as gavetas de navegação, o que entra em conflito com o gesto de voltar. Cada aplicativo é projetado de maneira diferente, mas a área de acionamento do gesto para trás ainda diz o mesmo. Essa abordagem única para o gesto de voltar, portanto, não combina bem com a forma como alguns aplicativos são projetados, e é por isso que o Google está experimentando o aprendizado de máquina para substituir o modelo atual.
Ao investigar as alterações que o Google fez em o gesto de toque duplo para voltar no Android 12, Desenvolvedor reconhecido pelo XDA Quinny899 descobriu a presença de um novo modelo do TensorFlow Lite e um arquivo de vocabulário chamado "backgesture". Esta última contém uma lista de 43.000 nomes de pacotes para aplicativos Android populares e obscuros, incluindo 2 dos Quinny899 próprios aplicativos. Acreditamos que esta lista contém os aplicativos contra os quais o Google treinou seu modelo de aprendizado de máquina – ou seja. eles determinaram os pontos inicial e final mais frequentes para o gesto para trás, aplicativo por aplicativo. Indo mais fundo, descobrimos que o modelo de aprendizado de máquina é referenciado na classe EdgeBackGestureHandler atualizada no SystemUI do Android 12. Se um sinalizador de recurso estiver habilitado, parece que o Android 12 usará o modelo de ML para prever se o usuário pretendia realizar um gesto para trás ou se simplesmente queria navegar no aplicativo. Os dados alimentados no modelo de ML para inferência incluem os pontos inicial e final do gesto, se o aplicativo está na lista e a largura da exibição em pixels. Como alternativa, se o sinalizador de recurso estiver desativado, o Android 12 simplesmente voltará ao método padrão de detecção de deslizamento para trás (ou seja, inserções).
Atualmente, a previsão de gesto para trás baseada em ML está desativada por padrão no Android 12 Developer Preview 1. É possível que o Google abandone essa abordagem se ela acabar não sendo superior ao modelo existente baseado em inserções. No entanto, não teremos certeza até que o Google revele o Android 12 Beta em alguns meses, já que é nessa hora que o Google costuma revelar suas maiores mudanças no Android.
Obrigado à PNF Software por nos fornecer uma licença para usar Descompilador JEB, uma ferramenta de engenharia reversa de nível profissional para aplicativos Android.