29 августа 2016
Медленное обновление вредит ОС Android
Константин Иванов
По материалам androidcentral.com
Существует простая истина, которая более или менее очевидна для каждого из нас: новая версия Android не является насущной необходимостью, потому что не так уж много у них различий. Может, изменят что-то на домашнем экране или в списке запущенных приложений. Может, добавят функцию, которую нам захочется иметь в своем устройстве. Но приложения, которые мы используем, будут выглядеть и работать так же. То, что мы делаем в повседневной жизни – используем ли мессенджер, сидим ли в соцсетях – не получает никаких новых функций, уже доступных разработчикам. Эти функции будут внедрены в немногие приложения – и намного позже.
И это плохо.
Это очень плохо, но мы ничего не можем с этим сделать, потому что не создаем операционных систем и не пишем приложений. И нет тут вины разработчиков приложений. Аппараты, которые не получают обновления быстро, вредят платформе Android как таковой.
Нам самим это мешает жить не так сильно. Как говорилось выше, нет ничего, обозначенного на бумаге, без чего мы не могли бы прожить в реальности, и нам не требуется последняя версия, чтобы получать технические обновления. В реальности, если вы не приобретаете аппарат от Google, апдейты от производителя обычно приносят больше, чем новая версия Android.
От чего пользователь Note 5 добровольно отказался бы из интерфейса Note 7? А теперь сравним с потенциальным количеством пользователей, которые ждут-не дождутся появления пофайлового шифрования данных в Android 7.0 (хотя сама по себе эта функция отлична и позволит приложениям работать безопаснее и быстрее). Нам нужны вещи, которые нам видны. Нам нужны вещи, ориентированные на приложения, вроде Svelte или связанных уведомлений. А нам не дают ни того, ни другого.
Просто посмотрите на число аппаратов с последней версией на борту по данным Android Developer Dashboard, и вы поймете, почему. Когда лишь менее 20 или 30% ваших потенциальных пользователей выиграют от новшества, не лучше ли создавать приложения для остальных 70 с лишним процентов? Работать на устройствах на последней версии они будут, а вы получите время, чтобы вносить изменения до тех пор, пока цикл не повторится для нового большого апдейта. Ничего сложного в этом нет, но если вы не ищете легких путей, можете поступить иначе – не по необходимости, а интереса ради.
И это реальная ситуация вокруг фрагментации Android. Аппараты на более старых версиях не проблема – проблемой являются аппараты на новой версии. И это полный абсурд. Создание приложений для разных размеров экрана и разных процессоров оказалось более простой задачей, чем предполагалось, и даже близко не вылилось в сложности, которые пророчили все кому не лень. Работа в условиях разнообразия версий также оказалась проще, чем казалось. Просто берем популярную версию и игнорируем новую. У Google есть инструменты, которые облегчают совместимость с более старыми версиями, и опыт пользователя устройства с новейшим ПО ничем не будет отличаться от опыта любого другого пользователя. И разработчиков можно понять, потому что глупо идти против рынка.
Решение у проблемы есть, и оно простое и нереальное одновременно. Нуждающиеся в обновлении аппараты должны обновляться быстрее. Аппараты, производитель которых получает наши деньги, должны поддерживаться дольше. Google следует заняться тщательным планированием того, как делать это для всех аппаратов до тех пор, пока это не станет принципиально невозможным.
Google, основной движущей силе Android, кое-что из этого удается. Цикл апдейтов свелся к одному за календарный год, производители аппаратов и крупные разработчики приложений подучают ранний доступ к изменениям в коде и API. «Ванильные версии» регулярно обновляются и получают патчи. Все это должно упрощать обновление ОС на устройстве. Однако по части поддержки устройств господа производители не отличаются последовательностью, и иногда причины такого поведения оставляют неприятное послевкусие. Могло бы быть и лучше. Должно быть лучше. А на деле получается кое-как.
Не то чтобы компании, производящие телефоны, которые мы покупаем в огромных количествах, почивали на лаврах. Samsung, LG, и HTC доказали, что могут обновлять устройства достаточно быстро, в то время как другие, например, Huawei и Sony, даже демонстрируют прогресс и позволяют развлекаться с бета-версиями. Но ничего не делается последовательно. Каким-то моделям везет, какие-то не получают ничего, а посередине образуется этакое болото. Выпустить телефон за $90 на версии Lollipop и ей ограничиться – это нормально, если нет критических багов, но самые дорогие модели должны поддерживаться дольше и обновляться быстрее, чтобы положение дел изменилось. И, может, хватит, наконец, плодить бесконечных середняков, может, лучше оставить ресурсы на поддержку того, что уже выпущено? Если аппарат не претендует на место в списке лучших бюджетных аппаратов, не надо его выпускать вовсе, лучше сделайте так, чтобы аппарат, попавший в этот список, остался в нем и на следующий год. Вот такой бесплатный совет.
Разумеется, речь не идет о том, что кто-то обязан менять ситуацию или кто-то обязан хотя бы быть способным это сделать. Android с появления WebKit уже стал самым закрытым open-source проектом. Да, ориентация на мобильные устройства – это объяснение, но мы имеем право быть этим недовольными. Изменить положение дел могут лишь те, кто создает устройства и пишет софт, пусть даже и только для собственных моделей. Они так часто прибегают к исследованиям рынка, чтобы рассказать, что нам необходимы более тонкие телефоны с меньшей батареей или что двухсимочные аппараты востребованы лишь за пределами североамериканского рынка… Но в реальности любое исследование покажет одно: нам нужна всего лишь более адекватная поддержка того, на что мы тратим свои кровные.
Да, одни только гики помешаны на быстром получении последнего апдейта. Но не нужно быть гиком, чтобы хотеть получать приложения с лучшей функциональностью и аппараты, которые не надо заменять каждые 18 месяцев, чтобы иметь к этой функциональности доступ.
Теперь посмотрите на это с другой стороны.
Частое обновление нестабильного API вредит платформе Андроид, так как создает фрагментацию. Что такого нового появляется сновой версией API? Одна две не самые критичные функции. Так какой смысл производителям напрягаться с пересборкой и тестом прошивок? Стабилизируйте API !!! Стабилизируйте, а не перекладывайте собственные проблемы на производителей и разработчиков. А уж программы, вообще не должны зависеть от изменений в ядре системы.
Проблема в самой архитектуре ОС. Надо оболочку, ядро и софт разделить максимально, иначе ничего не получиться.
Они и так разделены.
Я не специалист, но насколько понимаю, проблема несколько глубже. Слишком монолитное ядро! Все драйверы должны быть в него включены, следовательно под каждое устройство требуется перекомпиляция с этими драйверами. А драйвера почему-то у производителей комплектующих, тайна за семью печатями.
Будь ядро менее монолитно, допуская подгрузку драйверов из бинарных модулей, или хотя бы открыт код драйвера – проблем создать стороннюю прошивку было бы меньше.
ДУмаю заказать
https://www.youtube.com/watch?v=lN5cRd_Gu_8&feature=youtu.be