На зустрічі AndroidDevs Meetup виступили кілька розробників з команди месенджера ICQ. Моя доповідь була присвячена Android WebView. Для всіх, хто не зміг приїхати на зустріч, публікую статтю з мотивів виступу. Піду верхами, великими штрихами. Глибоких технічних деталей і багато коду не даватиму. Якщо вас зацікавлять подробиці, за посиланням наприкінці посту можна завантажити програму, спеціально написану як ілюстрацію, і все побачити на прикладах.
Запитання:Як ви боретеся з артефактами, які залишаються при промальовуванні 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. Додатково буде створено спеціальну систему дозволів, без яких програми не зможуть отримати доступ до якоїсь критичної для користувача інформації.
На зустрічі AndroidDevs Meetup виступили кілька розробників з команди месенджера ICQ. Моя доповідь була присвячена Android WebView. Для всіх, хто не зміг приїхати на зустріч, публікую статтю з мотивів виступу. Піду верхами, великими штрихами. Глибоких технічних деталей і багато коду не даватиму. Якщо вас зацікавлять подробиці, за посиланням наприкінці посту можна завантажити програму, спеціально написану як ілюстрацію, і все побачити на прикладах.
Запитання:Як ви боретеся з артефактами, які залишаються при промальовуванні 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 (ASWV).
Однак, не кожен має уявлення, для чого потрібна програма.
Відповідаючи на запитання, що таке Android System Webview- необхідно спочатку сказати, що програма входить до списку встановлених.
Розроблено програмістами компанії Google для того, щоб користувачі могли переглядати всілякий інтернет-контент, не виходячи з будь-якої програми.
Наприклад, ви знаходитесь у своїй улюбленій соціальній мережі та переглядаєте пост.
Серед наявної інформації є й різні посилання. Так ось, щоб перейти по будь-якій з них – немає необхідності окремо відкривати.
Погодьтеся, це дуже зручно і не забирає багато часу.
Компонент webview інтегрується в такі популярні програми, як:
Хто хоч раз стикався з програмою Android Studio – знає, що ASWV інтегрований у неї і є справді незамінним елементом.
За допомогою даної студії можливо створити не тільки новинні та месенджер-додатки, а й власний браузер.
Щоправда, для цього необхідно мати певні знання.
На жаль, наявністю цієї програми можуть похвалитися не всі телефони, які працюють під керуванням.
Якщо версія операційної системи вашого пристрою нижче 4.2.2 - ви навряд чи виявите ASWV у своєму арсеналі.
Вирішується ця проблема звичайним завантаженням з офіційного магазину Google.
Але перед тим, як встановити її собі на , тверезо оцініть можливості свого мобільного пристрою.
Якщо у вас досить стара модель - краще утримайтеся від інсталяції.
За результатами проведених тестувань можна з упевненістю сказати наступне:
Відсутність оновлень негативно позначається і на безпеці всієї операційної системи в цілому, оскільки недоробки, що присутні в старій версії Webview, роблять її вразливою для хакерів.
Для того, щоб почати користуватися можливостями ASWV, вам спочатку необхідно буде включити цей інтернет-переглядач.
Щоб це зробити, скористайтеся налаштуваннями кожної програми окремо.
Так, для комфортної роботи в , ви повинні активувати опцію "Використовувати внутрішній браузер".
Якщо ви вирішили скоротити на своєму телефоні чисельність встановлених програм - Android System Webview видаляти не рекомендується. Від неї залежить коректна робота багатьох програм, і в першу чергу – соціальних мереж. Видалення ASWV торкнеться відображення більшості інформерів та месенджерів, у зв'язку з чим сторінки з постами можуть виглядати сиротливо порожніми.
У тому випадку, коли видалення просто необхідно - інакше зробити дану операцію не вийде.
Для того, щоб отримати Root права, вам доведеться скористатися однією з багатьох програм, що дають таку можливість.
Серед усієї різноманітності можна виділити Framaroot, додаток, інтерфейс якого російською мовою.
Насамперед знадобиться його скачати.
Щоб запустити процес встановленням на своєму мобільному пристрої, запустіть завантажений арк-файл і виберіть необхідний варіант - Superuser або SuperSU.
Потім вам знадобиться виконати деякі дії, щоб надати статус адміністратора.
Виберіть одного із запропонованих персонажів.
Після успішного встановлення на екрані вашого мобільника відображатиметься смайлик. Якщо це сталося – значить установка пройшла успішно. Після цього потрібно буде перезавантажити телефон.
У випадку, коли смайлик не з'явився - не впадайте у відчай - можливо ця програма просто вам не підходить.
Подібних додатків досить багато, тому знайти підходяще в Інтернеті не складе особливих труднощів.
Без наявності прав ви зможете лише зупинити роботу програми простим способом:
1. Для цього потрібно відкрити параметри і вибрати пункт «Програми» .
2. Натискаєте на назву програми і у вкладці, що тиснеться, кнопку «Зупинити» . Перед цим непогано було б видалити наявні оновлення. Відповідна кнопка розташована біля кнопки зупинки.
3. Після того, як оновлення будуть видалені, ви зможете повністю вимкнути вибрану програму.
4. Коли Webview буде відключена - вона перестане відображатись в основному меню і не споживатиме системні ресурси.
При необхідності позбутися помилки, що виникла в ASWV, знадобиться виконати такі дії:
Після даних маніпуляцій помилка має просто зникнути.
Програма Android System Webview є важливою складовою операційної системи Android та дозволяє переглядати веб-сторінки, не залишаючи тієї чи іншої програми.
Існуючий ній функціонал використовується багатьма сторонніми програмами ( , месенджерами, тощо.).
Початкові оновлення дозволяють виправляти помилки, що виникають, і підвищують стабільність Webview.
Видалення цієї програми небажане, оскільки може призвести до непередбачених наслідків.
Проте її якісна робота гарантує вам максимальну зручність під час експлуатації гаджета.
Гартуючи списки встановлених програм на своєму Android-смартфоні під ви могли наткнутися на програму під назвою Android System Webview. Ви намагалися увімкнути його, але нічого не сталося. Виникає низка цілком логічних питань: для чого потрібна ця програма, чи можна її видалити, включити чи вимкнути? У цій статті ми спробуємо дати відповіді на ці запитання.
Отже, перш за все нам потрібно зрозуміти, що являє собою цей додаток і які функції він виконує Android-смартфоні. Android System Webview — ця системна програма, в завдання якої входить перехід за посиланнями та робота з мережевим контентом усередині різних програм, встановлених на смартфоні.
Загалом, досить важлива програма ... або таким воно було до виходу Android 7. Вся справа в тому, що починаючи з сьомої версії андроїда цей додаток було деактивовано за непотрібність: виконання його функціоналу на себе перейняли Google Chrome і самі програми.
Виходить, що воно зовсім не потрібно на нових Android-смартфонах і його можна видалити? Ну, технічно, це так і за бажанням його цілком можливо видалити, але тільки якщо у вас є ROOT-доступ. Втім, чи вам це потрібно? Видавши цю програму, ви не отримаєте величезну додаток до доступного місця на своєму пристрої (вага програми вкрай мала). До речі, якщо ви все-таки видалили цю програму зі смартфона і хочете її повернути, то ви можете знову завантажити програму з Google Play.
Виникає ще одне питання: чи можна увімкнути Android System Webview на Android 7 і вище? Що ж, відповідь так, це цілком можливо. Якщо у вас виникла потреба в активації цієї програми на своєму пристрої, це цілком можна влаштувати. Отже, зробіть таке:
Як тільки ви це зробите, в налаштуваннях Android System Webview буде вказано, що він працює. Навіщо ми відключали ваш Google Chrome? Справа в тому, що вони просто не можуть працювати одночасно. Отже, якщо ви вирішите запустити знову Chrome, то Android System Webview відразу ж припинить свою роботу - це вам на замітку.
Вивчаючи список програм, які встановлені на вашому Android-телефоні, ви можете знайти програму під назвою Android System WebView. Очевидно, що цей додаток є стандартним встановленим додатком. Але за що воно відповідає і чи можна його видалити? На ці питання ми намагатимемося відповісти у цій статті.
Android System WebView або ASWV – це компонент операційної системи Android, який працює на основі Chrome і відповідає за відображення веб-сторінок у різних програмах. Використання цього компонента дозволяє програмою показувати користувачеві вміст веб-сторінки без її відкриття в сторонній програмі, наприклад, без відкриття веб-браузера Chrome.
Приклад роботи Android System WebView можна побачити практично в будь-якій Android-програмі, де користувачеві пропонують посилання на інші веб-сайти. Яскравий приклад використання цього компонента – це програми соціальних мереж. Коли ви переглядаєте стрічку новин у такому додатку і клацаєте за посиланням, то вас не перенаправляє до програми веб-браузер, натомість з'являється щось на кшталт міні-браузера, який вбудований в сам додаток соціальної мережі. Використовуючи цей міні-браузер, ви можете прочитати вміст веб-сторінки, що з'явилася, і навіть перейти на інші сторінки цього сайту, але як тільки ви натисніть на стрілку назад, ви миттєво повернетесь до програми соціальної мережі.
З точки зору користувача Android System WebView створює більш комфортний досвід роботи з програмою, адже користувачеві не потрібно перемикатися між різними програмами, щоразу, коли він натискає на зовнішнє посилання. Натомість всі сторінки відкриваються в тій самій програмі, в якій користувач зараз працює, це дозволяє швидко переглянути сторінку і повернутися до основного вмісту програми. З точки зору розробника програми Android System WebView дозволяє утримати користувача в програмі та сприяє більш тривалій роботі користувача саме в цьому додатку. Крім цього, у деяких випадках зазначається, що використання WebView дозволяє економити заряд батареї, оскільки повноцінні браузери (наприклад, Chrome або Firefox) створюють велике навантаження на смартфон і швидше розряджають акумулятор.
Android System WebView присутній в операційній системі Android досить давно. Але як окремий додаток він з'явився тільки у версії Android 5.0 Lollipop. З того часу Android System WebView можна знайти в магазині програм Google Play Market та у списку встановлених програм на Android-смартфоні. Виділення цього компонента в окрему програму дозволило Google швидше закривати вразливості, які в ньому виявлялися. Адже тепер цей компонент можна оновити як звичайну програму, не оновлюючи всю операційну систему в цілому. Пізніше, в Android 7.0 Nougat, цей додаток знову зник з Android-смартфонів. В операційній системі Android Nougat і новіших версіях Android як WebView використовується безпосередньо сам браузер Google Chrome.