Решил продолжить цикл своих повествований про всякие бесполезные нововведения и непрекращающуюся гонку характеристик, которые производители устроили на рынке мобильных устройств. Вернее, решил уже давно, и даже тему выбрал заранее, но время для второго выпуска выкроил только сейчас. Напомню, что первая моя статья была про разрешения экранов. А сегодня мы поговорим про оперативную память. Вернее – о её количестве, необходимом для комфортной эксплуатации гаджета под управлением Android OS.


А чего тут думать? Чем больше памяти, тем лучше, это же очевидно! По крайней мере производители именно в этом пытаются нас убедить. Вы всё ещё сомневаетесь? Чтобы правильно ответить на этот вопрос, давайте для начала разберемся, как в принципе Android работает с оперативной памятью.

Android и оперативка

На самом деле – все очень просто. Объясняю на пальцах. Условно, физически доступный объем оперативной памяти (независимо от её абсолютного количества) можно разделить на 3 куска – системная часть (невыгружаемая), пользовательская часть (которую мы можем очищать закрытием приложений через меню многозадачности) и свободное место.

Примерно, вот так:



Весь объем оперативной памяти

Системная невыгружаемая область

Пользовательская область

Свободное место

Пользовательская автозагрузка

Пользовательские приложения

Как вы наверное поняли, первое – это ядро системы Android, служебные модули и сервисы, а кроме того, ПО добавленное производителем устройства при “улучшении” системы, и тут может быть что угодно – программа для обновления по воздуху, слежение за глазами, пробуждение при помощи жестов, беспроводный обмен файлами, ПО для фирменных аксессуаров, типа чехлов с окошками или стилуса, встроенный бэкап, менеджер тем, короче – уникальные настройки и функции не реализованные в чистом Android или сделанные производителем “по другому”. В общем, это все те проприетарные уникальные фишки при помощи которых вендоры борются за предпочтения пользователей – надстройки над ОС, которые мы привыкли называть фирменными оболочками (TouchWiz, LG UI, EMUI, Vibe UI, MIUI и т.д.). Как вы понимаете, в большинстве случаев обычный пользователь не может влиять на состав системных модулей и, следовательно, на объем памяти, который занимает система при загрузке. Или его возможности в этом плане очень сильно ограничены – есть вещи которые нельзя отключить, или они всё равно работают, даже если кажется, что вы их выключили. Кроме того, пользователю не дано право закрывать программы и сервисы, которые висят в данной части оперативной памяти – вы их просто не видите в меню многозадачности.

Далее мы получаем первоначальный свободный объем оперативки – тот, что доступен сразу после окончания загрузки устройства. Это как раз и есть пользовательская область. Казалось бы, вся она в нашем полном распоряжении? Ан нет! Учтите, что производители обычно добавляют в прошивку еще некоторые программные модули, которые могут время от времени запускаться “по требованию” – по запросу пользователя, по расписанию, или по “просьбе” невыгружаемых сервисов, которые уже “сидят” в системной области оперативной памяти и диктуют оттуда свою волю, время от времени увеличивая объем невыгружаемой системной памяти. Кроме того, не забываем про пользовательскую автозагрузку. Например, это могут быть любимые вами чатики и клиенты социальных сетей, почтовые приложения и т.п. – они уже ждут своей очереди, чтобы занять тёплое место в оперативной памяти и начать заваливать вас уведомлениями. Так вот, это невидимое ПО, совместно с приложениями, которые юзер запускает вручную, начинает совместное заполнение свободного объема пользовательской части оперативки. Каждый компонент откусывает свой кусочек в зависимости от потребностей. Кто-то больше, кто-то меньше, но свободная оперативка съедается достаточно быстро.

