- Почему iPhone хватает 4 ГБ ОЗУ, а Android — нет?
- Почему iPhone работает лучше, чем Android
- Почему iPhone лучше Android
- Почему вылетают приложения
- 7 скрытых технологий делают iOS быстрее и лучше Android. Сейчас покажу все
- 1. У операционной системы продуманная логика
- 2. Система взаимодействует параллельно с пользователем
- 3. У всех элементов интерфейса есть свой вес
- 4. Действию пользователя отдается полный приоритет
- 5. В Apple не гонятся за частотой обновления картинки, но увеличивают частоту сенсора
- 6. Система размывает и растягивает движущиеся объекты
- 7. Анимация всегда подсказывает пользователю
- Что в итоге
Почему iPhone хватает 4 ГБ ОЗУ, а Android — нет?
Из года в год Android-производители форсируют железную часть смартфонов: 108 МП, 8к-видеосъемка 12гб оперативной памяти… Но подождите, у iPhone всего 4 ГБ ОЗУ. И это не мешает ему работать на уровне или даже быстрее своих конкурентов! И как же удалось компании Apple добиться такого результата? Обо всём этом в сегодняшнем ролике.
Для начала немного теории. Что такое оперативная память и для чего она нужна в смартфоне? Если говорить простым языком, то это память, в которой хранятся все запущенные приложения, их данные, и сама операционная система!
Естественно, чем больше у вашего девайса оперативной памяти, тем комфортнее и приятнее с ним взаимодействовать.
Большинство пользователей iPhone даже не знают сколько оперативной памяти у них в смартфоне. Это обусловлено тем, что пользователей устраивает работа многозадачности в их смартфонах, они просто пользуются и получают удовольствие от плавности и скорости работы. Так как же Apple все же удается хорошо работать с 4 ГБ оперативной памяти?
Может быть дело в системе? На самом деле чудес не бывает, Android и iOS требуется примерно одинаково-большое количество ОЗУ. К примеру, пару лет назад, один зарубежный канал Android Authority провёл детальное сравнение. Автор взял два смартфона на iOS — это iPhone 7 и на Android — Nexus 5х, с одинаковым количеством оперативки – 2 ГБ. iPhone 7 c момента запуска имеет МЕНЬШЕ свободной оперативной памяти чем смартфон на Android: около 750 МБ против 1,2 ГБ у Nexus. Но это до того момента пока вы не запустите какое-либо из ваших приложений.
Мы повторили тест на iPhone 11 и Pixel 3 с Pixel 4. Теперь получается, что цифры сопоставимы: в iPhone задействовано около 2 ГБ оперативки, а Pixel использует около 2,4 ГБ.
Окей, может быть дело в том, что приложения на Android занимают больше места в оперативке? Ведь Apple любит разработчиков, а они отвечают им взаимностью. Но тоже нет: во многих случаях размер занимаемого места в оперативной памяти на iOS и Android примерно равны, но в некоторых случаях приложения на iOS занимают почти в 1.5-2 раза меньше оперативной памяти! Скорее всего это связано с более оптимизированным исполняемым кодом приложения, ведь языки написания приложений очень разные.
При подсчетах, Android-приложения в совокупности занимают всего на 6% больше места в оперативной памяти.
Но это только начало, как говорят многие пользователи яблочной продукции «Оптимизация Решает!», как оказалось, в этом есть доля правды!
Оба аппарата работают с приложениями молниеносно, с андроидом все понятно, у него все хранится в ОЗУ, но как справляется iPhone с его жалкими 4 гигабайтами? Вся магия кроется как раз в работе iOS с оперативной памятью. Базово и iPhone, и Android имеют примерно одинаковый планировщик работы с памятью. Если в момент запуска нового приложения, у смартфона попросту нет свободной оперативной памяти, он выкинет одно из ранее запущенных и откроет то, которое тебе нужно в данный момент!
В мире компьютеров операционная система Windows имеет файл подкачки (pagefile.sys), еще его называют СВОП (термин пишется по-английски — swap). Это такое пространство на вашем жестком диске, куда система переносит неиспользуемые данные из оперативной памяти. Чтобы не хранить их в ОЗУ, давно запущенные приложения попросту переносятся на жесткий диск, тем самым освобождая место для еще одной вкладки Chrome. ПК-бояре понимают о чем я.
На смартфонах все немного сложнее, многие смартфоны до сих пор имеют не самые быстрые флеш-накопители в постоянной памяти. К этому прибавляем то, что флеш-память имеет сравнительно небольшой ресурс чтения и записи, поэтому производители смартфонов прибегли к иной реализации!
Представим такую ситуацию, у нас 4Гб оперативной памяти, открыто 5 приложений, память вся уже заполнена, как же запустить еще одно приложение и при этом не закрывать одно из пяти, то есть те которые уже открыты. Всё дело в том что и у iOS, и у Android тоже есть так называемый Сжатый СВАП – с помощью сжатия, которое похоже на то, что делает архиватор. Приложение сжимается внутри оперативной памяти, система выбирает самые массивные приложения, будь то одна большая или две мелких игры, происходит сжатие, тем самым освобождается до 50% больше места, и теперь можно запустить еще одно приложение.
Такая схема работает и на iPhone, и на Android, но Apple пошли куда дальше. Они придумали, как делить пространство на отдельные страницы — блоки размером 16 КБ, которые вмещают в себя любую информацию. Такую страницу можно пометить как грязную (dirty) или чистую (clean). Чистая — память, которая больше не используется (то есть никакие объекты больше не ссылаются на неё, и её можно спокойно выгрузить). В дальнейшем она может быть загружена с диска («page out»), такая память содержит фреймворки, исполняемый код и файлы только для чтения.
К примеру, в таких страницах могут быть данные текстур игры, которые не используются приложением даже после повторного запуска из фонового режима, также в иных приложениях это могут быть разные AR-тикеры, маски и прочие блоки кода, которые не использует приложение пока пользователь повторно не запустит программу из фона.
Грязная — память, которая ещё используется в приложении, выгрузить её невозможно, поэтому при переходе приложения в фон чистая просто выгружается, а грязная сжимается по двум методам сжатия:
- Сжатие буфера — использует одношаговый метод сжатия файлов, этот метод используется для сжатия мелких файлов до 8 МБ.
- Сжатие потока — использует несколько шагов для сжатия файлов, в том числе и повторное сжатие ранее сжатых файлов, что делает его идеальным для сжатия больших файлов.
Допустим у нас есть приложение Instagram, оно занимает 300 МБ в оперативной памяти, первым этапом будет очистка чистой памяти, которая была в запасе у приложения и больше не понадобится. Размер в ОЗУ уменьшается примерно до 170 МБ. Далее операционная система прибегнет к одному из двух методов сжатия грязной памяти. Благодаря продуманному алгоритму сжатия, грязная память из 170 мегабайт сжимается до внушительно маленького размера — менее 10 МБ!
В свою очередь, производители смартфонов на базе Android вышли из ситуации более простым решением, увеличить размер оперативной памяти чтобы меньше использовать сжатый свап.
Итак, время теста. Мы взяли устройства разных поколений — iPhone 11 и Pixel 3 — зато оба с 4 Гб. Посмотрим, что произойдет.
Pixel держит в памяти три игры. Начал выгружать их из памяти при запуске четвёртой.
iPhone полноценно держит шесть игр. Начал потихоньку выгружать на седьмой, но не все. Все начали вылетать только на восьмой игре.
И здесь мы подходим к кульминации вопроса, нужно понять, за счет чего iPhone так быстро производит сжатие данных в оперативной памяти? А дело все вот в чем. Чтобы быстро провернуть данную операцию, потребуется мощный процессор с высокой производительностью Больших Ядер!
Если мы посмотрим на скриншоты из бенчмарка GeekBench 5, то увидим превосходство А13 Bionic перед Snapdragon 865 в 1.5 раза, а ведь А14 Bionic еще даже не вышел! Именно производительность на один поток данных всегда было главным козырем процессоров от компании Apple! Большой проблемой Android-смартфонов является то, что они все построены на очень разном железе, производители вынуждены оптимизировать систему для более слабых девайсов, у которых попросту нету столь внушительной мощности процессора или быстрой памяти. Хотя подвижки со стороны компании Qualcomm уже есть.
Так еще с презентации Snapdragon 855 было замечено, что компания сделала упор на одно высокопроизводительное ядро (prime core), которое имеет повышенную частоту и размер кэш-памяти, но этого все равно пока мало, чтобы догнать чипы Apple.
Думаю, теперь многим стало понятно, почему iPhone не нужно столь большое количество оперативной памяти. Размер — не главное, лучше вложить больше денег в софтверную часть, и правильно распределять ресурсы своего железа за счет умных алгоритмов сжатия файлов в оперативке.
Источник
Почему iPhone работает лучше, чем Android
Вы когда-нибудь слышали мнение о том, что iPhone априори работает лучше, чем Android? Думаю, что слышали. Несмотря на то что Android уже давно не лагает даже на откровенно слабых устройствах, с точки зрения фактической работоспособности он всё равно уступает iOS. Кто-то, возможно, скажет, что всё дело в оптимизации. Но сегодня ссылаться на отсутствие оптимизации операционной системы, которой вот-вот исполнится 10 лет, как минимум неуместно. Тем более, что iOS с самого начала работала практически идеально. Но дело тут совершенно в другом. Так в чём же?
Для начала предлагаю разобраться, чем же в действительности Android уступает iOS? Ведь проблем с быстродействием и правда нет ни у той, ни у другой платформы. Но это давно не принципиальный момент, потому что проблемы есть в таких сценариях использования, как многозадачность или, скажем, съёмка фото или видео, в которых Android явно проигрывает iPhone, независимо от модели.
Почему iPhone лучше Android
Абсолютное большинство смартфонов на Android, несмотря на больший объём оперативной памяти, страдают от «недержания» и выгружают запущенные приложения из фонового режима уже спустя полчаса-час. А, если вы сравните фото, сделанное на iPhone, с кадрами на камеру какого-нибудь Galaxy, то однозначно отдадите предпочтение первому. Ведь не зря для Инстаграма берут именно Айфон.
На самом деле ни о какой оптимизации речь совершенно не идёт. По словам разработчика приложения mcpro25fps , iPhone лидирует по качеству фотосъёмки из-за отсутствия фрагментации. Всё дело в том, что производители смартфонов на Android — вместо того, чтобы использовать штатные инструменты для взаимодействия с камерой — начинают создавать свои собственные, и это очень сильно им вредит.
Вредит даже не только и не столько потому, что производители не умеют делать такие инструменты. В большинстве своём они умеют, и довольно неплохо. Но, во-первых, зачастую эти инструменты вступают в конфликт со штатными, а, во-вторых, сторонние разработчики просто не учитывают особенности ПО камер, написанного производителями. Поэтому при создании своих приложений они полагаются только на штатные требования.
В случае с iOS такого просто не может быть. Apple — единственная компания, которая создаёт программное обеспечение для обеспечения работы камер iPhone. Она же пишет гайдлайны для сторонних разработчиков, создающих свои приложения. Поэтому добиться конфликта или не учесть какой-то фактор на iOS попросту невозможно. Ведь приложение, если оно сделано с ошибкой, просто не запустится.
Почему вылетают приложения
То же самое касается многозадачности. По логике вещей, приложения, запущенные в фоновом режиме, должны потреблять довольно много ресурсов, потому что смартфон не закрывает их, а продолжает поддерживать их работу. Однако в Android есть специальный механизм, который сводит фоновую активность приложений к абсолютному минимуму, из-за чего они практически не потребляют ресурс аккумулятора.
Но производители смартфонов предпочитают не использовать штатный инструментарий и тут. Они создают свой, не только тратя своё время и деньги, но и лишая нас удобства. Потому что эти инструменты энергоэффективности, как их называют, вступают в конфликт и начинают блокировать друг друга. В результате увеличивается расход энергии, а система начинает просто выгружать запущенный софт, чтобы избежать разрядки.
Что тут не так, спросите? А то, что из-за того, что производители смартфонов не могут договориться с Google, получается, что вся оперативная память, которой у аппаратов на Android в разы больше, чем у iPhone, идёт коту под хвост. Они просто не могут применить её по делу. Ведь, если смартфон выгружает даже 5 приложений из фонового режима, не израсходовав даже гигабайта ОЗУ, что и говорить про остальное.
Многозадачность и фотосъёмка — это не единственные примеры плохой работы Android из-за фрагментации, которую провоцируют производители. В ОС существует масса инструментов, которые конфликтуют друг с другом именно потому, что производители используют свои собственные варианты, пытаясь сделать их работу более приоритетной. В результате, как мы видим, выходит не очень хорошо, а страдают от этого пользователи. За свои же собственные деньги.
Источник
7 скрытых технологий делают iOS быстрее и лучше Android. Сейчас покажу все
Одним из преимуществ смартфонов и планшетов Apple является стабильная и плавная работа операционной системы. Разработчики из Купертино называют iOS «продолжением вашего разума», делая упор на удобство работы и интуитивность.
Действительно, интерфейс работает так, как ожидает пользователь. Он дает ощущение контроля, позволяя совершать действия быстро, не планируя их наперед.
Все это стало возможным благодаря программным и техническим решениям, которые скрыты “под капотом” iPhone и iPad. Сейчас разберемся, что делает работу с iOS настолько удобной.
1. У операционной системы продуманная логика
Один из самых удобных жестов в iOS – swipe back. Боковой свайп от левой границы экрана позволяет вернуться к предыдущей странице в браузере или предыдущему меню приложения. Именно этой опции мне все время не хватает в Android.
Фишка во времена iOS 5-6 была доступна в виде джейлбрейк твика, а с появлением iOS 7 стала неотъемлемой частью системы. Начиная с этого момента во всех гайдлайнах по разработке пользовательского интерфейса купертиновцы рекомендуют такую логику работы для стороннего ПО.
Реализовано все предельно просто: данный жест должен возвращать нас туда, откуда мы только что пришли. В 99% приложений из App Store вы будете совершать данным жестом одно и то же действие, а происходящее на экране будет сопровождаться привычной и понятной анимацией.
А как в Android: это жест есть далеко не везде. Его можно встретить в некоторых ланчерах или оболочках определенных производителей. Однако, в приложениях боковой свайп сможет как возвращать пользователя назад, так и открывать дополнительное меню.
2. Система взаимодействует параллельно с пользователем
Линейное взаимодействие с системой: нажатие, решение, жест, действие
Большинство операционных систем взаимодействуют с пользователем линейным способом. Мы продумываем действие, совершаем его и только после этого система отвечает нам. Скорость работы с такой системой не самая максимальная, от результата нас отделяет время продумывания и совершения жеста.
Разработчики мобильной операционной системы Apple совершили небольшую революцию, создавая новые жесты для смартфонов и планшетов без физической кнопки Домой. Начиная с iOS 11 система научилась работать параллельно с мыслями пользователя.
Параллельное взаимодействие с системой, когда жест начинается сразу после нажатия, а действие сразу после принятия решения
Так, например, для выхода из приложения пользователь начинает осуществлять свайп от нижней границы экрана и видит анимацию окна активного приложения. Уже в этот момент можно придумать желаемое действие и либо закончить свайп ближе к верхней границе экрана для выхода на рабочий стол, либо остановить свайп на середине для попадания в панель многозадачности, либо прервать свайп и продолжить его для завершения приложения.
Это же касается бокового свайпа слева направо по нижней части док-панели. Мы начинаем осуществлять жест, а затем можем выбрать, как хотим его закончить: вызвать последнее открытое приложение или попасть в панель многозадачности.
Так iOS взаимодействуют с пользователем не линейным способом, а параллельным, скорость работы с гаджетом при этом возрастает .
А как в Android: в конкурирующей операционной системе тоже есть жесты для параллельного взаимодействия пользователя и ОС. К сожалению, такие жесты меняются от версии к версии, являются эксклюзивными у определенного производителя смартфонов или разработчика оболочки.
К подобным фишкам на Android просто невозможно привыкнуть. Они будут по-разному работать на разных смартфонах и даже в разных приложениях.
3. У всех элементов интерфейса есть свой вес
Разработчики заморочились настолько, что сделали некое подобие физического движка для отрисовки анимации в системе. Это позволяет просчитать параметры отрисовки всех элементов так, чтобы они выглядели максимально реалистично и вели себя предсказуемо.
Буквально каждый элемент iOS имеет специальный параметр, который означает его вес. Чем тяжелее элемент, тем дольше он будет разгоняться при движении.
Это заметно при прокрутке страниц, списков, фото или открытых приложений в iOS. Программы – это “тяжелые” элементы, прокручиваются в панели многозадачности они медленно и неохотно. Как бы быстро мы не осуществили свайп, прокрутить несколько десятков карточек не получится.
Страницы в браузере, фото в галерее или длинные списки на одном экране – элементы “средней тяжести”. Их можно хорошенько крутануть и одним свайпом прокрутить от 20 до 50 штук. Они медленнее останавливаются и имеют хорошую инерцию.
Самые “легкие” элементы это какие-то части интерфейса, например, барабаны для выбора даты и времени. Даже простым свайпом можно с легкостью раскрутить на несколько оборотов минутное колесо или отмотать дату на пару месяцев.
Мы не замечаем этих мелких фишек iOS, но они функционируют так, как мы ожидаем на подсознательном уровне.
А как в Android: ни о каком виртуальном весе элементов речи не идет, ведь большая часть модулей создается разными разработчиками и компаниями. Никто не будет согласовывать такие мелкие фишки, особенно, когда это касается надстроек над чистой ОС.
4. Действию пользователя отдается полный приоритет
Мобильная операционная система Apple очень отзывчивая и послушная. Это достигается путем использования всевозможных программных решений и ухищрений, но самое главное – это приоритет обработке касания.
Как только любой миллиметр сенсорного покрытия дисплея iPhone ощущает касание пользователя, система выделяет приоритет обработке нажатия. Сразу же начинает происходить какое-то действие и оно сопровождается какой-либо обратной связью в виде анимации или тактильного отклика.
Это легко заметить на старых смартфонах, которые с трудом работают на последних версиях iOS. Как бы тяжело не было гаджету, но он в первую очередь обрабатывает действие пользователя и выдает обратную связь, а лишь затем выделяет ресурсы на вычислительные процессы, отрисовку картинки и прочего.
Как бы не тормозил старый iPhone, но на нажатия он реагирует исправно . Может тормозить анимация или долго запускаться приложение, но задержка между нажатием и началом операции будет минимальная.
А как в Android: в этой ОС обработка касания не имеет никакого преимущества над другими процессами. Оно обрабатывается одновременно с остальными операциями и в случае нехватки ресурсов системы тормозит вместе с остальными.
Если не верите, посмотрите на музыкальные приложения для Android. Годных “стучалок” на барабанах или “брынчалок” на гитаре практически нет, разработчикам крайне сложно реализовать моментальную обратную связь на нажатия пользователя.
5. В Apple не гонятся за частотой обновления картинки, но увеличивают частоту сенсора
Кроме описанного выше приоритета разработчики пытаются улучшить взаимодействие с пользователем на уровне железа. Купертиновцы уже не первый год выпускают iPad Pro с частотой экрана 120 Гц, но не спешат добавлять подобную фишку в айфон. Вместо этого начиная с iPhone XS гаджеты компании оснащаются быстрым сенсором с частотой 120 Гц.
Это позволяет еще быстрее начинать обрабатывать действия пользователей. Такое железо вместе с программной реализацией приоритета обработки касания делает iPhone одним из самых быстрых смартфонов по скорости отклика. По этому показателю его не могут обогнать большинство Android-смартфонов с частотой обновления экрана от 90 до 240 Гц.
А как в Android: в последнее время производители смартфонов начали оснащать топовые гаджеты экранами с большой частотой обновления. Если при этом присутствует и программная реализация всех необходимых фишек, такой экран идет в плюс устройству. Однако, если это просто модное железо, никакого профита пользователь от такого экрана не получит.
6. Система размывает и растягивает движущиеся объекты
Еще один прием для создания эффекта плавности – размытие и растягивание элементов. Такую операцию iOS производит десятки или даже сотни раз в секунду.
Вместо простого перемещения элементов на экране разработчики научили операционную систему дорисовывать промежуточные кадры со смазанной или растянутой картинкой.
Применяемый эффект напрямую зависит от типа объекта. Если перемещается иконка приложения, которая не меняет свои размеры на рабочем столе, то происходит дорисовывание кадров со смазанной картинкой. Если же происходит перемещение страницы с текстом или меню со списком, некоторые элементы интерфейса могут менять свои размеры и система будет дорисовывать их вытянутые копии при движении.
А как в Android: в большинстве случаев системы просто перемещает объекты по экрану. Некоторые пользователи с острым зрением при этом замечают отсутствие плавности и дёрганую картинку.
7. Анимация всегда подсказывает пользователю
Есть сразу несколько принятых в iOS правил, которые помогают системе “общаться” с пользователем на графическом уровне. Они реализованы на системном уровне и прописаны в так называемых гайдлайнах для разработчиков, но не являются обязательными для реализации.
◆ Нажатие виртуальной кнопки имитирует поведение реальной физической кнопки. У такого элемента обязательно присутствует мгновенное выделение, возможность нажатия до окончания анимации, возможность отмены действия, если увести палец за пределы кнопки.
Так пользователь может быстро совершать действия, в которых он уверен, и отменять ошибочные действия.
◆ Анимация упругости или так называемый резиновый ограничитель помогает понять границы дозволенного. Проще всего увидеть работу этой фишки во время прокрутки списков, настроек или страниц в браузере. Интерфейс показывает пользователю границу элементов и недопустимость совершения действия.
При этом у нас остается чувство контроля, ведь мы можем попытаться прокрутить список ниже границы, система же при этом мягко вернет нас в допустимые рамки.
◆ Тип взаимодействия с элементами влияет на их поведение. Так один и тот же элемент интерфейса может иметь несколько разновидностей анимации. Например, при открытии шторки ее можно поднять или опустить как нажатием, так и свайпом. При этом после нажатия происходит плавная анимация с заданным временем, а при свайпе действие рассчитывается в зависимости от его скорости.
Чтобы пользователь наглядно увидел разницу, при быстром открытии происходит небольшое подпрыгивание.
Эти и другие элементы интерфейса легко программировать для работы в сторонних приложениях, разработчики имеют достаточно средств для реализации подобного поведения в своем интерфейсе. Если вы занимаетесь созданием программ и игр, можете самостоятельно изучить все это на готовых примерах с GitHub.
А как в Android: здесь все стремятся просто ускорить или вовсе отключить большинство анимаций, выдавая это за быстро работающую систему. Толку от быстрой работы не будет, если действия пользователей обрабатываются дольше, а принимать решения сложнее из-за отсутствия подсказок.
Что в итоге
Теперь вы подумаете перед тем, как очередной раз ругать разработчиков iOS за отсутствие фишек, инноваций или опций, которые появились в Android несколько лет назад.
Купертиновцы в первую очередь работают над удобством и отзывчивостью интерфейса. Доводят до идеала взаимодействие гаджета с пользователем и оттачивают и без того крутые механизмы. Только после того, как гаджет начинает работать плавно и предсказуемо, программисты берутся за реализацию других программных фишек.
Если по количеству настроек и возможностей iOS пока только догоняет Android, то последний не может угнаться за системой Apple по количеству всевозможных ухищрений и технологий, повышающих удобство работы с системой.
Источник