Webview do sistema Android instalado, mas não usado por aplicativos

16

Baixei e instalei a versão mais recente do sistema Android WebView na loja de aplicativos do meu tablet Android (executando 5.0.2).

Mas os aplicativos ainda continuam usando a versão antiga do webview (39.0.0.0).

Como posso fazê-los trocar?

Para informações, tentei desativar o antigo e ele é reativado quando abro um aplicativo que usa a visualização na web.

Clémentine
fonte
2
Por curiosidade, como você sabe qual versão do Webview um aplicativo está usando?
DukeSilversJazz
1
Tenho vindo a testar com vários aplicativos, como Droidscript e WebView navegador e visitou whatsmyuseragent
Clémentine
Eu li a fonte Lollipop, e isso não deveria estar acontecendo. Ele deve usar o mais recente, a menos que o fabricante substitua a classe WebViewFactory pela sua. Qual dispositivo / modelo exato e versão fornecida pelo fabricante você está executando?
Mufasa 21/03
Olá Musafa, por que você excluiu sua resposta?
Clémentine 21/03
Estou usando tablets de baixo custo e experimentei várias marcas (digiflip da flipkart, time2), vou experimentar o lenovo TAB 2 A7 nos próximos dias
Clémentine

Respostas:

19

Você não pode mudar isso sem raiz.

A estrutura do sistema é codificada para usar um pacote específico para aplicativos que solicitam um componente WebView. Por padrão (no AOSP), ele usa o valor com.android.webview, que é a versão compilada durante o processo de criação do AOSP. Em dispositivos de fabricantes que modificam esse componente, o nome do pacote pode ser diferente. Independentemente disso, para substituir o WebView fornecido com o dispositivo, você deve modificar esse valor com.google.android.webview.

A maneira "manual" de fazer isso seria extrair o arquivo framework-res.apk do seu dispositivo, descompilá-lo e alterar o valor da config_webViewPackageNamevariável de recurso. Ele deve estar localizado /res/values/strings.xmldentro do .apk. Depois de fazer isso, você precisará empacotar tudo e enviar o novo .apk ao seu dispositivo, substituindo o antigo.

Um método alternativo que você pode tentar é instalar a estrutura do Xposed e usar o módulo WebViewGoogle . Se você usa uma ROM personalizada, também pode encontrar um pacote que modifique permanentemente os componentes da estrutura necessários (ou pode ser criado para usar o WebView do Google por padrão).

Minha hipótese seria que essa restrição existe em parte porque o sistema depende de uma implementação do WebView existente de alguma forma; portanto, se ela puder ser modificada por um usuário, poderá interromper o sistema de maneiras estranhas. Também haveria implicações de segurança para permitir que os aplicativos substituíssem o WebView do sistema, como um ator mau tentando fornecer um malicioso sem que o usuário saiba.

Como um ponto de explicação adicional: o motivo pelo qual o System WebView está disponível na Play Store é que os dispositivos Nexus (e possivelmente outros) são enviados com ele pré-instalado e configurado para usá-lo. Com efeito, é o WebView do sistema para esses dispositivos. Assim, o Google pode fornecer atualizações do WebView para esses dispositivos por meio da Play Store, para que os OTAs completos do sistema não sejam necessários apenas para atualizar o navegador / WebView. Existem outros componentes que o Google migrou para a Play Store, atualizando de maneira semelhante, com o raciocínio sendo essencialmente mais rápido. Telefone e contatos foram dois dos mais recentes, com o artigo vinculado fornecendo alguns detalhes adicionais sobre o motivo pelo qual o Google adotou essa abordagem.

eldarerathis
fonte
1
Obrigado por esta explicação .. mas, para que serve este aplicativo webview do sistema Android?
Clémentine 11/03
1
Os dispositivos Clémentine Nexus (possivelmente outros) são enviados com ele pré-instalado e configurado para usá-lo. Com efeito, é o WebView do sistema para esses dispositivos. Assim, o Google pode fornecer atualizações do WebView para esses dispositivos por meio da Play Store, para que os OTAs completos do sistema não sejam necessários apenas para atualizar o navegador / WebView. Existem outros componentes que o Google migrou para a Play Store, atualizando de maneira semelhante, com o raciocínio sendo essencialmente mais rápido.
Eldarerathis 11/03/16
1
por que todos os tablets com pirulito ou sistema operacional mais recente não o usam como o WebView do sistema padrão, parece um desperdício!
Clémentine
1
@ Clémentine O controle do Google sobre fabricantes de terceiros é um pouco limitado. Eles provavelmente poderiam optar por usar o WebView de código fechado do Google da mesma forma que os dispositivos Nexus, mas podem optar por não usar por qualquer motivo. Não tenho certeza dos detalhes específicos sobre como o Google licencia seus aplicativos de código fechado para OEMs, mas esses termos (sejam eles quais forem) podem ser um fator na decisão do fabricante.
eldarerathis
Obrigado por toda essa informação. Lançando luz sobre muitas perguntas que eu tinha no fundo da minha mente. Estará procurando um tablet que o tenha pré-instalado.
Clémentine