Google quer tornar o Android 15 mais resistente a travamentos do WebView

A estabilidade é um dos pilares da experiência do usuário. Quando um único aplicativo trava ou funciona mal, alguns usuários podem ficar frustrados, perdendo seu progresso ou até mesmo alguns dados. No entanto, se um componente-chave do sistema falhar, um número incontável de aplicativos poderá se tornar inutilizável para milhões de usuários. Isso é exatamente o que aconteceu no passado com o Android System WebView, o componente do qual muitos aplicativos dependem para renderizar conteúdo da web. Felizmente, o Google planeja tornar o WebView mais resistente a travamentos no Android 15 – veja como.



Relacionado

Aqui está tudo de novo que encontramos no Android 15

O que sabemos sobre o Android 15 agora que a primeira prévia do desenvolvedor chegou

Para obter informações básicas, o Android System WebView é essencialmente uma versão simplificada do navegador Chromium fornecido com o sistema operacional Android. Os desenvolvedores podem usar a API WebView do Android para fazer com que o componente WebView renderize uma página da web dentro dos limites de seu aplicativo. Alguns aplicativos usam WebView para renderizar uma única página, enquanto outros o usam para atuar essencialmente como um wrapper móvel para um site inteiro. O impacto de uma falha no WebView varia dependendo do aplicativo; isso pode afetar qualquer coisa, desde um recurso menor, como uma página de ajuda, até a falha na inicialização do aplicativo inteiro.


Android_System_WebView_demo

O componente Android System WebView em um dispositivo Android (esquerda, meio). Um aplicativo Android que usa WebView (à direita).

Em 2021, por exemplo, relatamos uma onda de travamentos misteriosos de aplicativos que afetavam usuários de Samsung, Pixel, Motorola, OnePlus e muitas marcas de smartphones. Conforme informamos na época, as falhas não se limitaram a nenhum tipo específico de aplicativo; aplicativos de todos os tipos, de muitos desenvolvedores diferentes, travavam repetidamente e sem aviso prévio. O Google acabou corrigindo esse problema enviando uma atualização para o componente WebView.


Como o componente WebView é muito importante para a funcionalidade do aplicativo, ele é atualizado por meio da Google Play Store, em vez de atualizações OTA. Isso garante que o Google possa implementar rapidamente alterações para corrigir quaisquer bugs encontrados no componente WebView, como aquele que causou a onda de travamentos em meados de 2021. Ele também garante que a maioria dos dispositivos Android execute versões semelhantes do WebView. Se o Google deixasse as atualizações do WebView nas mãos dos OEMs, poderia levar semanas ou até meses para que alguns dispositivos recebessem atualizações críticas do componente.

Acontece que o Google já depende de OEMs para lançar atualizações em algumas partes do WebView. Enquanto atualizações para o núcleo componente do navegador são gerenciados pelo Google Play há anos, atualizações no núcleo APIs de estrutura que os aplicativos usam para integrar o WebView são gerenciados por OEMs. Isso ocorre porque o Google atualmente não tem como corrigir diretamente o código das APIs principais do WebView. Atualmente, basta atualizar o código no AOSP e aguardar que os OEMs o integrem em seu próximo lançamento.


Relacionado

O que você precisa saber sobre o Project Mainline no Android 14 e além

O Project Mainline oferece atualizações importantes do sistema operacional por meio do Google Play – veja como isso está mudando

É por isso que o Google está trabalhando em um novo módulo do Project Mainline no Android 15 chamado WebViewBootstrap. O Project Mainline é uma iniciativa que o Google introduziu com o Android 10 que modulariza os componentes do sistema operacional para que atualizações de recursos e segurança possam ser entregues por meio do Google Play, em vez de atualizações OTA regulares. Se você já viu uma atualização do sistema do Google Play pendente em seu dispositivo Android, é assim que os módulos do Project Mainline são atualizados.

Embora o repositório de código público do WebViewBootstrap esteja vazio no momento, temos uma ideia do que o Google planeja fazer com este novo módulo graças a duas fontes. De acordo com nossas fontes, o Google planeja mover vários códigos relacionados à API WebView do Android para este novo módulo WebViewBootstrap. Isso inclui código nos seguintes diretórios:

  1. frameworks/base/core/java/android/webkit
  2. frameworks/base/services/core/java/com/android/server/webkit
  3. frameworks/base/nativo/webview


O Google deseja mover esse código para o novo módulo WebViewBootstrap para que possa atualizar o código em situações de emergência, como quando o WebView não consegue iniciar. Nossas fontes nos dizem que o Google pretende apenas enviar correções de bugs por meio de atualizações no módulo WebViewBootstrap, portanto, não haverá nenhuma nova funcionalidade ou alteração de API com a qual os desenvolvedores tenham que se preocupar. Supostamente, este módulo também terá alguns novos recursos de “resiliência” que visam detectar e reparar automaticamente quando o WebView não consegue iniciar.

Aparentemente, o plano é que este novo módulo seja lançado com Android 15. No entanto, pode ser opcional para os OEMs incluírem em suas próprias compilações, pelo menos no próximo lançamento. Em vez disso, o Google aparentemente planeja torná-lo obrigatório na versão seguinte, ou seja, Android 16. O módulo WebViewBootstrap não apareceu na versão pública Developer Preview 1 do Android 15, mas ficaremos de olho para ver se ele chega na visualização do desenvolvedor 2.