Що за програма Android System Webview і для чого вона потрібна? Android System WebView - що це за програма, чи можна видалити? Для чого потрібний додаток android system webview

На зустрічі AndroidDevs Meetup виступили кілька розробників з команди месенджера ICQ. Моя доповідь була присвячена Android WebView. Для всіх, хто не зміг приїхати на зустріч, публікую статтю з мотивів виступу. Піду верхами, великими штрихами. Глибоких технічних деталей і багато коду не даватиму. Якщо вас зацікавлять подробиці, за посиланням наприкінці посту можна завантажити програму, спеціально написану як ілюстрацію, і все побачити на прикладах.

Питання та відповіді

Запитання:Є проект CrossWalk – це стороння реалізація WebView, що дозволяє на старих пристроях використовувати новий Chrome. У вас є якийсь досвід, чи ви пробували його вбудовувати?
Відповідь:Я не пробував. На даний момент ми підтримуємо Android починаючи з 14 версії і вже не орієнтуємося на старі пристрої.

Запитання:Як ви боретеся з артефактами, які залишаються при промальовуванні WebView?
Відповідь:Ми з ними не боремося, пробували – не вийшло. Це не на всіх пристроях. Вирішили, що це не така кричуща проблема, щоб витрачати на неї більше ресурсів.

Запитання:Іноді WebView потрібно вкласти в ScrollView. Це негарно, але іноді потрібно за завданням. Це не заохочується, навіть десь забороняється і після цього виникають недоліки в роботі. Але все одно іноді це доводиться робити. Наприклад, якщо ви зверху малюєте WebView, а під ним малюєте якийсь нативний компонент (який має бути нативним згідно з вимогою), і все це має бути виконано у вигляді єдиного ScrollView. Тобто спочатку користувач подивився б усю сторінку, а потім, якби захотів, то догортав би цих нативних компонентів.
Відповідь:На жаль, не можу вам відповісти, тому що я не стикався з такою ситуацією. Вона досить специфічна, і уявити варіант, коли потрібно WebView покласти в ScrollView, мені складно.

Запитання:Є поштова програма. Там зверху шапка з одержувачами та з усім іншим. Навіть у цьому випадку не все буде гладко. У WebView виникають великі проблеми, коли він намагається визначити свій розмір усередині ScrollView.
Відповідь:Можна спробувати відобразити цю частину UI всередині WebView.

Запитання:Тобто повністю перенести всю логіку з нативної частини до WebView та залишити ці контейнери?
Відповідь:Навіть, можливо, логіку переносити не треба, мається на увазі інжектування Java-класів. Логіку можна залишити та викликати через інжектований клас. У WebView можна перенести лише UI.

Запитання:Ви згадували про ігри у месенджері. Вони є web-додатками?
Відповідь:Так, це web-сторінки з JavaScript всередині WebView.

Запитання:Ви все це робите, щоб просто не переписувати ігри нативно?
Відповідь:І для цього також. Але основна ідея в тому, щоб дати стороннім розробникам можливість створювати програми, які можуть вбудовуватися в ICQ, і за допомогою цього ICQ Web API взаємодіяти з месенджером.

Запитання:Тобто ці ігри можна грати також через web-браузер на лептопі?
Відповідь:Так. Вона може бути відкрита у web-браузері, і ми іноді їх прямо в ньому налагоджуємо.

Запитання:А якщо Intent, припустимо, в Chrome прокинути цю іграшку, які тоді проблеми будуть? Якщо не свою WebView писати, а користуватися послугами?
Відповідь:Проблема в тому, що у своєму WebView ми можемо надати API через інжектування Java-класу, і за допомогою цього API програма зможе безпосередньо взаємодіяти з ICQ, надсилати йому різні команди. Допустимо, команду на отримання імені користувача, на отримання чатів, які у нього відкриті, надсилати повідомлення в чат безпосередньо з ICQ. Тобто з Chrome відправляти повідомлення безпосередньо до ICQ не вийде. У нашому випадку це можливо.

Запитання:Ви згадали, що ріжете дані на шматки по одному мегабайті. Як ви їх потім збираєте?
Відповідь:Ми зараз цього не робимо, тому що ми не маємо такої потреби.

Запитання:Чи вистачає одного мегабайта?
Відповідь:Так. Якщо картинки більше, то намагаємося їх стискати. Я сказав про те, що якщо така потреба існує, то це може бути рішенням – розрізати та збирати потім у Java.

Запитання:Як ви забезпечуєте безпеку роботи програм у пісочниці? Чи правильно я зрозумів, що з JavaScript програми потрібно викликати інжектовані Java-класи?
Відповідь:Так.

Запитання:Як буде забезпечуватись у цьому випадку безпека, чи заборонено доступ до якихось системних функцій?
Відповідь:Прямо зараз, оскільки система ще досить молода, у нас в основному використовуються наші власні web-додатки, і ми повністю довіряємо їм. Надалі всі додатки, які надходитимуть до нас, адмініструватимуться, код буде переглядатися, для цього виділено спеціальну Security Team. Додатково буде створено спеціальну систему дозволів, без яких програми не зможуть отримати доступ до якоїсь критичної для користувача інформації.

Користувачі пристроїв на базі ОС Android, переглядаючи список встановленого програмного забезпечення, знаходять серед знайомого софту та системні програми, про які нічого не знають. Одна з таких програм – Android System WebView. Її можна знайти в числі запущених програм або, отримавши повідомлення про оновлення. Іноді при ручному очищенні з метою звільнення місця в пам'яті пристрою недосвідчені користувачі зносять все, що потрапляє під руку, при цьому деякі системні компоненти краще не чіпати, щоб уникнути нанесення шкоди системі. Звичайно, такі програми без root-прав не видалити, але навіть зупинка їх роботи може спричинити неприємні наслідки. Так, небажаним є видалення софту Android System WebView.

Призначення програми Android system webview.

