Каждый раз, когда я слышу разглагольствования о том, насколько лучше или хуже iOS в сравнении с Android, когда начинается спор о плавности работы системы, о ее потреблении аккумулятора, о наличии или отсутствии вирусов, мне хочется взять книжку Эндрю Таненбаума в твердом переплете и дать ей по головам обоих спорщиков. А потом поднять их с земли (Таненбаум писал толстые тяжелые книги) и отправить по домам пить чай и смотреть телевизор, ибо сравнивать iOS и Android может только технически неграмотный человек.

На самом деле я, конечно же, далеко не так жесток, но подобного рода споры настолько надоели, что пусть я лучше вылью всю свою внутреннюю желчь в словах. Итак, я считаю, что сравнивать iOS и Android нельзя ни при каких обстоятельствах. То есть да, конечно, можно сравнить рабочий стол, шторку, количество приложений в маркетах и прочие лежащие на поверхности и, по сути, ничего не значащие вещи. А вот если копнуть немного глубже и постараться понять причины некоторых фундаментальных различий этих ОС, то картина становится далеко не такой черно-белой и мы придем к выводу, что iOS и Android просто-напросто рассчитаны на разные целевые аудитории. И это отражается далеко не только на цене устройств, их дизайне и встроенной оболочке.

 

Скорость

Возьмем, к примеру, едва ли не самый главный козырь приверженцев iOS — скорость работы операционной системы. При первом знакомстве с iOS плавность ее работы действительно поражает, особенно если это знакомство произошло во времена Android 2.3. iOS не просто быстрая и плавная, это какое-то интерактивное кино, в которое с непривычки можно надолго залипнуть. Однако если разобраться, за счет чего была достигнута такая плавность работы, все становится куда менее радужным.

Скорость интерфейса была главным приоритетом при разработке iOS. Apple в лице Стива Джобса была готова пойти на все, чтобы визуально сделать работу системы безупречной. Поэтому с самых первых версий (когда система еще носила имя iPhone OS) iOS полностью полагалась на 3D-ускоритель во всем, что касается вывода картинки на экран. С самого начала архитектура операционки предполагала наличие системного процесса отрисовки с максимальным приоритетом перед другими процессами системы, и с самого же начала iOS была во многом однозадачной системой. Все ради того, чтобы ничто и никто не мог отнять процессор у главного процесса, занимающегося отрисовкой интерфейса.

Первая версия iOS вообще не поддерживала установку сторонних приложений (если не брать в расчет неофициальную Cydia). Такая возможность появилась только в 2.0, и она вообще не предполагала работу установленных приложений в фоне. Любое «свернутое» приложение фактически замораживалось, а затем вычищалось из памяти при ее нехватке. Никаких фоновых обновлений данных, никаких синхронизаций, никаких почтовых клиентов с проверкой почты в фоне. Приложение работает только до тех пор, пока оно на экране. Только в iOS 4.0 Apple сделала поблажку и добавила ограниченный ряд системных API, которые приложения могли использовать для выполнения узкого круга задач в фоне. Теперь сторонний софт мог получать push-уведомления, отслеживать положение устройства, проигрывать музыку, а в iOS 7.0 еще и загружать данные из сети в фоне. Но на этом все, ничего больше.

При разработке Android приоритеты были совсем иные. Главная задача Google состояла в том, чтобы создать ОС, которая была бы способна работать на устройствах самых разных производителей и самого разного ценового диапазона. По этой причине в Android была задействована ненавистная многим виртуальная машина Dalvik, абстрагирующая приложения от типа процессора и снимающая с разработчиков обязанности поддерживать код для разных процессорных архитектур. По этой же причине изначально Android не поддерживала вывод 2D-графики с использованием 3D-ускорителей. На первых порах нишей Android должны были стать бюджетные устройства, а в 2007–2008 годах ускорители в них попросту не устанавливали.

Второй изюминкой Android должна была быть «десктопная сущность» ОС. Другими словами, ОС не должна была ограничивать пользователей и разработчиков в чем бы то ни было. Все было как на компе. Хочешь — ставишь приложения откуда угодно, хочешь — сворачиваешь приложение, и оно спокойно продолжает работать в фоне и заниматься своими делами. Не нравится стандартный рабочий стол — меняешь его на другой, так же как и многие другие компоненты системы.

