Что значит управление памятью в приложении
Часто не самые опытные пользователи Android могут столкнуться с некоторыми проблемами, решение которых им не по силам. Часто это бывают какие-то мелочи, решение которых требует буквально пары тапов по экрану, но при этом не лежит на поверхности. Одной их таких проблем является нехватка свободного места. Бывает такое, что человек пользуется телефоном с большой памятью, но в какой-то момент при попытке скачать не самое крупное приложение, он сталкивается с неприятным предупреждением. Оно гласит, что в памяти нет места и приложение не может быть скачано. Паника и разочарование сменяют друг друга, а на самом деле надо всего лишь сделать несколько простых действий.
Телефон пишет, что нет места? Сейчас запихнем все, что надо.
Как проверить, сколько памяти в телефоне
Начнем с банального. Как-то раз мне сказали, что в телефоне кончилась память и не получается сделать фото. При этом уверяли, что реально память точно не могла кончиться. Естественно, я решил проверить и оказалось, что все хранилище было забито видео, автосохранениями из WhatsApp и тому подобным. Чтобы проверить, действительно ли в телефоне нет свободного места, надо просто зайти в настройки и проверить, что там хранится.
Для этого откройте настройки телефона и пролистайте до пункта ”Память”. Открыв его, можно сразу увидеть все, что относится к хранилищу, включая тип файлов, которые занимают место, общий объем накопителя и свободное место.
Тут можно посмотреть объем свободной памяти.
В некоторых смартфонах раздел находится в одном из пунктов. Например, в последних версиях Samsung его спрятали в ”Обслуживание устройства”. Проще будет найти его поиском по настройкам. Просто напишите в строке поиска ”Память” и получите то, что вам нужно.
Приложения из закона о российском софте сливают ваши данные за рубеж
Очистка кэша Google Play
Еще одной частой причиной проблем с нехваткой места является кэш Google Play. Если вы уверены, что накопитель не мог переполниться большим количеством файлов, сделайте следующее. Заодно и скорость работы можете повысить.
Заодно проделайте такую же процедуру для ”Сервисы Google Play”. Так вы сделаете шаг в сторону более чистого телефона, который может даже начать работать быстрее. Если на последнем этапе вы выберете не ”Очистить кэш”, а ”Сброс”, удалится больше данных, и, скорее всего, это будет даже лучше, но вам придется заново залогиниться (вспомнить пароль) и внести все данные.
Как узнать версию Android и обновить его
Как почистить телефон на Android
Есть способ почистить память смартфона штатными средствами и сделать это довольно неплохо. Для этого все производители оснащают свои устройства системами очистки. Чаще всего приложение, которое за это отвечает, называется ”Диспетчер телефона” или что-то в этом духе. Название может отличаться в зависимости от производителя. У Samsung, например, этот пункт вообще спрятан в настройки и называется ”Обслуживание устройства”.
Оптимизация телефона на примере Honor 20 Pro.
Открывая его, можно оптимизировать работу смартфона в целом или пройтись по хранилищу. Вам предложат умную очистку и покажут, сколько места она освободит. Некоторые смартфоны даже предложат список приложений, которыми вы пользуетесь очень редко, и скажут, что их можно удалить, показав, сколько памяти высвободится при такой очистке.
Приложения для очистки телефона
Все эти приложения действительно могут оптимизировать работу смартфона, но я так и не нашел для себя то, что подходило бы мне. В этом отношении я даже больше доверяю встроенным в смартфон системам очистки. Просто не хочется доверять сторонним приложения свой смартфон и хранящиеся в нем данные. Многие со мной не согласятся, но я точно знаю, что многие меня поддержат.
Многие приложения-клинеры используют этот символ. Он говорит о многом.
Как сохранить память телефона
Советы, как сохранить память телефона, могут быть очень банальными, но они самые действенные. При съемке видео не выбирайте разрешение выше 1080p. Если снимаете что-то в 4K, останавливайте запись, когда в кадре нет ничего интересного, а потом сразу скидывайте материал на компьютер или в облако. Про разрешение видео я подробно рассказывал в этой статье.
А еще, сразу после установки отключите автосохранение материалов из мессенджеров. Вот они настоящий рассадник ненужного контента. Все, что вам пришлют, сохранится в память телефона, если вы не отключите эту функцию. В итоге, некоторым пользователям потом приходится удалять гигабайты ненужных фото и видео, которые плотно переплетаются с галлереей.
Будьте внимательны! Не зря говорят, что чисто не там, где убирают, а там, где не мусорят. Так и с телефоном. А если это системный кэш, то выше я рассказал, как его удалить.
Свободное общение и обсуждение материалов
Знакомства в интернете вышли на новый уровень, особенно им подсобила пандемия - мало того, что до нее люди совсем обленились знакомиться в общественных местах, так теперь в этом совершенно нет необходимости. Удалёнка пришла не только в деловую сферу, но и в сферу межличностных отношений. Да, это удобно и помогает за два свайпа завести отношения, но я считаю, что нам это только помогает убивать психику и деградировать. Почему так происходит?
Производители телефонов, особенно с низкой и средней полки, часто оснащают свои продукты внутренней памятью слишком малой емкости, но оставляют возможность расширить её с помощью карты памяти microSD. Смартфонов без соответствующего гнезда, к счастью, всё меньше и меньше, но у пользователей немного причин для радости.
8 ГБ в спецификации выглядит не плохо, однако, нужно иметь в виду, что примерно половина этого пространства займёт операционная система и предустановленные приложения, от которых очень сложно избавиться. В вашем распоряжении останется около 4 ГБ памяти, – это в лучшем случае. В некоторых моделях это место сокращается до 3 ГБ, и это только в самом начале использования смартфона.
Сразу после запуска выяснится, что предустановленные приложения устарели, а загрузка новых версий немедленно приведёт к снижению количества свободного места. К этому добавляются программы, которые мы устанавливаем сами, а в будущем также обновления операционной системы, прошивки и исправления безопасности. Всё это приводит к тому, что память быстро заполняется и в какой-то момент просто заканчивается.
Не все также понимают, что при использовании приложение создаёт много дополнительных мегабайт в виде временных файлов и файлов с данными. Интернет-браузеры и игры могут создавать файлы, объем которых со временем измеряется в гигабайтах. К счастью, мы не бессильны в такой ситуации и даже устройство с небольшой памятью может нам служить вам хорошо, если мы будем принимать необходимые процедуры.
Обязательная карта памяти
Первый способ увеличить объем памяти в смартфоне или в планшете – это покупка и установка на карты памяти microSD. В случае устройств с 8 ГБ встроенной памяти, это процедура совершенно необходима, если мы хотим в полной мере использовать устройство. Когда у нас нет такой карты, все данные, такие как фильмы и фотографии с камеры, хранятся во встроенной памяти, если их качество является хорошим, оно быстро заполнят память. К сожалению, недостатком этого решения является то, что не всё может быть сохранено или перенесено на карту. Многие приложения просто должны быть установлены во внутренней памяти, чтобы они могли работать должным образом. В некоторых моделях телефонов мы найдём функцию, которая позволяет отформатировать карту таким образом, чтобы она была видна системе как внутренняя память.
В этой ситуации рекомендуется использование высокоскоростную карту microSD, чтобы не замедлять работу вашего телефона. Стоит рассмотреть относительно новый класс карт памяти, предназначенных для использования в смартфонах. Такие носители обозначаются символом A1, что гарантирует производительность, необходимую для запуска и работы приложения (случайное чтение 1500 IOPS и случайная запись 500 IOPS при последовательной передаче не меньше 10 МБ/сек).
Стоит также иметь в виду, что не все телефоны и планшеты поддерживают карты объемом 64, 128 ГБ и больше. Никаких проблем не должно быть с картами на 32 гигабайта и меньше, которые должны работать с практически любым устройством.
Поддержка карт памяти SD
Если мы являемся счастливыми обладателями смартфона с кард-ридером, то решение проблемы с нехваткой места для данных найдётся очень легко, хотя и здесь могут скрываться различные неудобства.
Первое – это разъем гибридный dual SIM, используемый некоторыми производителями. Это довольно «проблемное изобретение» для людей, которым нужно использовать одновременно два номера. Слот для второй SIM-карты, одновременно, служит в качестве ридера карт microSD, приходится выбирать – либо расширение памяти, либо второй номер телефона.
Если карта уже в ридере, то нам остается её только отформатировать. Переходим к Настройкам системы и из списка выбираем Память, а затем нажмите Карта памяти. Теперь, в зависимости от модели телефона и операционной системы, выбираем пункт Форматировать как внутреннюю память. Последний пункт был введен в Android 6.0 (Зефир), что позволяет «связать» SD-карту с внутренней памятью смартфона.
Благодаря этому, исчезает проблема свободного места для приложений, но в то же время мы не сможем использовать такие карты в качестве носителя на другом устройстве, или скопировать из неё данные непосредственно при подключении к компьютеру.
Стоит также добавить, что сам Android версии 6.0 или более поздней версии, не гарантирует форматирования карты в качестве внутренней памяти. Производители часто блокируют такую возможность в более дешевых устройствах, чтобы побудить нас к покупке более дорогой модели.
Если в нашем телефоне нет функции объединения SD карт с внутренней памятью, нам остается перенос данных на внешний носитель. Чтобы это сделать, необходимо зайти в список установленных приложений. Внизу открываем Диспетчер приложений и находим программу для переноса. После её выбора нажмите Память, а затем кнопку Изменить.
Важное примечание: приложения перемещенные на карту не будут работать после её извлечения из устройства.
Носитель SD разгрузит также внутреннюю память в ситуации, когда мы делаем много фотографий или записываем видео с помощью встроенной камеры. Просто в опциях приложения для съемки выберите опцию записи на карту памяти. Большинство современных телефонов установит её автоматически после обнаружения присутствия карты в считывателе.
Хранение файлов на внешней карте облегчит их перенос на пк, а также защитит их в случае поломки смартфона. Функцию автоматической записи фотографий на карту памяти в системном приложении «Камера» можно найти в настройках – Место хранения.
Полезные приложения для очистки памяти
Очистку системы от ненужных приложений и файлов мы можем провести вручную, с помощью настроек системы. Однако, не каждый пользователь имеет желание, время и навыки, чтобы сделать это самому.
С этой целью лучше всего воспользоваться одной из многих бесплатных программ, предназначенных для комплексной оптимизации. Одним из лучших и самых популярных инструментов является CCleaner – хорошо известный пользователям персональных компьютеров.
Программа позволяет оптимизировать работу как внутренней памяти, так и оперативной памяти устройства. После запуска CCleaner отображает уровень использования памяти устройства. Перед началом работы с программой, стоит зайти в её Настройки и активировать Углубленную очистку, которая позволяет удалять также скрытую кэш-память.
Затем в главном меню нажмите на кнопку Анализ и дождитесь результатов сканирования. В конце приложение выдаст отчет. Мы можем выбрать элементы, которые будут удалены, например, кэш-память, миниатюры изображений или данные приложения.
CCleaner автоматически выбирает те из них, которые могут быть безопасно удалены (без потери данных), а такие разделы как Данные приложений или Загрузки вы должны выбрать сами, потому что их удаление связано с потерей данных, настроек или скачанных из интернета файлов.
Другие интересные функции программы – Менеджер приложений с функцией распределения программ с учетом места, которое они занимают, и возможностью их гибернации, если вы редко им пользуемся. Полезен также инструмент для анализа памяти, который сообщит нам, какие данные занимают много пространства в памяти.
Что «съедает» внутреннюю память смартфона:
- обновление предустановленных приложений и операционной системы
- временные файлы операционной системы и приложений
- генерируемые и хранимые в программе данные
- файлы кэша приложения
- миниатюры предварительного просмотра фотографий
- файлы, загруженные приложениями
- игры и приложения, устанавливаемые пользователем
- данные в автономном режиме, например, карты
Очистка системы Android
С помощью инструментов системы Android мы можем легко и быстро освободить ресурсы памяти нашего смартфона. Первый и самый простой способ – обзор установленных приложений и удаление ненужных и неиспользуемых.
Часто мы также устанавливаем несколько программ одного типа, например, погодные приложения или новостные. Стоит оставить только те, которыми мы пользуемся чаще всего.
Пользователи обычно не понимают, сколько программ у них установлено. Приложения устанавливают для пробы, а потом о них забывают.
Чтобы проверить, какие программы мы используем реже всего, достаточно зайти в Магазин Play, выбрать Мои игры и приложения и перейти на вкладку на Установленные.
Затем просто отсортировать их по ключу Использовались в последнее время. В самом конце списка, мы найдем те, которые мы совсем не пользуемся. Затем найдите в Диспетчере приложений устройства соответствующую программу и нажмите кнопку Удалить .
Не надо беспокоиться: удаляя программы, за которые мы заплатили в Google Play, с помощью той же учетной записи, мы сможем их снова установить в любой момент.
В случае приложений, встроенных в систему, вместо кнопки Удалить вы можете увидеть другую, например, Отключить или Удалить обновления . Если вы не собираетесь использовать такую программу, Вы можете воспользоваться этими функциями, что освободит немного места в памяти.
Стоит нажать также кнопку Остановить принудительно , это приведёт к тому, что приложение не будет работать в фоновом режиме и освободит ресурсы. Не будет также генерировать дополнительные файлы, в том числе временные.
Если мы не хотим удалять приложения, мы можем вместо кнопки Удалить, выбрать пункт Память и очистить файлы и кэш. В первом случае мы потеряем данные программы, такие как настройки или данные для входа.
В случае кэш-памяти (кэш) не нужно удалять ее отдельно для каждого из приложений. Можно сделать это быстро с помощью функции, доступной в Настройках под названием Память. Просто выберите Память устройства и нажмите Кэшированные данные, а затем Удалить. Таким образом, мы можем быстро освободить до нескольких ГБ свободного места, не теряя информации.
Субботник в памяти
Активно используя телефон, мы собираем свой «урожай» на диске. Файлы с музыкой, смешные видео, PDF-документы и т.п. всё чаще оказываются в папке загрузки (Download), или, когда мы обмениваемся с другими пользователями, в папке Bluetooth.
Для просмотра содержимого памяти мы можем использовать любой файловый менеджер с Play Store (например, Total Commander или родной Solid Explorer) или встроенный инструмент – Мои Файлы.
В Моих Файлах мы найдём Историю загрузок и функцию хранения данных в облаке. Данные мы можем удалить или переместить на карту памяти, освободив место для новых данных.
Самая интересная, однако, функция хранения в облаке, благодаря которой после создания учетной записи мы можем бесплатно хранить данные на виртуальном диске.
Удобным приложением для мобильных фотографов может оказаться Google Photos или ему подобное. Эта программа автоматически будет отправлять фотографии в облако, одновременно, освободив пространство на вашем телефоне.
Резюме
Пользователи телефонов и планшетов хранят в памяти своих устройств всё больше и больше данных, которые со временем перестают быть актуальными. Благодаря приведенным выше советам, даже смартфоны с самой нижней полки могут быть полезны, так как система Android позволяет легко управлять пространством. Кроме того, нам доступно много бесплатных программ, которые проведут оптимизацию автоматически – с ничтожным участием пользователя.
К сожалению, жизненный цикл среднестатистического телефона с Android – это, примерно, три года. Спустя это время он часто становится «памятником» и никакие процедуры, позволяющие увеличить количество места, уже не будут приносить ожидаемых результатов. Покупка смартфона с большей памятью и новейшей операционной системой, безусловно, продлит срок комфортного использования.
Заметили, что на вашем смартфоне почти не осталось памяти? Возможно, вы не отключили несколько опций, а возможно, это необратимый процесс. Лайф разобрался, как очистить память в смартфоне.
Мессенджеры и приложения сохраняют файлы сами по себе
В ряде приложений, которыми мы часто пользуемся, включена автоматическая загрузка файлов. WhatsApp сохраняет все фото и видео, которые вам присылают собеседники, Instagram — снимки с фирменными фильтрами. Через год одна из таких "папочек" вполне может заполнить 10–15 гигабайт.
В каждом приложении сохранение файлов можно отключить. Наиболее гибкие настройки сохранения кэша — в WhatsApp. Зайдите в "Настройки" —> "Данные и хранилище". Вы увидите раздел "Автозагрузка медиа" и сможете управлять сохранением файлов — они могут вообще не перемещаться в память телефона или сохраняться, но только при подключённом Wi-Fi.
Как определить, что мобильное приложение шпионит за вами. Оно совершает эти 6 действий
Чтобы удалить загруженные данные, зайдите в диспетчер файлов или просто приложение "Файлы" (название зависит от прошивки смартфона). Как правило, в нём есть отдельная папка конкретного приложения. И удалите все ненужные данные.
Слишком много кеша
Приложения собирают мелкие данные, чтобы работать быстрее, не тратить лишний трафик и не скачивать их из Интернета каждый раз. Фотографии пользователей в соцсетях, их аватары, записи и даже рекламные баннеры. Много места они не "съедят", но вполне могут занять несколько сотен мегабайт.
Почти каждое приложение браузера, соцсети или мобильной игры позволяет контролировать сохранение кеша. Сбросить его можно в настройках программы, как правило, в разделе памяти и сохранённых файлов.
Фото и видео сильнее других данных заполняют память смартфона. Более того, часть фотографий — это рандомные скриншоты. В смартфонах последних двух лет снимок экрана делается при одновременном нажатии на качельку регулировки громкости и кнопки питания.
К сожалению, решение проблеме ещё не нашли — на iPhone без рамок это единственный способ сделать скриншот, производители Android-смартфонов предлагают альтернативную команду — свайп тремя пальцами вниз, но отключить снимок экрана по одновременному нажатию качельки и кнопки питания нельзя.
Поэтому единственный способ не забивать память — стабильно чистить галерею. Кроме того, фотографии можно хранить в "Google фото" — снимки сохранятся, окажутся доступны с разных устройств и не будут занимать пространство на накопителе.
Настройки -> Основные -> Хранилище iPhone. Вы увидите раздел "Другое", и файлы, хранящиеся в нём, также забивают память. Они могут занимать до 80% памяти вашего смартфона в зависимости от продолжительности пользования.
Проблема в том, что файлы из этой папки бесполезные, а удалить их невозможно. Грубо говоря, это хлам, который iOS накапливает во время работы.
Удалить его можно только одним способом — полностью обновив прошивку на iPhone. Беда в том, что после этой операции восстановить резервную копию невозможно. Стоит ли жертвовать всеми данными ради свободного места на накопителе? Подумайте, прежде чем решиться на эту процедуру.
Telegram хотят разблокировать, но смысл? Одна функция "Яндекс.Мессенджера" убивает его и WhatsApp
Более безопасное решение — выгрузить все необходимые данные в облако и загрузить обратно вручную. Это займёт больше времени, но вы освободите заветные гигабайты.
Эта опция есть не во всех смартфонах, зависит от прошивки. Когда вы удаляете файлы, они не стираются безвозвратно, а попадают в корзину и удаляются только спустя определённое время — в iOS через 30 дней, в Samsung One UI — спустя 15 дней.
Плюс этой опции — надёжность системы. Если вы случайно удалили файл, останется время, чтобы его восстановить. Минус — когда надо срочно освободить память, придётся удалить файлов и приложений больше, чем если бы функция "Корзина" была отключена.
Некоторые пользователи даже устанавливают приложения-убийцы или другие приложения для управления оперативной памятью, чтобы освободить место для хранения данных. Но действительно ли есть смысл в ручном управлении RAM-памятью на Android-девайсах?
Что такое RAM
В смартфоне, как и в любом ПК, есть несколько видов памяти. Они работают с разной скоростью и стоят также по-разному. К примеру, внутренняя память
относительно медлительна, недорога и может сохранять информацию даже при отключении источника питания. Именно во внутренней памяти хранятся приложения, их данные, а равно фото и видео. Оперативная память стоит дороже внутренней, но зато намного быстрее ее. При отключении питания информация в такой памяти не сохраняется. RAM-память является как бы рабочей оболочкой для ваших приложений, где хранятся временные данные, необходимые для использования вашего телефона.
Память заполнена: причина для паники?
Через некоторое время внутренняя память вашего телефона заполняется приложениями, которые вы используете чаще всего. В такой ситуации эта память должна быть частично очищена, чтобы была возможность открывать новые приложения. Однако вам ничего не нужно делать самому – за вас все сделает Android в автоматическом режиме.
Представление о том, что RAM-память внутри Android-девайса нужно очищать вручную, является не совсем верным. Если «оперативка» будет пустой, то вам придется постоянно перезапускать приложения, а это лишняя трата времени, ресурсов телефона и сокращение времени работы аккумулятора.
Полная RAM-память – это не слишком плохо, можно даже сказать, хорошо. Так как Android имеет свои корни в Linux и Unix, системное ядро Linux определяет правила для управления памятью. И такие правила следуют концепции, что свободная внутренняя память – это потерянная память.
Если вы включите смартфон и загрузите несколько приложений, то все эти приложения останутся в памяти. Если вы используете какое-то приложение, вы можете переключиться на главных экран и затем снова вернуться к этому приложению, и оно будет загружаться почти мгновенно. Это связано с тем, что приложение в той или иной форме остается во внутренней памяти.
Но если на вашем девайсе есть приложение-убийца или функция экономии памяти, которая постоянно закрывает процессы фонового режима, вам придется долго ждать, пока загрузятся такие приложения, как скажем, Facebook или Whatsapp. Подобный способ управления RAM-памятью может даже нанести вред производительным смартфонам, например, Samsung Galaxy S7.
Очистка оперативной памяти на Android-устройстве: когда ее нужно делать?
Есть мнение, что многие производители смартфонов оснащают свои девайсы функциями «очистки» для существующих приложений, и в этом слухе может быть какая-то доля правды. Хотя в действительности закрытие того или иного приложения для экономии места в RAM-памяти имеет смысл лишь в отдельных случаях.
Как правило, не рекомендуется прекращать работу приложения или очищать всю память. Тем не менее, бывает ситуация, которая требует прямого действия: когда приложение дает сбой или работает некорректно. Например, это может быть браузер, который работает с подтормаживанием или в котором присутствуют ошибки отображения информации. Либо это могут быт проблемы с загрузкой Facebook или Twitter. Такие симптомы могут быть весьма разнообразными. Даже перегрев смартфона без очевидной причины может быть связан с приложением, давшем сбой.
Только в подобных случаях есть смысл остановить работу поврежденного приложения. Иногда бывает достаточно убрать приложение из вида в режиме многозадачности, хотя это, по сути, эффект плацебо, так как мы лишь убираем приложение из обзора приложений, но не останавливаем его работу.
Как отобразить использование RAM-памяти и закрыть Android-приложения
Если сокрытие приложения не помогает, то вам может потребоваться более радикальный подход – закрыть приложение вручную. Это можно сделать в настройках. Здесь вы также можете посмотреть, какие приложения используют оперативную память больше всего, и какие приложения можно удалить в будущем.
Итак, чтобы отобразить объем используемой «оперативки», войдите в настройки вашего телефона, найдите меню приложений и откройте вкладку «Работающие». Начиная с версии Android Marshmallow, это представление имеет собственную запись в разделе «Память» в главных настройках.
Здесь вы увидите статистику использования памяти за последнее время. В зависимости от смартфона, подробный обзор может быть сокрыт за каким-либо дополнительным меню. Чтобы действительно закрыть приложение, вам необходимо перейти к информации о приложении. Как правило, сделать это можно, выбрав нужное приложение в перечне приложений. Здесь вы увидите иконку для того, чтобы остановить приложение. Впоследствии бывает так, что отключенное приложение снова запускается, но причина этого почти всегда заключается в тех или иных действиях пользователя.
Нажатие на отдельные приложения определит, какие из них потребляют большую часть системной памяти. Перезапуск смартфона может помочь в случае, если проблема не устранена.
Очистка RAM-памяти: удаление приложений, «съедающих» память
Приведенный выше список показывает, сколько памяти требуется приложениям. Эта цифра может также указывать на то, что для приложения требуется слишком много ресурсов. Помимо прочего, вы можете удалить приложения, которые не использовали длительное время, или те, которые выглядят подозрительно.
Войдите в меню настроек приложения или менеджера приложений и найдите соответствующее приложение. Теперь просто удалите приложение, если это возможно. Если это не сработает, вам необходимо удалить «расширенные права» приложения. Обычно вы предоставляете такие права приложению во время его установки на телефон. Откройте основные настройки, выберите раздел «Безопасность», затем «Администраторы устройства» и удалите крестик рядом с приложением. Теперь вы можете удалить приложение.
Заключение
Итак, нужно ли вам делать чистку внутренней памяти? Ответ прост – нет! Вам нужно лишь принять меры тогда, когда ваш телефон станет работать медленнее. В целом, Android-девайсы могут самостоятельно управлять RAM-памятью на оптимальном уровне. Закрытие приложений в общем списке приложений может улучить общую функциональность устройства, но это не имеет ничего общего с оптимизацией и эффективностью оперативной памяти.
На наш взгляд, автоматическое управление RAM-памятью Android-девайса – это самая быстрая и эффективная система, которую вы могли бы пожелать. Так что оставьте управление памятью самой ОС Android, и она вас не подведет
У каждого разработчика наступает момент, когда ему кажется, что он освоил язык программирования, но приложение тормозит и отладчик не помогает. Это значит, что ему нужно расширять круг своих познаний, выйти из привычной среды разработки и оценить происходящее извне.
Начните управлять памятью. Да, это сложно поначалу, но память компьютера и мобильного девайса — ресурс ограниченный, и научившись им распоряжаться, удается одним махом решить целый спектр проблем.
Управление памятью в Android
Каждое приложение Android работает в виде отдельного процесса в рамках виртуальной машины Dalvik, исполняющей приложения, написанные на Java.
Dalvik оптимизирована для низкого потребления памяти, но расплата за это — нестандартная регистр-ориентированная архитектура, подходящая для исполнения на RISC-архитектурах мобильных процессоров. Это в корне отличает её от стандартных виртуальных машин Java. В Android 4.4 Kitkat и выше есть выбор между Dalvik и более быстрым ART, а в Android 5.0 используется только ART.
И Dalvik, и ART — надстройки над ядром Linux, а ведь именно он отвечает за работу с «железом» и памятью на низком уровне. А всем остальным приложениям предоставляется API, что не одно и тоже, что и прямой доступ к ресурсам и приводит к замедлению работы ПО.
Разработчик должен помнить об особенностях управления жизненным циклом ПО в Android: поскольку оперативная память ограничена и есть приоритеты в ее использовании, то порой запуск одного приложения означает закрытие другого из-за недостатка памяти с сохранением состояния в ПЗУ. И чем больше приложений запущено, тем чаще станут эти переключения и будет больше время закрытия/восстановления. И каков бы не был чудесен код этого приложения — оно будет подтормаживать.
Утечки памяти и контекст
Типичная ошибка новичков: наставить кучу долгоживущих ссылок на контекст. Вспоминаем: контекст(Context) используется для загрузки и доступа к ресурсам. Эта та самая причина, по который виджеты должны получать параметр Context в конструктор.
Приложения имеют два вида контекста: Activity and Application. Первый — экран с пользовательским интерфейсом, на который держат ссылку в коде и тем самым не дают сборщику мусора удалить отработавший код и данные. Сколько при этом будет потеряно памяти — неизвестно.
А теперь представьте: меняется ориентация экрана, и система по умолчанию уничтожает текущую активность и создает новую с сохранением состояния. Также должен перезагрузиться пользовательский интерфейс приложения. А если в нем содержится большое растровое изображение? Надо принимать меры! Например, использовать статические поля. Но ведь о них не помнят, пока не возьмут в руки девайс со своим приложением!
Правильное использование контекста Application поможет с проблемами: он «жив», пока работает приложение и не зависит от жизненного цикла. Если разработчику нужны долгоживущие объекты, нуждающиеся в контексте, вспомните об Application: Context.getApplicationContext() или Activity.getApplication().
Перечисленными приемами, конечно же, не ограничиваются методики управления памятью. Главное — сборщик мусора должен делать свою работу, а программист не мешать ему работать. Управлять памятью надо в момент написания кода, а не тогда, когда приложение уже запущено! Кроме того, надо помнить об «узких» местах работы с памятью, свойственных архитектуре Android.
Мы же продолжим эту тему и поговорим о том, какие профайлеры в среде разработки или статические анализаторы кода могут помочь.
Тем, кто хочет профессионально разрабатывать под Android, рекомендуем профессию «Разработчик Android».
Читайте также: