Багатопроцесорний webview. Android 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 System Webview. Одні бачили цю назву в списках запущених додатків, інші ж отримували повідомлення з таким найменуванням. У зв'язку з цим і виникають питання: що це за додаток або процес, чому воно просить оновитися, як видалити або зупинити і багато інших. І якщо ви читаєте цю статтю, значить вам теж цікаво більш детально дізнатися про все це.

Що це таке?

Android System Webview - служба операційної системи Андроїд, яка предустановленна в ній за замовчуванням. Вона необхідна для перегляду сторінок в інтернеті без запуску браузерів. Використовується для відображення вмісту сайту всередині додатків. Наприклад, ви завантажили програму з новинами. Всі ці новини завантажуються з оригінальних сайтів, проте відображаються не в браузері, а всередині цього самого додатка. Так ось, щоб такий принцип дії був можливий, і призначена служба Android System Webview.

Ця програма вперше було встановлено в Android 4.2.2 і вище, тобто, в більш ранніх версіях його не було. Також в сервісі Google Play воно поширюється окремо і постійно оновлюється, тому, якщо у вас його немає на смартфоні, можна скачати з цього сервісу найновішу версію.

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

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

Деякі стандартні програми, які встановлені в вашому смартфоні, за замовчуванням використовують цю службу, щоб відображати вміст, наприклад, ICQ Messenger, Google Play Преса, Puffin Browser і багато інших, тому в цілому можна сказати, що це невід'ємна частина в Android, яка необхідна для коректного відображення даних в вашому смартфоні.

Але все залежить від версії операційної системи, яка використовується у вашому гаджеті. Справа в тому, що починаючи з Android 7 Nougat, Android System Webview більше не використовується і за замовчуванням вимкнено. Всі опції, які воно виконувало раніше, тепер дублюються в Google Chrome, власному браузері від Google. Також частина операцій можуть і зовсім виконуватися через додатки розробників, минаючи зайві процеси.

Як видалити додаток Android System Webview

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

Другий момент - навіть якщо у вас буде версія вище Андроїд 7, необхідна наявність root-прав. Якщо ви впевнені, що воно вам не потрібно, видалити можна в такий спосіб:

Якщо ви вирішите заново активувати цю службу, це можна зробити, зайшовши в Google Play і скачавши його.

Як активувати Android System Webview в Android 7.0 і вище

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

Перший варіант

  1. Зайдіть у вкладку «Програми», знайдіть там Google Chrome і відключіть його;
  2. Тепер зайдіть в Google Play і скачайте додаток ASW;
  3. Вам необхідно запустити будь-який процес, який вимагає наявність цього додатка, наприклад, погода;
  4. Заходьте в додаток з погодою і служба Android System Webview запуститься автоматично;
  5. Можете перевірити, що воно активовано, зайшовши ще раз в «Додатки». Навіть якщо раніше ASW не було в списку, воно з'явиться.

Другий варіант

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

  1. Зайдіть в «Налаштування», виберіть пункт «Про телефоні» і натисніть на пункт «Номер збірки»;
  2. Тисніть кілька разів, поки не з'явиться повідомлення про те, що ви стали розробником. Це означає, що ви активували режим розробника;
  3. Тепер зайдіть в пункт «Для розробників» і знайдіть там вкладку «Сервіс Webview»;
  4. У цьому пункті ви зможете вибрати, яким же додатком обробляти відкриття посилань всередині додатків: через Google Chrome або Android System Webview.

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

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

У додатку сталася помилка

Якщо у вас з'явилася така напис, потрібно просто очистити дані. Для цього виконайте такі дії:

  1. Зайдіть в «Налаштування» свого смартфона і в списку знайдіть Android System Webview (або ASW);
  2. Клацніть по цій назві і натисніть спочатку пункт «Очистити дані», а потім «Очистити кеш»;
  3. Також перевірте, щоб у вас було вільне місце в пам'яті телефону.

Необхідно оновити компонент

Це ще одна поширена проблема, яка може виникати як сама по собі, так і при відкритті певних програм, наприклад, від Microsoft. Для її усунення з відповідною дією:

  1. Зайдіть в Google Play, знайдіть там ASW і відновите його;
  2. Якщо це не спрацювало (в цьому випадку у вас 100% варто Android 7 і вище), поновіть ще і Google Chrome, і помилка більше з'являтися не буде.

У разі, якщо жоден з описаних методів вам не допоміг, доведеться зробити повне скидання до заводських налаштувань. Тільки обов'язково створіть бекап з даними, так як вся інформація на пристрої буде видалена.

Багато користувачів апаратів, що працюють на системі Андроїд, стикалися з спливаючих повідомленням: «оновити Android System WebView». Недосвідчені користувачі можуть зацікавитися питанням «що таке« Android System WebView? » і навіщо ця програма потрібна. На це питання відповідь буде знаходитися в даній статті.

Що таке Android System WebView і для чого вона потрібна?

буде корисним

Ця програма - одна з важливих складових ОС під назвою «Андроїд», яка забезпечує перегляд віртуальних сторінок в Інтернеті в багатьох програмах без запуску сторонніх програм. Вона також є однією з численних розробок найбільшою в світі корпорації Google. Іншими словами: користувач може за допомогою програми відкривати посилання на різноманітні сторінки, не потребуючи в установці браузера на своєму гаджеті.

Ця програма є стандартним компонентом, який входить в набір програмного забезпечення для системи Android. Але чи потрібен «Android System WebView», якщо у вас встановлений браузер Google Chrome? Відповідь дуже проста: якщо у вас є пошуковик і ви завжди їм активно користуєтеся, то даний софт вам буде марний.