Но всему есть предел. И он наступает раньше, чем вы могли бы предположить. Система Android изначально резервирует определенное количество оперативной памяти для быстрого запуска новых приложений и старается держать её все время свободной. На этапе использования пользовательской части оперативной памяти начинает работать так называемая вытесняющая многозадачность, когда для ускорения запуска нового приложения используется свободная область оперативки, а следом система начинает “прибивать” ранее запущенные приложения, стремясь вернуть свободный объем к заданному значению. Обычно, это около 10-20% всего доступного объема оперативной памяти, или 200-300 МБ (зависит от настроек использования памяти). При этом ОС Android сама решает, какие приложения оставить в памяти – на основе приоритетов и частоты использования, но это уже другая история. Если приложение слишком тяжелое, например, какая-нибудь игра, и резервируемого свободного объёма не хватает, система сразу закрывает часть “старых”, запущенных ранее приложений, оставляя только их пуш-модули и выделяет оперативку под новые задачи снова и снова.

Итак, с механизмом взаимодействия Android и оперативной памяти в примитивном изложении мы разобрались (на самом деле там очень много тонкостей и нюансов), перейдем к конкретным цифрам.

Так всё же, сколько “оперативки” нужно Android для нормальной работы?

И тут сразу стоит отметить следующее. “Чистый” Android и основанные на нем AOSP прошивки и тот Android, что предлагают нам производители устройств, очень сильно отличаются по аппетитам в отношении оперативной памяти.

Например, рассмотрим ситуацию на примере “среднестатистического” флагмана LG G4, работающего под управлением Android 6.0 Marshmallow. Сразу после загрузки ОС можно определить, сколько памяти занимает наша система, а именно, ядро, сервисы и все программы, которые производитель поставил в автозагрузку. Обычно, на сегодняшнем этапе развития, это 500-600 Мб для самого ядра системы Android. Еще около 120-150 МБ займут дополнительные служебные модули, типа ПО мобильной передачи данных, Wi-Fi, Bluetooth, определения местоположения и прочего (Система Android). Сервисы Google Play – 70-80 МБ. Графический интерфейс системы – 150-200 МБ. И рабочий стол (куда ж без него) – 60-80 Мб. Путем несложных расчетов получаем около 800-900 МБ необходимых для базового функционирования системы. Короче, гигабайта оперативки считайте уже нет. Это у LG так. А, например, у Samsung система займет еще больший объем – 1,2-1,5 ГБ.

В случае с “чистым” Android, по моим наблюдениям, дела обстоят значительно гуманнее – эти цифры меньше примерно в 1,5-2 раза – всего 400-600 МБ!

Для примера сравним показатели использования оперативной памяти на трех смартфонах, работающих под управлением Android Marshmallow и топ потребления памяти за последние 3 часа.

LG G4 (официальная прошивка Android 6.0, 3 ГБ RAM):

Google Nexus 6 (Android 6.0.1, 3 ГБ RAM):

Samsung Galaxy Note 2 (CyanogenMod 13, 2 ГБ RAM):

Итак, можно сделать следующие выводы. Для нормального функционирования Android нам необходимо выделить около 500-600 МБ оперативки под системную область в случае с AOSP-прошивкой и не менее 1-1,5 ГБ для проприетарной прошивки с оболочкой. Естественно, речь идет о флагманах. В бюджетные и среднебюджетные аппараты производители не запихивают столько “уникальных” функций, поэтому необходимый объем системной части оперативки может сократиться до 300-400 МБ (в зависимости от модели смартфона).

Теперь перейдем к пользовательской части оперативки. Что касается обычных приложений, которыми мы пользуемся каждый день, то их потребности в оперативной памяти очень сильно разнятся. От 10-20 КБ для самых простых утилит до десятков и сотен мегабайт для более сложных приложений и игр. Причем, этот объем не фиксирован, запросы постоянно меняются в зависимости от системных настроек, выполняемых пользователем операций и вызываемых функций приложения. В любом случае, для обеспечения нормальной многозадачности нам бы хотелось, чтобы в оперативке находилось 5-10 обычных приложений, или около 5-7 приложений и игра, получается, что в среднем это 600-800 МБ. Не забываем про постоянно поддерживаемое системой свободное место и получаем около 1 ГБ необходимой оперативки – именно такой объём будет оптимальным для пользовательского раздела.