Именно «открытость» системы и отсутствие хардварного ускорения (а не пресловутый Dalvik и «неоптимизированность») прочно закрепили за Android репутацию неповоротливого монстра. Там, где в iOS открытое в данный момент приложение фактически забирало в личное использование процессор и ускоритель, в Android оно делило их (а точнее, только процессор в Android ниже 4.0) с множеством других приложений и сервисов, которые могли работать в фоне. Позже, однако, Google начала стремительно наверстывать упущенное, и появившаяся в 4.0, а затем улучшенная в 4.1 поддержка хардварного ускорения сделала работу интерфейса гораздо более гладкой. Однако то тут, то там возникающие фризы (вызванные фоновыми приложениями и сервисами) продолжали давать о себе знать. Где-то на рубеже версий 4.4–5.0 Google занялась и этой проблемой и добилась того, что на нексусах Android бегает как заводной (включая Nexus 4, выпущенный три года назад), — добилась не за счет ограничений, а благодаря интеллектуальному механизму выдавливания наиболее прожорливых приложений из памяти.

И да, еще одна серьезная проблема Android — это «оболочки» от производителя. В отличие от iOS и Windows Mobile, код Android открыт, поэтому любой производитель может взять его и с чистой душой изменить ОС так, как ему заблагорассудится. Обратная сторона медали в том, что компании сильно увлекаются этим делом и в результате нашпиговывают прошивку таким количеством функций, что она начинает лагать даже на топовом железе. А если говорить о китайских аппаратах, то тут ситуация совсем плачевная.

 

Функциональность

А это уже козырь андроидоводов. Действительно, в сравнении с Android iOS просто игрушка. Без всяких root и на абсолютно залоченном аппарате Android позволяет пользователю делать с устройством на порядок больше вещей. Здесь тебе и разные рабочие столы, и выдвижные панели, и всплывающие кнопки, и приложения с плавающим окном, и кнопки управления всем подряд в шторке, и куча софта, способного в фоне не только играть музыку и обновлять контент, но и копировать файлы и выполнять команды на удаленном сервере. В конце концов, здесь есть Tasker, позволяющий полностью автоматизировать работу системы, здесь есть поддержка OTG с возможностью подключения практически любой USB-периферии (и да, она будет работать из коробки), здесь есть браузеры на любой вкус и цвет, SSH-клиенты и много-много чего еще. И повторюсь, все это работает без root и каких-либо вмешательств в систему.

Я мог бы сказать, что одна только функциональность Android легко убивает все остальные достоинства iOS. Но я не стану, и вот почему. Любой, кто делал jailbreak, знает, насколько iOS действительно функциональна. Она продолжает проигрывать Android, но теперь уже не так сильно. И вывод, который можно сделать из этого, прост: возможности iOS ограничены искусственно. Возникает вопрос: зачем?

На него есть два ответа, и они равно справедливы. Первый — производительность. Повторяем на счет три: «iOS должна работать быстро». С таких слов начинается рабочий день программистов, ответственных за iOS. Ну ладно, не начинается, но вполне мог бы. Многие искусственные ограничения iOS касаются именно производительности. Это и обсуждавшийся ранее (полу-)запрет на фоновое исполнение приложений, и невозможность смены рабочего стола, и менее очевидные запреты.

Второй — безопасность. iOS должна быть не только производительна, но и безопасна. Причем подразумевается в большей степени даже не защита от злоумышленников, а безопасность в контексте «человек и устройство». Давайте будем честными, изначально iPhone появился как девайс для той части населения, которая не понимает в технике ровным счетом ничего. Поэтому iOS — это сложная и во многом очень продвинутая система, скрытая за простым красивым интерфейсом, не допускающим вмешательства в свою работу. Без jailbreak сделать что-то, что приведет к ухудшению производительности или стабильности системы, практически невозможно.
Я бы мог приплести сюда еще и вопрос денег, которые Apple серьезно бы недополучала, если бы позволила устанавливать сторонний софт откуда угодно, но мы все-таки говорим про оси, а не про бизнес.

Такое в Android можно получить с помощью обычных приложений
Такое в Android можно получить с помощью обычных приложений
 

Обновления

И вновь мяч переходит к яблочникам. Да, ребята, восьмерка установлена уже на 84% устройств, а Android 5 где-то на 10%. Разница ну очень велика, однако давайте разберемся, что это значит на деле. Сколько устройств поддерживает iOS 8.4? Правильно, пять смартфонов (4s, 5, 5s, 6, 6 plus), восемь планшетов (2, 3, 4, air, air 2, mini, mini 2, mini 3) и iPod Touch. Итого четырнадцать устройств, почти половина из которых работают на одном чипе. А теперь сколько смартфонов, планшетов, приставок, телевизоров и HDMI-донглов получили обновление до Android 5? Не думаю, что кто-либо будет считать, но очевидно, что эта цифра намного больше четырнадцати.

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

