Как Google помогла похудеть Android 4.4 KitKat

Дэн Ровински написал на ReadWrite.com статью о том, как в Google сделали липосакцию для Android 4.4. Здесь мы предлагаем краткий пересказ этой статьи на русском языке.

По мнению инженеров Google, Android созрел и достиг паритета с другими лучшими операционными системами (в частности, с iOS). За последние два года Google сосредотачивала свое внимание не только на функциональности Android, но и на его оптимизации. Вместе с Android 4.1 Jelly Bean был представлен Project Butter (Проект Масло) — с его помощью UI стал более плавным, вероятность ошибок существенно сократилась.

nexus 5 book

В этот раз Google обратила свое внимание на потребление памяти Android. Была поставлена цель уменьшить количество «съеденной» ОС ОЗУ, оставив при этом ту же функциональность. Названо это было Project Svelte (Проект Стройный), его результаты видны в Android 4.4 KitKat.

Дейв Бёрк, технический директор Android, рассказывает: «Часто мы шутили, когда начинали «Проект Масло», что, на самом деле, от масла ведь толстеют. Тогда я сделал «Проект Стройный», чтобы похудеть. Так что теперь мой вклад в Android равен нулю».

Последний проект позволяет Android 4.4 работать на любых устройствах с оперативной памятью от 512 Мб. Это последняя версия Android и это должно сократить количество новых устройств, выпускаемых с Gingerbread 2.3, а в конечном итоге, это должно сократить и фрагментацию.

В целом проект начался с Nexus 4. «Целью проекта «Стройный» было уложиться в 512 Мб памяти. Кстати, как мы делали это… мы взяли Nexus 4 и ограничили его для работы только с 512 Мб ОЗУ», говорит Бёрк. Следующим шагом было уменьшить разрешение экрана и уменьшить количество работающих ядер с четырех до двух. Тактовая частота так же была снижена. Чтобы убедиться, что все идет по плану и обеспечена действительно правильная работа, все инженеры перешли на такую «урезанную» версию Nexus 4.

«Мы снизили разрешение до QHD, то есть до 960 x 540 точек, потому что это своего рода идеальный размер для смартфонов начального уровня. Мы сократили количество ядер до двух, снизили тактовую частоту и сделали много чего еще. Мы были вынуждены использовать такой смартфон всегда. Это было больно, но с этого надо было начинать», продолжает Дэйв.

Четыре главные цели Google в «похудении» Android заключались в следующем:

  • Сократить размер системы
  • Сократить количество используемой памяти в приложениях, которые работают на устройствах Nexus по умолчанию (Google Apps)
  • Исправить всевозможные ошибки, когда из-за нехватки памяти приложения «падали»
  • Обеспечить лучшее определение и инструментарий, чтобы разработчики могли понять, как приложения работают в Android и как они могут использовать память

Последний пункт относится к «ProcStats» — это статический процесс для использования разработчиками.

«Мы не дали возможность включить или отключить этот функционал. Если вы разработчик и зайдете в настройки на устройстве с Android KitKat и сделаете то, что называется ProcStats — вы сможете посмотреть на различные приложения и услуги в системе, сможете увидеть, как они работают и сколько оперативной памяти они используют в фоновом режиме. Отчасти это балльная система, например, это приложение тяжелое. Затем вы сможете реально увидеть, какие приложения потребляют много памяти долгое время в фоновом режиме. Мы обнаружили, что это очень полезно на примере приложений Google. Часто мы обнаруживали, что некоторые из наших приложений были неэффективными в отношении потребляемой памяти. Они использовали память в фоновом режиме постоянно, 24 часа в сутки. Таким образом, это очень полезный инструмент для анализа» — объясняет Бёрк.

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

В конечном итоге, пользователь вряд ли заметит разницу между Jelly Bean и KitKat. Команде Android удалось сделать липосакцию своей системе, оставив тот же опыт и функциональность.

Поделиться
Плюсануть
Класснуть
  • Рубрика: Android