System Android Webview zainstalowany, ale nie używany przez aplikacje


16

Pobrałem i zainstalowałem najnowszą wersję systemu Android WebView ze sklepu z aplikacjami na moim tablecie z Androidem ( wersja 5.0.2).

Ale aplikacje nadal używają starej wersji Webview (39.0.0.0).

Jak mogę zmusić ich do zmiany?

Aby uzyskać informacje, próbowałem wyłączyć starą, a ona zostaje ponownie włączona po otwarciu aplikacji korzystającej z widoku internetowego.


2
Z ciekawości, skąd wiesz, z której wersji Webview korzysta aplikacja?
— DukeSilversJazz

1
Testowałem z kilkoma aplikacjami, takimi jak Droidscript i WebView Browser, i odwiedziłem whatsmyuseragent
— Clémentine

Przeczytałem źródło Lollipop i to nie powinno się zdarzyć. Powinien używać najnowszych, chyba że producent zastąpił klasę WebViewFactory własną. Jakie dokładnie urządzenie / model i wersję dostarczoną przez producenta używasz?
— Mufasa,

Cześć Musafa, dlaczego usunąłeś swoją odpowiedź?
— Clémentine

Używam tanich tabletów i wypróbowałem kilka marek (digiflip z flipkart, time2), zamierzam wypróbować lenovo TAB 2 A7 w najbliższych dniach
— Clémentine

Odpowiedzi:


19

Nie możesz tego zmienić bez rootowania.

Struktura systemu jest na stałe zakodowana w celu użycia określonego pakietu dla aplikacji żądających komponentu WebView. Domyślnie (w AOSP) używa wartości com.android.webview, która jest wersją kompilowaną podczas procesu kompilacji AOSP. W urządzeniach producentów modyfikujących ten komponent nazwa pakietu może się różnić. Niezależnie od tego, aby zastąpić WebView dostarczony z urządzeniem, musisz zmodyfikować tę wartość, aby była com.google.android.webview.

„ Ręcznym ” sposobem wykonania tego byłoby pobranie pliku framework-res.apk z urządzenia, jego dekompilacja i zmiana wartości config_webViewPackageNamezmiennej zasobu. Powinien znajdować się /res/values/strings.xmlw .apk. Gdy to zrobisz, musisz ponownie spakować wszystko i wcisnąć nowy plik .apk na urządzenie, zastępując stary.

Alternatywną metodą, którą możesz spróbować, jest instalacja frameworka Xposed, a następnie użycie modułu WebViewGoogle . Jeśli używasz niestandardowej pamięci ROM, możesz także znaleźć pakiet, który trwale zmodyfikuje niezbędne komponenty frameworka (lub może zostać zbudowany domyślnie do korzystania z Google WebView).

Moja hipoteza byłaby taka, że ​​to ograniczenie istnieje po części dlatego, że system opiera się na implementacji WebView istniejącej w jakiejś formie, więc jeśli może zostać zmodyfikowany przez użytkownika, może w dziwny sposób uszkodzić system. Mogłyby również mieć wpływ na bezpieczeństwo zezwalanie aplikacjom na przesłonięcie systemowego WebView, na przykład złego aktora próbującego dostarczyć złośliwego, bez wiedzy użytkownika.

W ramach dalszego wyjaśnienia: powodem, dla którego System WebView jest dostępny w Sklepie Play na początek, jest to, że urządzenia Nexus (i ewentualnie inne) są dostarczane z preinstalowanym i skonfigurowanym do korzystania z niego. W rzeczywistości jest to system WebView dla tych urządzeń, dlatego Google jest w stanie zapewnić aktualizacje WebView dla tych urządzeń za pośrednictwem Sklepu Play, dzięki czemu pełne OTA systemu nie są konieczne tylko do aktualizacji przeglądarki / WebView. Istnieją inne składniki, które Google migrowało do Play Store, aktualizując w podobny sposób, przy czym zasadniczo jest to szybsze. Telefon i kontakty były dwiema nowszymi, a link do artykułu zawierał dodatkowe szczegóły na temat tego, dlaczego Google zastosowało to podejście.


1
Dzięki za wyjaśnienie ... ale jaki jest pożytek z tej aplikacji webview systemu Android?
— Clémentine,

1
@ Urządzenia Clémentine Nexus (ewentualnie inne) są dostarczane z preinstalowanym i skonfigurowanym do używania urządzeniem. W rzeczywistości jest to system WebView dla tych urządzeń, dlatego Google jest w stanie zapewnić aktualizacje WebView dla tych urządzeń za pośrednictwem Sklepu Play, dzięki czemu pełne OTA systemu nie są konieczne tylko do aktualizacji przeglądarki / WebView. Istnieją inne składniki, które Google migrowało do Play Store, aktualizując w podobny sposób, przy czym zasadniczo jest to szybsze.
— eldarerathis

1
dlaczego wszystkie tablety z systemem Lollipop lub nowszym systemem operacyjnym nie używają tego jako domyślnego systemu WebView, brzmi jak marnotrawstwo!
— Clémentine

1
@ Clémentine Kontrola Google nad zewnętrznymi producentami jest nieco ograniczona. Prawdopodobnie mogliby zdecydować się na użycie WebView Google'a z zamkniętym źródłem, tak jak robią to urządzenia Nexus, ale z dowolnego powodu mogą tego nie robić. Nie jestem pewien szczegółów dotyczących tego, w jaki sposób Google udziela licencji OEM na aplikacje zamknięte, ale te warunki (niezależnie od tego, jakie mogą być) mogą być czynnikiem wpływającym na decyzję producenta.
— eldarerathis

Dzięki za wszystkie te informacje. Rzucając światło na wiele pytań, które miałem na myśli. Będzie wtedy szukał tabletu, który ma go wstępnie zainstalowany.
— Clémentine,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.