Модель распространения Android совсем другая. Фактически все, что делает Google, — просто выкладывает исходники новой версии ОС и позволяет использовать их кому угодно. И уже сам производитель решает, стоит ли ему заморачиваться с обновлением устройств до новой версии или выгоднее выпустить новый аппарат. Большую роль также играют производители чипов, так как именно они ответственны за портирование большей части ОС на свои SoC’и. И к сожалению, единственный производитель чипов, который действительно занимается долгой поддержкой даже своей устаревшей продукции, — это Qualcomm. Все остальные обычно просто забивают.

Ну и конечно же, стоит вспомнить о нексусах, которые пилит сама Google. Срок их поддержки составляет не менее двух лет, а то и больше.

Официальная статистика распространенности Android на 1 июня 2015 года
Официальная статистика распространенности Android на 1 июня 2015 года
 

Безопасность и вирусы

Этот пункт я оставил на закуску. Не потому, что он такой «вкусный», а потому, что мы уже не единожды касались его косвенно. iOS действительно считается намного безопасней Android, и эта система обрела славу «свободной от вирусов». Однако если мы посмотрим на аналитические отчеты секьюрити-компаний, то Mac наравне с iOS по количеству уязвимостей окажется далеко не на последних местах. Более того, доказательство, что уязвимостей в iOS предостаточно, лежит у нас перед глазами и называется jailbreak. Только представь себе: почти каждая версия iOS содержит в себе критическую уязвимость, позволяющую получить привилегии root (да, да, в iOS тоже есть root). Недурно, не правда ли?

Причин, по которой iOS считается такой безопасной, фактически две. Первая — это уже обсуждавшаяся закрытость ОС по отношению к пользователю и сторонним приложениям. Написать вирус или троян для iOS, который не требовал бы jailbreak или не был подписан корпоративным сертификатом, практически нереально. Точнее реально, но это будет не троян, а пластмассовая игрушка в виде коня на колесиках.

Вторая — это закрытость ОС для установки приложений из сторонних источников и жесткая политика Apple в отношении качества публикуемых в App Store приложений. Здесь можно только поаплодировать, но, с другой стороны, мы опять получаем стерильную систему, для которой нет даже клиента «ВКонтакте». Play Store в этом свете выглядит куда выгоднее, здесь есть все: и софт, требующий, и инсталляторы кастомных прошивок, и средства для организации двойной загрузки — что только пожелаешь. Но за все надо платить, и в данном случае платить приходится рисками окирпичить смартфон или подхватить заразу. Правило простое: получил root — пеняй на себя.

В 2014 году OS X и iOS возглавили список самых уязвимых ОС
В 2014 году OS X и iOS возглавили список самых уязвимых ОС
 

В сухом остатке

Это, конечно же, не все, о чем можно рассказать, говоря о коренных различиях в iOS и Android, но приведенных аргументов уже должно быть достаточно. Главная мысль, которую я пытался донести, — это коренное различие именно в идеологии систем. С одной стороны, у нас есть iOS, вылизанная, красивая ОС с невероятно плавным интерфейсом, которую удобно использовать для простых и незатейливых вещей типа позвонить, посмотреть почту, выложить фоточку в Instagram. С другой стороны, есть Android — богатая возможностями и работающая на куче устройств ОС, позволяющая использовать смартфон или планшет так же, как обычный ПК, и ни в чем не ограничивающая пользователя, но зато страдающая от проблем, связанных с плавностью интерфейса и безопасностью. Сравнивать эти две системы — такая же глупость, как сравнивать Chevrolet Corvette и Land Rover Defender.

4 комментария

  1. alfon

    18.08.2015 at 13:50

    короче опять андроид попытались оправдать, хорошая попытка, но нет, у меня ios 8 на nexus 5

  2. mratner

    19.08.2015 at 09:43

    Хорошая статья.

  3. artem.kalinin

    19.08.2015 at 09:48

    Спасибо, просто о сложном написали.

  4. Siap

    26.08.2015 at 15:23

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

Оставить мнение

Check Also

Предсказание случайности. Изучаем ASLR в Linux и GNU libc, обходим защиту адресного пространства и stack canary

За время существования в ядре Linux появилось множество различных механизмов защиты от экс…