Как убивают Android: эксперты назвали три главные проблемы последних версий ОС

Для oпытнoгo пoльзoвaтeля и рaзрaбoтчикa прилoжeний Android всeгдa былa oчeнь удoбнoй OС. Oткрытый исxoдный кoд, бoгaтыe вoзмoжнoсти и oтсутствиe жeсткoгo кoнтрoля сo стoрoны Google дeлaли смaртфoн нa Android нaстoящим кaрмaнным кoмпьютeрoм. Oднaкo в пoслeднee врeмя кoмпaния дoбaвляeт в Android всe бoльшe oгрaничeний и сoмнитeльныx функций, кoтoрыe убивaют лучшиe чeрты систeмы. Тaкoгo мнeния придeрживaeтся Linux-рaзрaбoтчик и oбoзрeвaтeль Xakep Евгений Зобнин. Он назвал три нововведения в последних версиях Android, которые кажутся странными и мешающими.

Запрос полномочий

«В Android 6.0 наконец-то появилась система запроса полномочий приложений, не прошло и десяти лет». Примерно в таком ключе отзывались пользователи об одном из главных новшеств Android 6.0 — тех самых окошках с вопросом: «Приложение XXX хочет получить доступ к камере. Разрешить?» Дескать, наконец-то у юзеров появился контроль над сторонними приложениями, какой у пользователей iPhone был еще в iOS 6.

Действительно, на первый взгляд очень нужное и правильное нововведение. Но если копнуть глубже, окажется, что его полезность стремится к нулю. Начнем с того, зачем такая система вообще нужна. А нужна она для очень простой вещи — позволить пользователю контролировать, к каким функциям смартфона приложение может получить доступ, а к каким нет. И здесь возникает первая проблема: если каждое установленное приложение начинает запрашивать права на доступ к чему-либо, очень скоро пользователь привыкает давать добро машинально.

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

Также новая система запроса полномочий не работает со старым софтом. Это значит, что если приложение не было собрано для Android 6.0 и выше, то оно вообще не будет запрашивать полномочия у пользователя для получения доступа к нужным функциям.

Система запроса полномочий в Android не только не защищает от приложений, использующих возможности смартфона против владельца, но и создает ложную иллюзию безопасности. Пользователь думает, что контролирует ситуацию, но на самом деле это не так.

Энергосбережение

Главное преимущество Android в сравнении с другими мобильными ОС — полнота доступных разработчикам приложений инструментов. Другими словами, Android по своему духу намного ближе к полноценной настольной ОС, чем iOS. Приложения здесь могут спокойно работать в фоне, сторонние приложения по минимуму ограничены в действиях и могут использовать возможности системы наравне со стоковым софтом.   Диалер, домашний экран, камеру, приложение для обмена сообщениями — все это пользователь может заменить на сторонний софт безо всяких ограничений.

Но где есть свобода, там есть и ответственность. Как только Android начал набирать популярность, всплыла довольно серьезная проблема: многие разработчики просто злоупотребляли возможностями системы и создавали софт, который в том числе мог серьезно снижать продолжительность работы устройства от батареи. Сделать это несложно — достаточно просто написать фоновую службу, которая будет захватывать wakelock (не позволяет устройству уснуть) и постоянно делать какую-то работу.

Но в конце концов все это привело к появлению режима агрессивного энергосбережения Doze. Принцип работы Doze довольно прост. Если в течение часа не включать смартфон и не брать его в руки (в Android 6.0), система отключает доступ в интернет и усыпляет все приложения и службы, независимо от того, имеют они вейклоки или нет. Затем время от времени смартфон просыпается (сначала через час, затем реже), позволяя службам сделать свою работу, и снова засыпает.

В теории Doze позволяет свести затраты энергии смартфона к минимуму и не беспокоиться о том, что на утро заряд смартфона снизится процентов эдак на десять. Но есть две проблемы. Первая: эффект от включения Doze будет заметен, только когда на смартфон установлено большое количество не очень качественного софта, жадного до батареи. Вторая проблема: Doze убивает функциональность целого класса приложений, которые необходимы многим пользователям. Фактически весь «серверный» софт, позволяющий обратиться к смартфону по сети и получить от него ответ, летит в трубу. SSH-сервер, веб-сервер, приложения для отслеживания устройства и удаленного управления им — все это благодаря Doze будет работать крайне нестабильно и с чудовищными задержками ответа (в один-два часа и более).

Закрытие исходных текстов

Android — операционная система с открытым исходным кодом. И это один из основных аргументов Google в пользу выбора ее ОС. Действительно, коды Android полностью открыты, любой желающий может их изучить или даже собрать собственную прошивку на их основе, как это делают разработчики CyanogenMod (теперь уже Lineage OS) и других кастомных прошивок.

Более того, даже компании-производители не обязаны лицензировать Android у Google и платить ей роялти — бери и пользуйся, с тем лишь требованием, что вместе с Play Store производитель обязан установить на смартфон большую часть других приложений Google плюс соблюсти требования Google к аппаратной и программной части (например, реализовать безопасный сканер отпечатков пальцев, соблюдая правила, описанные в документе, не нарушать API Android, оснастить смартфон необходимыми сенсорами и датчиками).

Вот только чем больше внимания Google уделяет своим фирменным приложениям, тем сильнее она забывает об их открытых аналогах в Android. После появления Google Keyboard стандартная клавиатура Android практически перестала развиваться, функциональность стандартной камеры Android даже близко не дотягивает до функциональности Google Camera, та же история с диалером, СМС-приложением, почтовым клиентом и домашним экраном, а поисковая строка Google, замененная на закрытый Google Now, так и вообще застряла во времени Android 2.3.

Итого. Мы имеем формально открытую систему, которую Google в любой момент может закрыть благодаря используемой лицензии Apache 2.0, многие компоненты которой уже не развиваются или находятся в заброшенном состоянии, а другие существуют только в виде проприетарных библиотек без возможности создания альтернативы.

]]>

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.