Взаємодія з програмами

Багато користувачів про неї навіть взагалі не знають і при першому контакті з програмою намагаються видалити її, щоб звільнити місце на телефоні. Але через те, що вона є встановленою програмою за замовчуванням, просто так в звичайному режимі ви не зможете від неї позбутися. Щоб здійснити це, необхідний «Root-доступ» (доступ «Суперкористувача» з розширеними правами), але при прати її не рекомендується, так як це може позначитися на функціональності і працездатності багатьох потрібних програм або навіть нашкодити телефону, виведе його з ладу. Список програм, куди включений даний софт:

За допомогою неї і «Engineering Studio» умілий користувач, який володіє певними навичками і знаннями, має можливість створення свого браузера або будь-якого іншого застосування типу «месенджер» або новинної стрічки. Але це можливо тільки в тому випадку, якщо ваш смартфон володіє операційною системою «Android 4.2.2» і вище. але вирішити таку проблему можна просто: скачайте її з офіційного магазину Google.Головне, знати деякі нюанси:

Зверніть увагу

Володарі старої версії системи можуть виявитися жертвами хакерів, так як недоробки старої версії «ASWV» позначаються на безпеці ОС (рекомендується). Тому логічніше буде обзавестися смартфоном на базі Андроїд, який підтримує версії від 5.0 і вище.

Але перед тим, як використовувати «ASWV», потрібно включити його.

отримання прав

Якщо ви вже зрозуміли, що таке Android System WebView і видалення софта просто необхідно зробити, то для цього потрібно отримати Root-доступ, інакше нічого не вийде.Щоб це здійснити, дійте по пунктам:


Якщо ви так і не отримали певні права, але не знаєте, чи потрібен буде вам в майбутньому Android System WebView, то програму можна тільки зупинити.

Якщо відкрити розділ з системними додатками на смартфоні Android, можна побачити силу-силенну всіляких додатків, назва більшості з яких користувачеві не говорять зовсім нічого. Наприклад, Android System WebView - що це таке?

Android System WebView - це вбудований в прошивку софт, необхідний для перегляду контенту всередині будь-якої програми. Що це означає? Припустимо, ви запустили додаток соціальної мережі. Натикаєтеся на посилання, натискаєте на неї і ... За ідеєю, повинен бути запущений браузер для відкриття посилання, наприклад, той же Google Chrome. Android System WebView виконує роль браузера всередині програми - посилання запускається саме в ньому. Android System WebView побудований на базі движка WebKit.

Для чого це потрібно? Зрозуміло, для економії ресурсів пристрою і збільшення часу автономної роботи смартфона. Коротше кажучи, додаток дійсно корисне.

Знайти його легко, для цього треба зайти в розділ з додатками.

Викличте меню і натисніть «Показати системні процеси».

Інформація про програму.

Чи можна видалити Android System WebView?

Кнопка «Видалити» на сторінці програми не було, так що без прав суперкористувача ви нічого зробити не зможете. Але навіть якщо у вас встановлені рут-права, настійно не рекомендуємо ні видаляти, ні заморожувати програму, оскільки інші додатки, де використовується Android System WebView, не зможуть стабільно працювати.

Якщо ви відчуваєте які-небудь проблеми з додатком, очистіть в ньому кеш або зітріть дані.

Але, ще раз, видаляти Android System WebView настійно не рекомендуємо.

Деякі власники мобільних телефонів і планшетів при перегляді встановленого софта в розділі «Активні» наштовхуються на утиліту WebView Android. Якщо користувач не знає, для чого потрібна ця програма, то для очищення вільного простору на карті пам'яті і розвантаження ОЗУ він може спробувати її видалити або зупинити. Давайте розглянемо основні можливості Android System WebView, за що це додаток відповідає і чи можна від нього позбутися.

Призначення і основні функції WebView

Андроїд ВебВью є однією з розробок IT-корпорації Google. Цей програмний компонент дозволяє переглядати інтегрований в мобільні додатки internet-контент. Тобто користувач має можливість відкривати посилання на різні веб-сайти, обходячись без встановленого на девайсе браузера. Наприклад, в програмі «Новини і Погода» ви можете ознайомитися з актуальними подіями безпосередньо через інтерфейс утиліти.

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

Наведемо приклади програм, куди включається компонент Андроїд ВебВью:

  • Puffin Browser;
  • Mikuni Browser;
  • Новини та Погода;
  • Гугл Преса;
  • різні месенджери;
  • Однокласники, Фейсбук, ВК;
  • інші програми, які взаємодіють з інтернетом.

Крім цього, Android System WebView є незамінним елементом інтегрованої середовища розробки Android Studio. Через даний інструмент і інженерну Студію кожен користувач, що володіє певними знаннями і вміннями, може створити свій браузер, а також іншу програму на зразок стрічки або месенджера.

Проблеми з роботою Андроїд ВебВью і методи їх вирішення

WebView Android вважається досить ресурсномістких додатком, яке споживає чимало оперативної пам'яті і знижує продуктивність операційної системи. Ще одним негативним моментом є те, що корпорація Гугл перестала випускати оновлення для цієї утиліти на телефонних апаратах під управлінням Android 4.3 і нижче. Таке рішення призвело до уразливості WebView перед шкідливим ПЗ, в результаті чого воно може почати давати збої.

Якщо при використанні мобільного софта ви зіткнулися з помилкою типу «В програмі Android System WebView стався збій», необхідно зробити наступне:

Після виконання зазначених дій вам буде потрібно оновити ВебВью до актуальної версії. Оновити або завантажити Android System WebView можна з Play Market абсолютно безкоштовно.

Сподобалася стаття? Поділитися з друзями: