Android System WebView¶
Android System WebView — системный компонент операционной системы Android, обеспечивающий отображение веб-содержимого внутри сторонних приложений без их перехода во внешний браузер. Представляет собой специализированный браузерный движок, встроенный в ОС на уровне системного пакета, и поставляется в составе базовой прошивки либо распространяется через Google Play как отдельное обновляемое приложение.
¶Назначение и принцип работы
Компонент реализует интерфейс android.webkit.WebView, который разработчики приложений используют для встраивания веб-страниц в пользовательский интерфейс. Когда приложение запрашивает отображение URL-адреса, системный WebView загружает страницу, выполняет JavaScript, обрабатывает сетевые запросы и рендерит результат в отведённом для него фрагменте экрана.
Типичные сценарии использования:
- отображение пользовательских соглашений и оферты прямо внутри приложения;
- встроенные страницы авторизации через учётные записи Google, социальные сети или корпоративные каталоги;
- веб-части гибридных приложений, собранных с использованием кросс-платформенных фреймворков;
- просмотр справочной и обучающей информации без выхода в полноценный браузер;
- отображение рекламных блоков и аналитических панелей.
Использование общего системного компонента вместо собственного движка в каждом приложении снижает объём занимаемой памяти и позволяет обновлять браузерный стек централизованно, без перевыпуска всех установленных программ.
¶Техническая основа
WebView построен поверх движка Blink (рендеринг) и JavaScript-движка V8, входящих в проект Chromium. До версии Android 5.0 компонент использовал устаревший движок WebKit, после чего Google перевёл реализацию на кодовую базу Chromium.
| Параметр | Значение |
|---|---|
| Пакет | com.google.android.webview |
| Интерфейс для разработчиков | android.webkit.WebView |
| Движок рендеринга | Blink (Chromium) |
| JavaScript-движок | V8 |
| Минимальная версия Android | 4.4 (KitKat) для выделенного пакета |
Начиная с Android 5.0 (Lollipop) WebView выделен в отдельный системный пакет и обновляется независимо от основной прошивки через магазин приложений Google Play. Это решение связано с тем, что браузерный движок требует регулярного выпуска патчей безопасности, а цикл обновления самой ОС значительно длиннее.
¶Производители устройств
На устройствах с официальными сервисами Google WebView поставляется пакет com.google.android.webview, подписанный Google и обновляемый через Google Play. На устройствах без GMS (например, китайские смартфоны или модели, сертифицированные без предустановки сервисов Google) аналогичную роль играет компонент Google Android System WebView, либо производитель может заменить его собственной реализацией на базе Chromium.
Компания Huawei после ограничения сотрудничества с Google перешла на собственный компонент HMS WebView, построенный на форке Chromium. Аналогичные решения используются в ряде китайских прошивок, где системный WebView заменён на локальные браузерные компоненты.
¶Обновления безопасности
WebView считается критически важным компонентом с точки зрения безопасности: через него проходят сетевые запросы, выполняется JavaScript и обрабатываются пользовательские данные. Google регулярно выпускает обновления, закрывающие уязвимости уровня Chromium (CVE). В ряде случаев обновления WebView выходят вне планового цикла Android Security Bulletin — как реакция на обнаруженную уязвимость в эксплуатации.
Поскольку WebView используется множеством приложений одновременно, уязвимость в нём потенциально затрагивает десятки установленных программ, что повышает приоритет его обновления.
¶Отключение компонента
В стандартной конфигурации Android System WebView нельзя удалить без root-доступа. На устройствах с Android 10 и выше пользователь может отключить компонент через настройки приложений, однако это приведёт к отказу в работе всех программ, использующих встроенный веб-контент. На старых версиях ОС (до Android 7.0) WebView иногда конфликтовал с приложением Chrome, которое могло выполнять его роль — в таких случаях система позволяла выбрать один из двух компонентов.
¶Альтернативы
На устройствах без сервисов Google в качестве WebView может использоваться компонент Trichrome WebView, входящий в пакет Google Play System Updates (Project Mainline), либо форки Chromium от производителей. Существуют также независимые реализации, однако они редко получают широкое распространение из-за требований к совместимости с Android Compatibility Test Suite.
Источники:
- Документация Android для разработчиков (developer.android.com) — разделы по WebView и android.webkit
- Chromium Projects — документация по интеграции WebView
- Android Open Source Project (AOSP) — исходный код компонента com.google.android.webview
- Android Security Bulletin, Google