Конечно, потребности пользователей очень сильно разнятся. Однако, 2 ГБ оперативки – именно такой объем я считаю минимально необходимым в Android-смартфоне на сегодняшний день. Для совершенно нетребовательных пользователей, которые еще и не играют в игры на своём смартфоне, будет достаточно и 1,5 ГБ. Но, следует учесть, что если для среднебюджетного аппарата, или флагмана на AOSP 2 ГБ будет хорошим значением, то для флагмана с кучей фишек в проприетарной оболочке – уже впритык, и вы, скорее всего, начнете замечать нехватку оперативной памяти в виде недостаточной многозадачности – первоначально запущенные приложения будут закрываться в фоне и при повторном обращении к ним софт будет запускаться заново. Кроме того, нехватка свободной оперативной памяти приводит к лагам и увеличению времени запуска приложений, ведь чтобы запустить новую задачу, системе надо закрыть старую программу, а на это уходит определенное время. Именно поэтому на данный момент производители стараются устанавливать 3 ГБ оперативной памяти в свои флагманские устройства. И такой объем в принципе можно считать достаточным для любого топового устройства. А вот нужно ли больше? Давайте разбираться.

Увеличенные энергозатраты как обратная сторона улучшенной многозадачности

Чем больший объем оперативки доступен системе Android, тем больше приложений может быть запущено в фоне и тем больше памяти каждое приложение может “попросить” у системы. Стоит ли потакать таким запросам? Вот это уже следующий вопрос, который мы рассмотрим.

И тут, внезапно, я перейду к вопросу автономности и покажу, как он напрямую связан с объемом используемой оперативной памяти.

Тут собрались думающие люди (я надеюсь на это), которые понимают, что всё в этом мире имеет свою цену. Сколько оперативки не дай системе Android, она всю ее “сожрет”, вернее – откусит столько, сколько ей нужно, а остальным объёмом щедро поделится с приложениями. Увеличение объема оперативной памяти приводит к тому, что в памяти “висит” больше процессов и каждый из них не отдыхает там, а потребляет ресурсы процессора, сетевой трафик, и, соответственно, расходует заряд аккумулятора. Причем в случае с проприетарной оболочкой система откусит под свои нужды кусок примерно в 2 раза больший, чем “чистый” Android. Именно увеличение расхода заряда аккумулятора и является той ценой, которую мы платим за улучшение многозадачности. Вывод: больше оперативки – больше процессов – больший расход электроэнергии.

Вместо выводов: крик души

Хочу отметить следующий факт с которым вы можете согласиться или оспорить его в комментариях. Пользовательский опыт в современных смартфонах не меняется со времен Android 4.х. При этом растет объем оперативной памяти, которую производители устанавливают в устройства, да и ёмкость аккумуляторов постоянно увеличивается. Я помню времена, когда 2000 мАч и 1 ГБ считались топовыми характеристиками. Сейчас мы имеем 3-4 ГБ и 3000-4000 мАч. И смартфоны по прежнему живут от силы один световой день. И всё это происходит на фоне постоянного увеличения производительности SOC с одновременным улучшением их энергоэффективности. Конечно, на эту ситуацию очень сильно влияет и увеличение разрешений экранов, не зря я упомянул об этом в начале своего повествования. Ведь данный “прогресс” также напрямую связан с необходимостью увеличения объема оперативной памяти, которую помимо приложений использует и видеоускоритель, так как для рендеринга большего количества пикселей необходимо выделить еще больше оперативки.

Фактически, мне кажется, что индустрия смартфонов топчется на месте. Единственный заметный прогресс наблюдается в камерах – тут уже не поспоришь – улучшения налицо. Но во всем остальном – хочется крикнуть: “Астанавитесь! ©”. Последние анонсы новинок на MWC 2016 только окончательно подтверждают мою основную мысль – ничего нового, кроме увеличения характеристик. Разве что, у LG получилось создать нечто оригинальное, представив новую концепцию модульного смартфона LG G5, за что им и была присвоена награда за лучший смартфон выставки.

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



The post Сколько “оперативки” нужно Android? appeared first on Root Nation.