Upgrade 770 Полная | Page 49

Ликбез гашенным экраном, г) лежит в таком состоянии некоторое время. Он реализован очень толково и его внедрение не повлекло никаких проблем, хотя немного и изменило поведение многих приложений. Но это изменение чётко описано в документации и не приводит к ошибкам. Тот, не очень частый случай, когда всё сделано так, что я аж доволен результатом. Но некоторые производители решили, что обновлять свои устройства до Android 6 — это слишком невыгодно для них. Потому они выпустили обновления «не идентичные» натуральным. К, примеру один крупный производитель добавил «режим сна», вроде Doze. Только в отличие от случая с Doze, приложения, попавшие в список «Оптимизированные», тупо останавливались. Поясню. В Android есть разница между «убить» приложение и «остановить» его. Kill, как правило, неэффективен, о чём я писал в первой части лекции. Если приложение имеет модуль приёмника широковещательных сообщений или, скажем, службу, то оно будет поднято. Служба может поднять его прямо сразу, а бродкаст ресивер — при рассылке ожидаемых широковещательных сообщений. А вот если остановить приложение специ- альной кнопкой Force Stop, то будут остановлены все компоненты приложения и их запуск будет невозможен до тех пор, пока пользователь самолично не запустит приложение (это не касается администраторов устройств и приложений, имеющих доступ к чтению уведомлений) . По причинам безопасности, остановку можно сде- Одно приложение может убить другое, но не может его остановить лать либо вручную, либо в режиме отладки. Одно приложение может убить другое, но не может его остановить. А вот система — может. И это использовал производитель. Он останавливал приложения и запускал их заново исходя из своего видения прекрасного. Очень многие приложения были не готовы к такому поведению и падали. Такое поведение даже не предусмотрено в AOSP! Но ещё дальше пошёл один китайский бренд. Они решили, что если экономить батарею, то по-крупному. И просто вырезал бродкаст 49