Закономірним бажанням користувача, що вперше виявив софт, буде дізнатися, що це за Android System WebView і які завдання виконує цей софт, а також чи можна видаляти його. Програма, що працює на базі Chrome, встановлена ​​і є системним компонентом ОС Android, вона застосовується для обробки веб-контенту всередині різних програм, в результаті чого немає необхідності переходу до браузера. Тобто, завдяки WebView, вміст сайтів може відображатися прямо в програмах. Якщо взяти приклад програми соцмереж, то при перегляді стрічки новин і переході за посиланнями ви не будете перенаправлені в браузер, а побачите контент, не залишаючи месенджера. У цьому полягає суть функціонування даного інструменту, і тепер ви маєте уявлення, що таке Android System WebView. Системний софт за замовчуванням встановлюється на пристрої Android 4.2.2 і вище. Якщо на девайсі його немає, наприклад, ви видалили його, використовуючи рут-доступ, не знаючи, що це за програма, встановити додаток можна з магазину Play Market, звідси ж скачуються і оновлення. При цьому краще використовувати WebView, починаючи з версії Android 5.0 через залучення великої кількості ресурсів, що вантажить пристрій численними процесами (споживання пам'яті та ін безпосередньо залежить від кількості запущених програм та ігор). Крім того, підтримка продукту для ранніх версій ОС припинена.

Які програми використовують Android System WebView

Розглядаючи для чого потрібен софт, щоб було наочно, наведемо в приклад кілька програмних продуктів, які використовують System WebView як засіб для перегляду інтернет-контенту в своєму середовищі:

Це лише невеликий список програмного забезпечення, що використовує WebView. Програми погоди, соціальних мереж, месенджери та багато інших мають цю вбудовану опцію. Розробники софту можуть додати функціональність браузера у свій продукт, для чого потрібно впровадити в нього бібліотеку WebView, встановити компонент у макеті та ініціалізувати у коді. Необхідно також включити підтримку JavaScript, щоб сторінки, де він реалізований, коректно працювали, та додати дозволи на доступ до Інтернету. Щоб користувачі змогли відкривати посилання прямо всередині софту, знадобиться встановлення WebViewClient.

Як увімкнути Android System WebView

На Android 7 версії та вище служба неактивна за замовчуванням. Ці завдання покладено на інструменти Google Chrome та вбудовані програми. Тобто, особливої ​​потреби в активації софту немає, але якщо ви хочете, щоб працював не Chrome, а WebView, перша служба відключається і включається Android System WebView, оскільки разом вони не функціонують. Виконати активацію можна різними методами.

Спосіб перший:

  • У розділі "Програми" знаходимо Google Chrome і відключаємо натисканням відповідної кнопки.
  • Встановлюємо або оновлюємо Android System WebView із Play Market.
  • Тепер залишилося запустити будь-який софт, що використовує WebView, і службу буде запущено в автоматичному режимі. Допустимо, перейдемо з налаштувань девайса в розділ «Про пристрій» – «Юридична інформація» та виберемо «Правова інформація Google», потім відкриємо будь-яке посилання.
  • Програма WebView буде активована, але при включенні Chrome знову відключиться.

Спосіб другий:

Виконати процедуру трохи складніше, до того ж не завжди можливо, але якщо першим способом не вдалося підключити службу, робимо таке:

  • Йдемо в налаштування та в розділі «Про телефон» вибираємо «Номер збирання».
  • Декількома натисканнями активуємо режим розробника (тиснемо до отримання відповідного повідомлення).
  • У розділі "Для розробників" знаходимо "Сервіс WebView".
  • Тут можна буде вибрати засіб обробки веб-посилань всередині додатків.

Можливі проблеми та способи їх вирішення

Як правило, сервіс справно працює, але іноді все ж таки можливе виникнення помилок. Оскільки WebView для версій Android до п'ятої версії більше не підтримується, це спровокувало появу вразливостей у програмі. Повідомлення, що повідомляють про збій, можуть з'являтися під час запуску деяких програм, ігор або браузера. Виправлення помилки полягає в очищенні даних програми. Щоб це зробити виконуємо наступне:

  • Переходимо до налаштувань девайсу, вибираємо «Додатки».
  • У списку софту знаходимо Android System WebView (ASW), натискаємо.
  • Тут тиснемо кнопку «Очистити дані» та «Очистити кеш».

У деяких випадках спосіб не працює. Також можна спробувати зупинити службу та видалити оновлення, після чого завантажити повне оновлення System WebView. Крім того, не зайвим буде перевірити, чи достатньо пам'яті на пристрої, іноді може допомогти переміщення програми на карту SD. Нерідко користувачам набридає спливаюче повідомлення про необхідність оновлення програмного забезпечення. Проблема виправляється просто:

  • Ідемо до магазину додатків Google Play Market та оновлюємо компонент ASW.
  • При повторенні помилки, що можливо на пристроях з Android 7 і вище, слід оновити і Google Chrome.

Якщо всі методи виправлення збоїв у роботі служби виявилися безсилими, залишається скинути заводські налаштування, попередньо зробивши резервну копію даних. Але це крайній захід і найчастіше вдаватися до таких дій не доводиться.

Як видалити програму Android System WebView

Можливість видалення будь-якого софту є завжди, нехай і не явна, як у випадку з системними компонентами. Побачивши в процесах ненажерливість Android System WebView, багато користувачів запитують, чи можна видалити цю програму. У стандартному режимі системний софт не видалиш, так що, якщо мета варто повністю позбутися служби, доведеться повозитися з отриманням root-прав, що дозволяють робити з операційною системою все, що душі завгодно. При цьому рут-доступ є не єдиним рішенням, за допомогою якого можна зупинити діяльність програми.

Видаляти System WebView вкрай не рекомендується, якщо у вас Android нижче сьомої версії, оскільки це спричинить ряд помилок і збоїв. Службу використовують багато програм, тому на коректність їх роботи після видалення або відключення інструменту не варто і розраховувати. Крім відсутності можливості відкриття вбудованих посилань всередині програм ви отримаєте й інші збої в системі, причому проблема може набути досить серйозної форми, наприклад, висловившись у вигляді циклічного перезавантаження пристрою. Тепер перейдемо до питання, чи можна відключити службу Android System WebView, якщо рут-прав все ж таки немає, у вас операційна система сьомої версії або вище, а програма ви не вважали для себе корисною. У цьому випадку можна тільки зупинити. Для цього виконуємо наступні дії, які застосовуються для зупинення будь-якого софту Android:

  • Йдемо в налаштування пристрою.
  • Переходимо до розділу «Програми».
  • Вибираємо зі списку Android System
  • Тиснемо кнопки "Зупинити", "Видалити оновлення", потім "Очистити дані".
  • Ці дії зупинять роботу програми.

Ми не рекомендуємо видаляти системні програми. Рут-права в невмілих руках можуть нашкодити пристрою, хоча і без них деякі дії користувача ще більш руйнівні, ніж віруси і здатні завдати чималої шкоди системі.

Що ж стосується саме WebView, то якщо на вашому смартфоні підтримується альтернативний софт, і ви вирішили користуватися іншим інструментом, який виконує ті ж завдання, служба буде просто неактивна, так що переживати про використання її ресурсів не варто.

Це системна програма від Google Inc. Далеко не всі користувачі знають про те, для чого призначена ця програма і чому вона взагалі встановлена ​​на мобільному пристрої.

Характеристика

Купили новий мобільний Андроїд-пристрій, виявили цей додаток і не розумієте, для чого він? У цьому немає нічого дивного, адже так реагує переважна більшість користувачів. Перед вами системна утиліта компанії Google Inc. Це системна опція, створена на базі технологій Chrome.

За допомогою неї ви зможете переглядати різні контенти в Інтернеті. Якщо висловитися простою мовою, це програмне забезпечення дозволяє запускати посилання прямо з працюючих додатків. Таким чином, вам не доведеться згортати відкрите вікно і запускати браузер для того, щоб відкрити те чи інше посилання.

Особливості

Цей софт встановлено в мобільних пристроях, що працюють під керуванням ОС Андроїд, за замовчуванням. Так як це системна утиліта, видалити її буде не так просто. Звичайним користувачам доступні лише такі функції, як очищення кешу, увімкнення та вимкнення програми, а також оновлення. Останні, до речі, виходять із завидною регулярністю.

Одним з головних недоліків програми є те, що він вимагає досить багато ресурсів, і при цьому його важко позбутися. Особливо це відчутно на слабких та бюджетних мобільних пристроях.

У нас ви можете безкоштовно скачати Android System WebView останньої версії для Android.

На зустрічі AndroidDevs Meetup виступили кілька розробників з команди месенджера ICQ. Моя доповідь була присвячена Android WebView. Для всіх, хто не зміг приїхати на зустріч, публікую статтю з мотивів виступу. Піду верхами, великими штрихами. Глибоких технічних деталей і багато коду не даватиму. Якщо вас зацікавлять подробиці, за посиланням наприкінці посту можна завантажити програму, спеціально написану як ілюстрацію, і все побачити на прикладах.

Питання та відповіді

Запитання:Є проект CrossWalk – це стороння реалізація WebView, що дозволяє на старих пристроях використовувати новий Chrome. У вас є якийсь досвід, чи ви пробували його вбудовувати?
Відповідь:Я не пробував. На даний момент ми підтримуємо Android починаючи з 14 версії і вже не орієнтуємося на старі пристрої.

Запитання:Як ви боретеся з артефактами, які залишаються при промальовуванні WebView?
Відповідь:Ми з ними не боремося, пробували – не вийшло. Це не на всіх пристроях. Вирішили, що це не така кричуща проблема, щоб витрачати на неї більше ресурсів.

Запитання:Іноді WebView потрібно вкласти в ScrollView. Це негарно, але іноді потрібно за завданням. Це не заохочується, навіть десь забороняється і після цього виникають недоліки в роботі. Але все одно іноді це доводиться робити. Наприклад, якщо ви зверху малюєте WebView, а під ним малюєте якийсь нативний компонент (який має бути нативним згідно з вимогою), і все це має бути виконано у вигляді єдиного ScrollView. Тобто спочатку користувач подивився б усю сторінку, а потім, якби захотів, то догортав би цих нативних компонентів.
Відповідь:На жаль, не можу вам відповісти, тому що я не стикався з такою ситуацією. Вона досить специфічна, і уявити варіант, коли потрібно WebView покласти в ScrollView, мені складно.

Запитання:Є поштова програма. Там зверху шапка з одержувачами та з усім іншим. Навіть у цьому випадку не все буде гладко. У WebView виникають великі проблеми, коли він намагається визначити свій розмір усередині ScrollView.
Відповідь:Можна спробувати відобразити цю частину UI всередині WebView.

Запитання:Тобто повністю перенести всю логіку з нативної частини до WebView та залишити ці контейнери?
Відповідь:Навіть, можливо, логіку переносити не треба, мається на увазі інжектування Java-класів. Логіку можна залишити та викликати через інжектований клас. У WebView можна перенести лише UI.

Запитання:Ви згадували про ігри у месенджері. Вони є web-додатками?
Відповідь:Так, це web-сторінки з JavaScript всередині WebView.

Запитання:Ви все це робите, щоб просто не переписувати ігри нативно?
Відповідь:І для цього також. Але основна ідея в тому, щоб дати стороннім розробникам можливість створювати програми, які можуть вбудовуватися в ICQ, і за допомогою цього ICQ Web API взаємодіяти з месенджером.

Запитання:Тобто ці ігри можна грати також через web-браузер на лептопі?
Відповідь:Так. Вона може бути відкрита у web-браузері, і ми іноді їх прямо в ньому налагоджуємо.

Запитання:А якщо Intent, припустимо, в Chrome прокинути цю іграшку, які тоді проблеми будуть? Якщо не свою WebView писати, а користуватися послугами?
Відповідь:Проблема в тому, що у своєму WebView ми можемо надати API через інжектування Java-класу, і за допомогою цього API програма зможе безпосередньо взаємодіяти з ICQ, надсилати йому різні команди. Допустимо, команду на отримання імені користувача, на отримання чатів, які у нього відкриті, надсилати повідомлення в чат безпосередньо з ICQ. Тобто з Chrome відправляти повідомлення безпосередньо до ICQ не вийде. У нашому випадку це можливо.

Запитання:Ви згадали, що ріжете дані на шматки по одному мегабайті. Як ви їх потім збираєте?
Відповідь:Ми зараз цього не робимо, тому що ми не маємо такої потреби.

Запитання:Чи вистачає одного мегабайта?
Відповідь:Так. Якщо картинки більше, то намагаємося їх стискати. Я сказав про те, що якщо така потреба існує, то це може бути рішенням – розрізати та збирати потім у Java.

Запитання:Як ви забезпечуєте безпеку роботи програм у пісочниці? Чи правильно я зрозумів, що з JavaScript програми потрібно викликати інжектовані Java-класи?
Відповідь:Так.

Запитання:Як буде забезпечуватись у цьому випадку безпека, чи заборонено доступ до якихось системних функцій?
Відповідь:Прямо зараз, оскільки система ще досить молода, у нас в основному використовуються наші власні web-додатки, і ми повністю довіряємо їм. Надалі всі додатки, які надходитимуть до нас, адмініструватимуться, код буде переглядатися, для цього виділено спеціальну Security Team. Додатково буде створено спеціальну систему дозволів, без яких програми не зможуть отримати доступ до якоїсь критичної для користувача інформації.

Мережева безпека