Зачем Android нужен WebView и как он работает
Несмотря на то что почти все смартфоны на Android получают новые версии ОС только два года, Google худо-бедно старается их поддерживать в актуальном состоянии ещё какое-то время путём обновления своих сервисов. Для этого поисковый гигант просто рассылает апдейты через Google Play, чтобы те пользователи, которым уже не светят традиционные обновления, могли получить запланированные нововведения и экстренные баг-фиксы. Однако, многие, как показала практика, этого не знают, и, видя, как системные компоненты с непонятными им названиями, спрашивают, например, что такое WebView и зачем это нужно. Восполняю пробел.

Вы много раз видели Android System WebView, но наверняка не знаете, что это и зачем нужно
Вы могли видеть WebView, полное название которого Android System WebView, в двух местах: в каталоге Google Play и в разделе «Приложения». Причём мелькает он заметно чаще других, периодически получая обновления и фигурируя в описаниях обновлений стороннего софта, разработчики которого почему-то считают необходимым упомянуть его. Прямо-таки в каждой бочке затычка. Однако, если разобраться чуть глубже, всё становится на свои места.
Что такое Android WebView

WebView — это встроенный браузер для приложений
WebView – это системный компонент, или, проще говоря, приложение, которое отвечает за открытие веб-страниц в рамках других приложений. Думаю, вам не раз приходилось открывать ту или иную ссылку в мессенджере, социальной сети или клиенте электронной почте. Так вот, если вы заметили, почти всегда нажатие на ссылку приводит к тому, что она открывается в интерфейсе самого приложения, вместо того чтобы перенести вас в браузер. Таким образом разработчику проще отслеживать ваши действия, поскольку получить их из стороннего браузера у него не выйдет.
Google рассказала, что изменится в Google Chrome после обновления
Но поскольку Android System WebView является, по сути, самостоятельным компонентом, периодически пользователи сталкиваются с проблемами в его работоспособности. Одни уверяют, что WebView не работает, другие сообщают, что WebView не обновляется, а третьи – что WebView недоступен. Казалось бы, причины у этих проблем могут быть самые разные и, чтобы что-то советовать пользователям, которые с ними столкнулись, нужно хотя бы разузнать дополнительные подробности или по крайней мере худо-бедно разбираться в разработке приложений и особенностях функционирования системных компонентов. Но нет.
WebView и Google Chrome
В конце прошлого года Google интегрировала в Android System WebView компонент Chrome WebView. Проще говоря, компания просто сделала так, что теперь все ссылки в сторонних приложениях будут открываться в виджете Chrome, который будет встроен во все программы по умолчанию. Поисковый гигант объяснил это тем, что это позволяет снизить нагрузку на ресурсы устройства и облегчит эффективность обновления. Но, как показывает практика, это только лишний раз запутало пользователей, которые вообще перестали понимать, что им делать в случае возникновения проблем.
Samsung хочет, чтобы Chrome для Android получил поддержку расширений
А, между тем, всё очень просто. Несмотря на то что Android System WebView по-прежнему обновляется самостоятельно, он глубоко связан с Google Chrome. Поэтому, когда вы сталкиваетесь с перебоями в работе системного компонента, вам нужно не искать обновления для него, а установить апдейт браузера.
Как обновить Android WebView
- Для этого перейдите в Google Play и свайпните от левого края экрана;
- Перейдите во вкладку «Мои приложения и игры;

Зачастую обновлять следует не Android System WebView, а Google Chrome
- В открывшемся окне нажмите «Обновить всё» или отыщите Google Chrome и обновите его;
- Для надёжности рекомендуется обновить и Android System WebView, если для него тоже доступно обновление.
Chrome загружает процессор и жрёт зарядку? Google всё исправит
На первый взгляд, может показаться, что всё это глупости, и на самом деле обновления ничего не решают, но это не так. В прошлом Google неоднократно выпускала такие патчи, которые возвращали работоспособность системных компонентов, от которых во многом зависела и работа сторонних приложений. Последний такой случай произошёл в декабре прошлого года, когда из-за сбоя в Chrome пользователи лишились возможности открывать ссылки в приложениях, которые к Google не имеют никакого отношения. Поэтому не пренебрегайте обновлениями. Они выходят для вас.
Браузер-паразит на Android System WebView. Кто каким пользуется?
Адмирал Джа́сенфиг ответственно заявляет, что Android System WebView — это такой Google Chrome внутри Андроида, лишенный собственного гуя, и назначенный показывать всякое интернетное через гуи всяких программ, лишенных собственного WebView. Легковесные браузеры для Android — это просто GUI для Android System WebView, или (так смешнее же) паразиты на нём. На этом Адмирал Джа́сенфиг сэй гудбай.
Как-то вот мне не особо логичным кажется тащить в телефон еще один Google Chrome, если браузер в телефоне мне нужен редко. Firefox — хорошо, но зачем мне Firefox в телефоне?
Хочу просто нашлепку на System WebView. Кто чем таким пользуется?


назначенный показывать всякое интернетное
Всякое с дренейками?
Как-то вот мне не особо логичным кажется тащить в телефон еще один Google Chrome, если браузер в телефоне мне нужен редко. Firefox — хорошо, но зачем мне Firefox в телефоне?
Ну, у каждого браузера есть свои «киллер фичи», которые помогают отличить один браузер от другого. Особенно, когда тебе необходимы некоторые особенности конкретной сборки браузера «на руках».
А синхронизация Google/Firefox аккаунта с браузером, где лежат все твои пароли и истории взаимодействия с браузером, а на сторонних сервисах лежат все твои данные (к примеру, Google Drive или Yandex Disk) — всегда удобно.
Хочу просто нашлепку на System WebView. Кто чем таким пользуется?
Имеется ввиду легковесный браузер под Android?
Я пользуюсь Via (Google Play). Via — самый простой и быстрый из всех браузеров мной замеченных.

Пробовал когда-то. У него apk что-то около метра весил, это и привлекло. Из-за чего выкинул — не помню. Надо еще раз глянуть будет. Спасибо за напоминание.
Android System WebView — это такой Google Chrome внутри Андроида,
Сильное заявление, проверять я его конечно не буду.
Легковесные браузеры для Android — это просто GUI для Android System WebView, или (так смешнее же) паразиты на нём.
Вы так говорите, будто вам от этого хуже.
Пользователи могут выбирать подходящий им GUI одинаковых приложений, а программисты пускай велосипедят дальше. 🙂
назначенный показывать всякое интернетное через гуи всяких программ,
Показывать — одно, работать с «гуи всяких программ» для «всякое интернетное» — это другое.
На этом Адмирал Джасенфиг сэй гудбай.
Главное — это вовремя/красиво свалить.
//«Google Check» предлагает мне заменить «Джасенфиг» на «Ясен Фиг». 😀

Google/Firefox аккаунта с браузером, где лежат все твои пароли
Сами сдаёте все свои пароли. Товарищ майор поддерживает инициативу.
Заучить настройки и возможности нужно, а всё необходимое (то, что не сразу замечают) лежит в «Tools». Не хочешь привыкать — кастомизируй, Via тебе не запрещает.
Надо еще раз глянуть будет. Спасибо за напоминание.
Стой, я ещё не закончил!
Тем не менее, рекомендую попробовать Opera Mini, как кастрированную версию Opera (и также как мой любимый браузер на Windows CE в прошлом).
Сами сдаёте все свои пароли. Товарищ майор поддерживает инициативу.
Раньше пользовался KeePass, сидел под OpenBSD под сетью Tor, удалял Windows всех своих близких/друзей и устанавливал Ъ-GNU/Linux дистрибутивы под влиянием моих мотивационных фразочек про Linux и его будущее на Desktop’е (а ещё раньше — делал крутой вид хацкера в школе, мол, «в Linux’ах живу и вам советую, рабы проприетарных систем»).
Потом… Эм… Мне показали сравнение пользователей всяких пересборок Ubunt’ с пользователями MacOS/OSX… Возможно, это было правдой…
Чем заменить android system webview
Android System WebView
Версия: 111.0.5563.58
Последнее обновление программы в шапке: 07.03.2023





Краткое описание:
Системный компонент Android для обработки веб-контента в приложениях Android.
Системный компонент Android WebView работает на базе технологий Chrome и позволяет просматривать веб-контент в приложениях Android. Он уже установлен на вашем устройстве. Чтобы обеспечить его безопасность и высокую производительность, не забывайте обновлять его.
Android System WebView что это?
Почему так много вопросов, что это за штука такая? О, ответ прост – информации по ней немного, а все комментарии, в которых обычно пользователи разъясняют спорные моменты, по нашим русским традициям забиты шутками с разной долей юмора.
На самом деле, сущность Android System WebView предельная ясна – это системный компонент, аналог веб-браузера, благодаря которому вы можете просматривать страницы. Он с самого начала будет установлен на вашем устройстве и единственное, что от вас нужно, так это его обновление. С помощью WebView вы сможете отобразить любой контент на смартфоне, включая ваш собственный. Построен этот компонент на движке WebKit, что позволяет ему загружать страницы так же, как Chrome или Safari. В общем, вещь необходимая, тем более, что платить за неё не надо.
Однако в ней есть и проблемы. Во-первых, пользователи жалуются, что порой WebView до неприличного много жрёт памяти, и отобрать свои родимые мегабайты не так-то просто. Универсальное решение трабла так и не найдено. Во-вторых, отказ выпуска обновлений для более старых версий андроида, начиная с 4.3. Причины? «Не хотим и не будем пересматривать код». При этом любому понятно, что уязвимость движка браузера означает уязвимость приложений системы – все они так или иначе с ним связаны.
Источник>>
Crosswalk Project — замена Android WebView. Интеграция в проект

