Майже кожен користувач Android стикався з тим, що в месенджерах, по електронній пошті, у додатках надходять нові повідомлення, але смартфон, який лежить поруч, мовчить та не сповіщає про них. Про ці повідомлення дізнаєшся, лише коли розблокуєш смартфон та заходиш у додатки. Дивним чином так відбувається тому, що сервіси Google Play відсутні в Китаї. Зв’язок цієї східної країни з вашим смартфоном з’ясували журналісти видання Android Police.
Проблема енергозберігання
Із самого початку Android мав проблему з низькою автономністю, і у 2015 році Google реалізував функцію Doze у Android 6.0. Вона серйозно обмежила самодіяльність додатків у фоні. Це суттєво підвищило автономність роботи Android, але додатки повинні були спеціально враховувати наявність Doze, якщо потрібно було виконувати якісь дії у фоновому режимі.
З випуском Android 8.0 Oreo у Google ще більше «закрутили гайки» фоновій активності додатків, обмеживши перелік доступних у цьому режимі ресурсів. Додатки, які потребували постійної роботи у фоні, почали показувати сповіщення без можливості відключення.
Підписуйтесь на наш канал у Telegram: https://t.me/techtodayua
Введені Google обмеження в цілому виявилися прийнятними і не були проблемою. Розробники мали документацію і мали можливість досягти якогось компромісу.
Проблемою стали надбудови, які почали запроваджувати виробники телефонів у своїх прошивках для подальшого збільшення автономності. Деякі просто подовжували інтервал пробудження Android, інші розробляли інтелектуальні системи, які враховували низку факторів. Але в кінцевому підсумку ці надбудови ламали задуману поведінку додатків і дратували користувачів.
Як це впливає на ваш смартфон
З наслідками активності вендорських надбудов у Android для поліпшення автономності гаджета стикався майже кожен – тривалі затримки у надходженні повідомлень, запізнення нагадувань, припинення роботи стримінгових додатків у фоні тощо.
Постраждалим користувачам доводиться для кожного потрібного їм додатка боротися із впровадженою вендором системою енергозберігання, відключаючи її. Але це незручно, і додатки все одно можуть працювати не так, як очікується.
Програмісти також страждають
Втручання вендорів у системи енергозберігання Android є постійним головним болем програмістів. Їм доводиться самостійно відстежувати, які виробники впроваджують подібні технології, аналізуючи відгуки на Play Store, та розробляти способи обходу. Серед найбільш агресивних борців за автономність – OnePlus, Xiaomi, Huawei, Samsung.
Існує сайт Don’t kill my app! site, який збирає інформацію про фірмові функції енергозберігання, які запроваджують виробники. За його даними, Meizu, Nokia, Sony та Asus також є проблемними. Менше проблем мають користувачі пристроїв Google, HTC. OnePlus, яка є найгіршим у цьому рейтингу, торік обіцяла послабити суворість своїх алгоритмів, але не схоже, що це відбулося.
Чому виробники не виправляться
Експерт проблеми фонової роботи додатків в Android Мішаал Раман каже, що корінь проблеми – у відсутності сервісів Google Play у Китаї. На Android сервіси Google Play надають уніфіковану систему роботи зі сповіщеннями.
Програмісти з Китаю, а також ті розробники, які націлені на глобальну аудиторію, з Китаєм включно, повинні дбати про працездатність своїх програм у цій країні. Вони не можуть спиратися на сервіси Google Play. У результаті десятки програм використовують різні фреймворки і різні способи роботи у фоні.
Такий «зоопарк» призводив до того, що додатки надмірно споживали енергію, перебуваючи у фоновому режимі. Китайські вендори у 2017 році вирішили це, запровадивши свої суворі обмеження щодо енергоефективності, використання пам’яті, роботи у фоні. Ці обмеження активні як у прошивках для Китаю, так і в глобальних прошивках для інших країн.
Допомогти може лише Google
Покласти край непрацездатності додатків у фоні здатний лише Google. Однак додатки пошукового гіганта знаходяться в системному розділі і мають максимальні права та дозволи. Тому вони зазвичай працюють нормально, і з ними немає проблем у фоні. Для Google проблема може мати значно меншу важливість, ніж для сторонніх розробників.
Якби Google захотів, він би міг змусити вендорів смартфонів Android внести потрібні зміни. Для цього необхідно, наприклад, внести відповідні пункти для отримання сертифікації на використання сервісів Google Play.