Эта статья откроет небольшой цикл из двух частей, посвященных интересному проекту под названием Crosswalk Project. В них я затрону вопросы интеграции Crosswalk в Android приложение и использовании его как замену системного WebView в обычном приложении.
Под «обычным» я подразумеваю классический проект на Java с использованием Android SDK, в противовес HTML5 приложениям и нативному C++ коду. А т.к. Crosswalk в основном используется как runtime запуска HTML5 приложений, то, чтобы не путаться в терминах, буду называть этот проект обычным.
В первой части я хочу рассказать непосредственно об интеграции Crosswalk в Android приложение и использовании Crosswalk WebView вместо системного Android WebView. Во второй части я опишу некоторые нюансы и сложности в работе с Crosswalk при интеграции, а также сделаю общие выводы.
Что же такое Crosswalk?
Crosswalk Project — это runtime построенный на технологиях open source для HTML приложений. Основой для Crosswalk Project служит Google Chromium. Crosswalk Project также и сам является open source проектом и распространяется под BSD License.
Crosswalk расширяет существующие возможности web платформы, ниже небольшой список особенностей, отмеченных создателями.
- Использовать все возможности, доступные в современных web браузерах: HTML5, CSS3, JavaScript.
- Иметь доступ к последним рекомендованным и развивающимся web стандартам.
- Использовать экспериментальные API, недоступные в большинстве основных web браузеров.
- Контролировать цикл обновления приложения путем распространения с собственной средой выполнения.
- Добавлять специальные расширения к приложению для увеличения количества специфических особенностей не предоставляемых Crosswalk или стандартной web платформой.
Crosswalk может использоваться как замена системного WebView в обычном Android проекте. Официально Crosswalk поддерживает все версии Android начиная с 4.0 и выше. В этом случае мы получаем самостоятельный браузер, который позволит нам не зависеть от версии Android и ограничений реализации WebView в этой версии системы.
Компоненты Crosswalk.
Создатели Crosswalk не предполагали своей целью полную совместимость с системным WebView. Однако, в общем мы имеем достаточно близкую копию интерфейсов системного браузера до версии Android 4.4, с которой системный WebView также начал базироваться на Chromium. Поэтому, и к большому сожалению, в Crosswalk вы не найдете очень удобного и доступного с Android API 21 вызова:
С версии Crosswalk 10 авторы решили еще дальше отойти от стандартных интерфейсов и добавили некоторые дополнительные вызовы в свой публичный API. Javadoc для различных версий Crosswalk вы можете найти на официальном сайте, ниже я рассмотрю несколько важных моментов для 14ой версии, последней релизной версии на данный момент.
- XWalkResourceClient — калбэки и события при загрузке ресурсов.
- XwalkUIClient — калбэки и события для UI.
- XWalkNavigationHistory — история переходов в XWalkView.
- XWalkPreferences — настройки среды Crosswalk.
- JavascriptInterface — аннотация для методов, которые будут доступны из JavaScript. Идентична системной аннотации.
Интеграция Crosswalk в проект.
Исходный код с интегрированным XWalkView и описанными решениями доступен в GitHub.
В целом интеграция Crosswalk достаточно проста, если вам необходимо интегрировать Crosswalk в проект разрабатываемый с помощью Eclipse/ADT, то есть отличный официальный гайд по этому поводу. Здесь мы рассмотрим интеграцию в проект с использованием Android Studio. По сути она заключается в подключении библиотеки Crosswalk, все остальные операции не сильно отличаются от использования стандартного WebView.
1. Необходимо создать новый проект в Android Studio. Я, для примера, создал проект с пустой Activity и поддержкой начиная с API 14.
2. Подключить репозиторий со сборками Crosswalk и выбрать саму сборку проекта. Я использую последнюю доступную с версией 14.43.343.17:
3. Добавить в AndroidManifest.xml разрешения для использования сети и т.д.:
Полный список разрешений описан в официальном гайде, указанном выше. Он включает в себя доступ к местоположению, камере, записи аудио. Для простой реализации браузера все они не нужны. В примере указываем только разрешения для доступа собственно в интернет и записи в хранилище, для хранения кэша Crosswalk.
4. Добавить XWalkView в layout там, где вы хотите его использовать. Простой пример:
5. Для загрузки url в коде вашей Activity необходимо добавить следующие вызовы:
6. Аналогично системному WebView, можно подключить классы для получения оповещений от XWalkView:
Дополнительно, если вы хотите использовать XWalkView как базу для своего HTML5 приложения, можно переопределить методы onActivityResult, onNewIntent и другие для трансляции сообщений в Crosswalk. Например, onActivityResult используется в том числе для обработки событий от JavaScript диалоговых окон. К этому можно добавить, что для HTML5 приложений имеет смысл наследоваться от XWalkActivity, в котором уже реализованы все нужные моменты.
Некоторые нюансы реализации.
- XWalkView использует SurfaceView либо TextureView для отрисовки. Поэтому оно достаточно быстро отрисовывается как на устройствах, так и в эмуляторе. Однако, это создает проблемы при анимации и работе с изображением XWalkView.
- Базовым view является SurfaceView, если вы хотите анимировать XWalkView, то необходимо использовать TextureView. Для выбора необходимо установить параметр через класс XWalkPreferences, до создания самого XWalkView:
Более сложные моменты и их возможные решения я описал во второй статье, чтобы не углубляться при быстром ознакомлении.