HomeАндроидЧто делать если на андроиде не хватает памяти: Не хватает места на телефоне (Андроид), недостаточно памяти. Что можно сделать?

Что делать если на андроиде не хватает памяти: Не хватает места на телефоне (Андроид), недостаточно памяти. Что можно сделать?

Что делать, когда на Android «недостаточно памяти», хотя место есть — Варианты решения

фото очистить кэш приложений Google Play Настройки

Автор android На чтение 3 мин.

Содержание

«Недостаточно памяти»: Варианты решения проблемы

Что может помешать вам установить новое приложение из Google Play? Разве что нехватка памяти. Вот внезапно ваш смартфон на Андроиде пишет «Недостаточно памяти», хотя место есть.
Что делать? Вы ведь видите, что и на карте Micro SD, и во внутренней памяти свободных мегабайт достаточно. Но как объяснить это смартфону?

1. Когда памяти действительно мало

Справедливости ради надо сказать, что иногда смартфон бывает и прав. К примеру, если вы ориентируетесь только на пространство на карте, а установка приложения туда не предусмотрена. Или если приложению требуется дополнительное место для работы.

Тогда хочешь не хочешь – придётся освобождать пространство. Для этого есть несколько проверенных способов:

[su_list icon=»icon: android» icon_color=»#006905″]

  • Удалить ненужные приложения. Это вопрос уже исключительно к вам: возможно, старые игры уже не так интересны? Или у вас установлено несколько приложений, дублирующих друг друга?
  • Переместить приложения на карту Micro SD, когда это возможно. По этой теме у нас есть отдельный подробный материал.
  • Очистить кэш с помощью специальных утилит (например, CCleaner). Порой он занимает удивительно много места, будучи, по сути, ненужным.
  • Почистить память вручную с помощью Root Explorer или другого файлового менеджера. Этот подход очень эффективен, но требует знаний. Удаление не тех файлов сделает ваш смартфон неработоспособным. Поэтому перед ручной чисткой обязательно сделайте бэкап.
  • Сделать сброс всей системы и заново установить приложения через Titanium Backup. Это несколько более сложный способ. Для него вам надо иметь root-доступ и установленное приложение Titanium Backup. Сделайте резервные копии всех приложений с настройками. Сбросьте систему полностью. Установите Titanium Backup снова и восстановите приложения из копий. Этот способ неплохо чистит систему от мусора и часто прибавляет несколько сотен мегабайт к свободной памяти.[/su_list]

2. Когда памяти вроде бы достаточно

Встречаются ситуации, когда смартфон или планшет отказывается устанавливать приложение не только на карту памяти, но и во внутреннюю память. При этом свободное место присутствует в достаточном объёме. Как заставить Android посмотреть правде в глаза и всё-таки установить приложение?

фото Очистить кэш приложений Google Play

Есть несколько способов, которые могут сработать:

[su_list icon=»icon: android» icon_color=»#006905″]

  • Очистить кэш приложений Google Play и Google Service Framework. Откройте меню Настройки, выберите эти два приложения и очистите их кэш. После этого перезагрузите смартфон. Если свободное место есть, устройство теперь сможет её использовать.
  • Удалить обновление Play. Для этого необходимо зайти в Настройки, найти там пункт Приложения, а в списке – Google Play. Тапните на нём и в открывшейся странице выберите кнопку «Удалить обновления». Рекомендуется сделать в случае, если очистка кэша не помогла.
  • Очистить Dalvik-кэш. Выключите свой смартфон и включите его в Recovery mode (для этого обычно надо удерживать кнопку включения и кнопку громкости). Выберите в меню пункт Wipe cache partition. Если вы не сталкивались с этим раньше, то подскажем: сенсорный дисплей в этом режиме не работает, выбирать надо кнопками громкости. В этом пункте выберите подпункт Advanced Options, а в нём – Wipe Dalvik Cache. Это действие сбросит Dalvik-кэш и не только освободит немного места, но и поможет системе эффективно работать с уже имеющимся.[/su_list]

фото Очистка Dalvik-кэш

Чтобы избежать таких проблем на будущее, можно воспользоваться утилитами Link2SD или Folder Mount, которые помогут вам виртуально объединить Micro SD и внутреннюю память в единый массив. Помните, что в этом случае карта памяти становится фактически несъёмной, поэтому перед этой операцией обзаведитесь достаточно объёмистой Micro SD.

Андроид пишет — недостаточно места в памяти устройства, как исправить

Андроид пишет - недостаточно места в памяти устройства, как исправить


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

Прежде всего несколько важных моментов: даже если вы устанавливаете приложения на карту microSD, внутренняя память все равно используется, т.е. должна быть в наличии. Кроме этого, внутренняя память не может быть задействована вся до конца (требуется место для работы системы), т.е. Android будет сообщать о том, что недостаточно памяти раньше, чем ее свободный объем окажется меньше размера загружаемого приложения.

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

Андроид пишет - недостаточно места в памяти устройства, как исправить

Как быстро очистить память Android (самый простой способ)

Как правило, для начинающего пользователя, который впервые столкнулся с ошибкой «недостаточно места в памяти устройства» при установке Android приложения, самым простым и часто успешным вариантом будет простая очистка кэша приложений, который подчас может отнимать драгоценные гигабайты внутренней памяти.

Для того, чтобы очистить кэш, зайдите в настройки — «Хранилище и USB-накопители», после этого внизу экрана обратите внимание на пункт «Данные кэша».

Андроид пишет - недостаточно места в памяти устройства, как исправить

В моем случае — это почти 2 Гб. Нажмите по этому пункту и согласитесь на очистку кэша. После очистки, попробуйте загрузить ваше приложение снова.

Похожим способом можно очистить кэш отдельных приложений, например, кэш Google Chrome (или другого браузера), а также Google Фото при обычном использовании занимает сотни мегабайт. Также, если ошибка «Недостаточно памяти» вызвана обновлением конкретного приложения, следует попробовать очистить кэш и данные для него.

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

Андроид пишет - недостаточно места в памяти устройства, как исправить

Кстати, обратите внимание, что занимаемый размер в списке приложений отображает меньшие значения, чем тот объем памяти, который приложение и его данные фактически занимают на устройстве.

Удаление ненужных приложений, перенос на SD-карту

Загляните в «Настройки» — «Приложения» на вашем Android устройстве. С большой вероятностью в списке вы найдете те приложения, которые вам больше не нужны и давно не запускались. Удалите их.

Также, если ваш телефон или планшет имеет карту памяти, то в параметрах загруженных приложений (т.е. тех, которые не были предустановлены на устройстве, но не для всех), вы найдете кнопку «Переместить на SD карту». Используйте ее для освобождения места во внутренней памяти Android.

Дополнительные способы исправить ошибку «Недостаточно памяти на устройстве»

Следующие способы исправления ошибки «недостаточно памяти» при установке приложений на Android в теории могут приводить к тому, что что-то будет работать неправильно (обычно не приводят, но все равно — на свой страх и риск), но являются достаточно действенными.

Удаление обновлений и данных «Сервисы Google Play» и «Play Маркет»

1. Зайдите в настройки — приложения, выберите приложения «Сервисы Google Play»
2. Зайдите в пункт «Хранилище» (при его наличии, иначе на экране сведений о приложении), удалите кэш и данные. Вернитесь к экрану информации о приложении.
3. Нажмите по кнопке «Меню» и выберите пункт «Удалить обновления». 

Андроид пишет - недостаточно места в памяти устройства, как исправить

4. После удаления обновлений, повторите то же самое для Google Play Маркет.

По завершении, проверьте, появилась ли возможность устанавливать приложения (если сообщат о необходимости обновить сервисы Google Play — обновите их).

Очистка Dalvik Cache

Данный вариант применим не ко всем Android устройствам, но попробуйте:

  1. Зайдите в меню Recovery (как зайти в рекавери на вашей модели устройства). Действия в меню обычно выбираются кнопками громкости, подтверждение — коротким нажатием кнопки питания.
  2. Найдите пункт Wipe cache partition (важно: ни в коем случае не Wipe Data Factory Reset — этот пункт стирает все данные и сбрасывает телефон).
  3. В этом пункте выберите «Advanced», а затем — «Wipe Dalvik Cache».

После очистки кэша, загрузите ваше устройство в обычном режиме.

Очистка папки в data (требуется Root)

Для этого способа требуется root-доступ, а работает он, когда ошибка «Недостаточно памяти на устройстве» возникает при обновлении приложения (причем не только из Play Маркет) или при установке приложения, которое ранее уже было на устройстве. Также потребуется файловый менеджер с поддержкой root-доступа.

  1. В папке /data/app-lib/имя_приложения/ удалите папку «lib» (проверьте, исправилась ли ситуация).
  2. Если предыдущий вариант не помог, попробуйте удалить всю папку /data/app-lib/имя_приложения/

Примечание: если уж у вас есть root, загляните также в data/log с помощью файлового менеджера. Файлы журналов также могут отъедать серьезное количество места во внутренней памяти устройства.

Непроверенные способы исправить ошибку

Эти способы попались мне на stackoverflow, но ни разу не были мною опробованы, а потому об их работоспособности судить не могу:

  • С помощью Root Explorer перенести часть приложений из data/app в /system/app/
  • На устройствах Samsung (не знаю, на всех ли) можно набрать на клавиатуре *#9900# для очистки файлов журнала, что также может помочь.

Это все варианты, которые я могу предложить на текущий момент времени для исправления ошибок Android «Недостаточно места в памяти устройства».


 

Что делать, когда на Android «недостаточно памяти», хотя место есть

Вступление

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

Android ошибка "Недостаточно места в памяти устройства"В ошибке “недостаточно места в памяти устройства” нет ничего страшного — её можно легко устранить

Что можно сделать, когда на Андроиде появляется данная ошибка, несмотря на то, что на самом деле свободное место ещё остаётся? Давайте выясним, по какой причине появляется это сообщение, а также рассмотрим способы решения проблемы.

Причина появления сообщения

Если у вас современное Андроид-устройство, скорее всего, оно имеет приличный объём внутреннего накопителя. Лучшим выбором считаются устройства, у которых не менее 16 гигабайт памяти. Однако не все могут позволить себе приобрести столь «вместительный» девайс, поэтому им приходится довольствоваться 8, а то и 4 гигабайтами. А если у кого-то старенький гаджет, объём накопителя может измеряться даже в мегабайтах. Очевидно, что чем больше места, тем лучше. Но даже если у вас достаточное количество внутренней памяти, это не говорит о том, что такой проблемы у вас никогда не возникнет. Скорее всего, вы столкнётесь с ней немного позже.

Операционная система Android создана так, что в первую очередь приложения и временные файлы используют внутреннюю память, даже если у вас установлена SD-карта. Последняя версия операционной системы вообще имеет проблему с полноценной поддержкой флешки. Видимо, Google хочет пойти по пути Apple, отказавшись от карт памяти вообще.

Впервые с ошибкой «недостаточно места в памяти устройства» можно столкнуться в первый же день работы, попытавшись установить большое количество программ с Play Маркета. Если вам удалось избежать этого, в процессе работы весь кэш приложений (временные файлы) постепенно будет занимать память устройства.

Даже если вы перенесёте приложения на карту, часть необходимых для работы файлов по-прежнему будут храниться на внутреннем накопителе. Чем чаще вы пользуетесь программами, тем быстрее может закончиться свободное место. Лидерами по потребляемой памяти являются игры, особенно современные и требовательные, а также браузеры и различные мессенджеры. Например, если активно общаться через популярный в России WhatsApp, чаты и полученные медиафайлы постепенно будут заполнять свободное место. Некоторые приложения вообще не переносятся на внешний накопитель, так как эту возможность не предусмотрели разработчики.

Итак, что можно сделать в случае, если система пишет, что свободного места недостаточно, хотя на самом деле оно есть?

Как освободить память

Ошибка "Недостаточно места" на Android

Освободить память устройства на Андроид можно различными средствами как встроенными в систему, так и сторонними утилитами. Рассмотрим каждый из вариантов.

Очистка от временных файлов

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

Некоторые производители мобильных устройств устанавливают дополнительные утилиты, которые нельзя скачать с Play Маркета, оснащённые функцией очистки системы. Изучите возможности встроенного ПО, и в случае надобности воспользуйтесь им по прямому назначению.

Использование специальных утилит для очистки

В магазине Play Маркет существует целый раздел, посвященный приложениям для удаления временных файлов и контроля состояния системы. Войдите в Play Market, в строке поиска введите Cleaner и скачайте нужную утилиту. Лидерами популярности являются Clean Master и SD Maid. Они дают контроль над системой и позволяют освободить значительный объём памяти устройства. Для работы некоторых функций понадобится наличие рут-прав. Для очистки запустите приложение, выберите соответствующий пункт меню, отметьте те файлы, которые нужно удалить, и дождитесь окончания процесса.

Очистка кэша через Recovery

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

В главном меню рекавери следует выбрать раздел Wipe Cache Partition, а после окончания процесса выполнить перезагрузку в обычном режиме. В результате процедуры личные данные затронуты не будут, а памяти прибавится, так как все временные файлы будут удалены.

Android-устройство в режиме Recovery

Перенос приложений и файлов на SD-карту

Ещё одним эффективным методом может стать перенос приложений на карту памяти. Скорость работы приложений при этом может снизится. Следует помнить, что некоторые производители лишают пользователя функции переноса программ стандартными средствами системы. В таком случае потребуется получить рут-права и задействовать сторонние утилиты.

Сразу рассмотрим процесс переноса на флешку стандартными средствами. Войдите в Настройки — Приложения. Через несколько секунд вы увидите, сколько места занимает каждая программа, и сможете отсортировать по этому параметру. Найдите в списке интересующее вас приложение, нажмите на него. Если перенос возможен, вы увидите активную кнопку «Перенести на SD-карту». Перенесите самые крупные программы, после чего не забудьте почистить устройство с помощью соответствующих программ. Вы получите больше свободного пространства на внутреннем накопителе.

Если какое-то приложение перенести невозможно, получите рут-права и попробуйте перенести данные с помощью утилиты Link2SD. Помните, что пользоваться подобным программным обеспечением вы будете на свой страх и риск, и в случае их некорректной работы будете сами нести ответственность за испорченный девайс.

Удаление ненужных или редко используемых приложений

Несмотря на все усилия, памяти всё равно не хватает? Сделайте ревизию установленных программ на вашем Android-устройстве. Возможно, у вас есть софт, которым вы пользуетесь очень редко или не применяете вообще, а он занимает драгоценное пространство. Откройте настройки приложений, выберите программу, которая вам на данный момент не нужна, и удалите её. Если вы активно пользуетесь социальными сетями, советуем вам использовать мобильные версии сайта через браузер, вместо установки клиентов. Тот же Facebook может занимать до 400 мегабайт.

Сброс настроек приложений

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

Настройка устройства Android

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

Сброс настроек системы к заводским

Ну и крайнее, но самое эффективное средство — сброс настроек устройства к заводским. Вы потеряете все данные, зато ваш девайс будет работать как новенький. Выполнить сброс можно как через меню настроек, так и через режим Recovery. В первом случае вам нужно зайти в Настройки — Восстановление и сброс — Сбросить настройки. Во втором — перевести устройство в режим Recovery, выбрать wipe data / factory reset. После этого пройдите процедуру настройки смартфона или планшета на Android с самого начала.

Заключение

Очевидно, что проблема с нехваткой памяти популярна среди владельцев устройств на базе Android. Эту проблему можно решить несколькими несложными способами, но в большинстве случаев полностью избавиться от неё не получится. Остаётся только надеяться на то, что компания Google в своих будущих обновлениях операционной системы позаботится о том, чтобы внутренний накопитель не забивался всяким мусором.

Часто ли вы сталкиваетесь с этой проблемой? Поделитесь в комментариях своим опытом борьбы с ней.

Недостаточно места в памяти устройства Android

&nbsp для начинающих | мобильные устройства

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

Прежде всего несколько важных моментов: даже если вы устанавливаете приложения на карту microSD, внутренняя память все равно используется, т.е. должна быть в наличии. Кроме этого, внутренняя память не может быть задействована вся до конца (требуется место для работы системы), т.е. Android будет сообщать о том, что недостаточно памяти раньше, чем ее свободный объем окажется меньше размера загружаемого приложения. См. также: Как очистить внутреннюю память Android, Как использовать SD-карту в качестве внутренней памяти на Android.

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

Ошибка не удалось загрузить приложение

Как быстро очистить память Android (самый простой способ)

Важный момент, который следует иметь в виду: если на вашем устройстве установлена Android 6 или более новая версия, а также присутствует карта памяти, отформатированная как внутреннее хранилище, то при её извлечении или неисправности вы всегда будете получать сообщение о том, что недостаточно памяти (при любых действиях, даже при создании скриншота), пока вновь не установите эту карту памяти или не перейдете по уведомлению о том, что она извлечена и не нажмете «забыть устройство» (учитывайте, что после этого действия вы больше никаким образом не сможете прочитать данные с этой карты памяти).

Как правило, для начинающего пользователя, который впервые столкнулся с ошибкой «недостаточно места в памяти устройства» при установке Android приложения, самым простым и часто успешным вариантом будет простая очистка кэша приложений, который подчас может отнимать драгоценные гигабайты внутренней памяти.

Для того, чтобы очистить кэш, зайдите в настройки — «Хранилище и USB-накопители», после этого внизу экрана обратите внимание на пункт «Данные кэша».

Очистка данных кэша на Android

В моем случае — это почти 2 Гб. Нажмите по этому пункту и согласитесь на очистку кэша. После очистки, попробуйте загрузить ваше приложение снова.

Похожим способом можно очистить кэш отдельных приложений, например, кэш Google Chrome (или другого браузера), а также Google Фото при обычном использовании занимает сотни мегабайт. Также, если ошибка «Недостаточно памяти» вызвана обновлением конкретного приложения, следует попробовать очистить кэш и данные для него.

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

Очистка кэша приложения

Кстати, обратите внимание, что занимаемый размер в списке приложений отображает меньшие значения, чем тот объем памяти, который приложение и его данные фактически занимают на устройстве.

Удаление ненужных приложений, перенос на SD-карту

Загляните в «Настройки» — «Приложения» на вашем Android устройстве. С большой вероятностью в списке вы найдете те приложения, которые вам больше не нужны и давно не запускались. Удалите их.

Также, если ваш телефон или планшет имеет карту памяти, то в параметрах загруженных приложений (т.е. тех, которые не были предустановлены на устройстве, но не для всех), вы найдете кнопку «Переместить на SD карту». Используйте ее для освобождения места во внутренней памяти Android. Для новых версия Android (6, 7, 8, 9) вместо этого используется форматирование карты памяти в качестве внутренней памяти.

Дополнительные способы исправить ошибку «Недостаточно памяти на устройстве»

Следующие способы исправления ошибки «недостаточно памяти» при установке приложений на Android в теории могут приводить к тому, что что-то будет работать неправильно (обычно не приводят, но все равно — на свой страх и риск), но являются достаточно действенными.

Удаление обновлений и данных «Сервисы Google Play» и «Play Маркет»

  1. Зайдите в настройки — приложения, выберите приложения «Сервисы Google Play»
  2. Зайдите в пункт «Хранилище» (при его наличии, иначе на экране сведений о приложении), удалите кэш и данные. Вернитесь к экрану информации о приложении.
  3. Нажмите по кнопке «Меню» и выберите пункт «Удалить обновления». Удаление обновлений сервисов Google Play
  4. После удаления обновлений, повторите то же самое для Google Play Маркет.

По завершении, проверьте, появилась ли возможность устанавливать приложения (если сообщат о необходимости обновить сервисы Google Play — обновите их).

Очистка Dalvik Cache

Данный вариант применим не ко всем Android устройствам, но попробуйте:

  1. Зайдите в меню Recovery (найдите в Интернете, как зайти в рекавери на вашей модели устройства). Действия в меню обычно выбираются кнопками громкости, подтверждение — коротким нажатием кнопки питания.
  2. Найдите пункт Wipe cache partition (важно: ни в коем случае не Wipe Data Factory Reset — этот пункт стирает все данные и сбрасывает телефон).
  3. В этом пункте выберите «Advanced», а затем — «Wipe Dalvik Cache».

После очистки кэша, загрузите ваше устройство в обычном режиме.

Очистка папки в data (требуется Root)

Для этого способа требуется root-доступ, а работает он, когда ошибка «Недостаточно памяти на устройстве» возникает при обновлении приложения (причем не только из Play Маркет) или при установке приложения, которое ранее уже было на устройстве. Также потребуется файловый менеджер с поддержкой root-доступа.

  1. В папке /data/app-lib/имя_приложения/ удалите папку «lib» (проверьте, исправилась ли ситуация).
  2. Если предыдущий вариант не помог, попробуйте удалить всю папку /data/app-lib/имя_приложения/

Примечание: если уж у вас есть root, загляните также в data/log с помощью файлового менеджера. Файлы журналов также могут отъедать серьезное количество места во внутренней памяти устройства.

Непроверенные способы исправить ошибку

Эти способы попались мне на stackoverflow, но ни разу не были мною опробованы, а потому об их работоспособности судить не могу:

  • С помощью Root Explorer перенести часть приложений из data/app в /system/app/
  • На устройствах Samsung (не знаю, на всех ли) можно набрать на клавиатуре *#9900# для очистки файлов журнала, что также может помочь.

Это все варианты, которые я могу предложить на текущий момент времени для исправления ошибок Android «Недостаточно места в памяти устройства». Если у вас имеются собственные работающие решения — буду благодарен вашим комментариям.

А вдруг и это будет интересно:

Телефон пишет, что недостаточно места, хотя его там полно. Что делать?

Вот такой вопрос мы получили от одного из пользователей нашего сайта Алексея. Он пишет, что при скачивании приложения из Google Play Маркет выводится ошибка: «Не удалось загрузить приложение. Недостаточно места в памяти устройства». При этом места в памяти предостаточно — как минимум несколько гигабайт, в то время как объем загружаемого приложения — всего-то несколько мегабайт. Что делать, как быть?

Вот как выглядит ошибка при скачивании приложения:

Сразу скажем, что единого решения данной проблемы не существует, поэтому рассмотрим различные варианты, которые могут помочь справиться с неполадкой.

Очистка кэша в приложении Play Market

Если верить многочисленным отзывам в рунете, то первое, что нужно сделать пользователю, это очистить кэш для приложения Play Market. Приступать к этому действию в первую очередь рекомендуется именно в случаях, когда на устройстве немало места, а приложение при этом не устанавливается.

Заходите в «Настройки» своего телефона или планшета.

Выбираете раздел «Приложения».

Находите приложение «Google Play Маркет» и тапаете по нему.

Нажимаете на строчку «Память».

Здесь — кнопка «Очистить кэш». Нажимаете, при необходимости подтверждаете действие для очистки.

На всякий случай это же проделываете с приложением «Сервисы Google Play».

Можно нажать на кнопку «Сброс» в разделе «Память» — будет удалено больше данных, то есть этот способ даже более правильный, однако, скорее всего, придется заново входить в аккаунт Google, так что удостоверьтесь, что помните от него пароль.

После этого пробуете установить приложение из Маркета.

Удостоверьтесь, что памяти действительно достаточно

В некоторых случаях доступный объем памяти может не соответствовать действительности. Например, вы думаете, что доступно еще несколько гигабайт памяти, а на деле — всего несколько мегабайт. Чтобы удостовериться в наличии свободной памяти, зайдите в «Настройки» и выберите раздел «Память».

Как видите, в нашем случае свободной памяти более чем предостаточно.

Очистите содержимое устройства

Современные прошивки обычно имеют встроенный функционал для очистки от неиспользуемых файлов, которые занимают лишнее место. Пример на базе Huawei/Honor.

Открываете приложение «Диспетчер телефона».

Далее — «Очистка памяти».

Выбираете, что удалить.

Не забывайте, что вы можете вручную удалить такие файлы, как фото или видео. Для этого можно использовать файловый менеджер.

Выберите нужный раздел, пусть будет «Видео».

Выбираете файлы и нажимаете «Удалить».

Если программу для очистки от ненужных файлов на своем смартфоне вы не можете найти, используйте Play Market. В поиске укажите ключ вроде «очистить память телефона» (без кавычек).

Установите выбранное на свой вкус приложение и воспользуйтесь им.

Перенесите приложения на карту памяти

Если у вас имеется карта памяти и есть возможность переноса приложений на нее из основной памяти (увы, это встречается редко), воспользуйтесь данной возможностью, чтобы не удалять приложения.

Для этого зайдите в настройки, затем в раздел «Приложения». Здесь выберите нужное приложение и нажмите на кнопку «Перенести на карту памяти (в нашем случае на кнопке написано «Перейдите к SD-карта»).

Обратите внимание, что системные приложения не переносятся.

Что еще может помочь?

Советы из сети, которые могут помочь, а могут и не помочь. Пользоваться ими если и стоит, то только в самых крайних случаях, когда вообще ничего не помогает. Можно попробовать:

  • Удалить обновления для приложения Google Play (вторая часть в статье — на этой странице). А если Play Market в вашем случае не обновлен, обязательно обновитесь.
  • Сделать сброс системы. При этом все данные будут очищены, а файлы — удалены.
Как избавиться от бага, из-за которого Андроид пишет, что нет места, хотя оно есть

ДатаДата Сентябрь 10th, 2019 АвторАвтор Алексей Герус Как избавиться от бага, из-за которого Андроид пишет, что нет места, хотя оно естьКак избавиться от бага, из-за которого Андроид пишет, что нет места, хотя оно есть

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

Почему телефон пишет, что нет памяти, хотя память есть

Чтобы разобраться в ошибке «Нет памяти», необходимо понимать структуру дискового пространства на операционных системах Android. В отличие от Windows, где винчестер используется как угодно и хаотично, память смартфона разделена на сегменты. Каждый из них является «ящиком» и отвечает за конкретный тип данных. И если хотя бы в одном из этих хранилищ отведённый лимит байт будет превышен или стремиться к этому, возникает вышеуказанная ошибка.

Однако это не единственная причина. Нередко возникает простой системный сбой, который выливается в аналогичную проблему. В таких случаях простая чистка не поможет и придётся прибегать к более радикальным методам. Тогда приходится сбрасывать настройки, потому что данные о размерах хранилища были переписаны, а восстановить их или изменить попросту невозможно.

Как исправить проблему

Существует несколько способов для устранения ошибки «Недостаточно памяти». Каждый — это очистка определённого хранилища:

  • кэша телефона;
  • приложений;
  • эскизов и прочих медийных данных.

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

Очистка кэша телефона

Кэш смартфона — это первая остановка в лечении проблемы «нет памяти». Временные данные скапливаются в огромных количествах как от приложений, игр, медийных файлов, так и от стандартных системных программ. Потому чистку кэша необходимо проводить и без рассматриваемой ошибки с некоторой периодичностью, хотя бы раз в полгода.

После этого лучше перезагрузить смартфон, чтобы система начала работу с более свободной файловой конфигурацией.

Удаление неиспользуемых приложений

Хранилище приложений также не резиновое и переполнение программ в нём приводит к подобной ошибке. Но в отличие от кэша, неполадка типа «Нет памяти» в хранилище утилит может приводить к последствиям: игры могут зависать и вылетать, аналогично и с более простыми приложениями. Потому, если при ошибке вы не можете что-либо установить на смартфон, программы работают некорректно — вероятнее всего переполнено именно хранилище приложений.

Очистить эту область памяти просто — нужно лишь удалить часть неиспользуемых приложений и игр.

  1. В настройках переходим во вкладку «Все приложения».Как открыть меню приложенийКак открыть меню приложений

    В настройках смартфона переходим в графу «Все приложения»

  2. Находим в списке неиспользуемую программу: желательно, чтобы она не была системным, хотя удалить такое вы не сможете.Как открыть страницу приложенияКак открыть страницу приложения

    Тапаем по строке с приложением

  3. Открываем страницу управления программой и внизу экрана кликаем «Удалить».Как удалить программу на AndroidКак удалить программу на Android

    На странице приложение нажимаем кнопку «Удалить» и подтверждаем действие

  4. Подтверждаем операцию и ожидаем, пока действие не закончится.
  5. Повторяем процедуру до тех пор, пока неиспользуемые программы, а главное, игры, не закончатся.
  6. Перезагружаем смартфон.
Видео: как удалить приложение на смартфоне

Уничтожение эскизов и прочих мусорных файлов

Галерея также кэширует и создаёт уйму мини-файлов и эскизов для быстрой навигации по медиатеке. К сожалению, эти файлы накапливаются и не удаляются, даже если их первоисточник был убран с телефона. Рано или поздно, но папка с эскизами будет переполнена, а это уже влечёт за собой известную ошибку.

  1. Любым файловым менеджером (я рекомендую Total Comander, но можно обойтись и стандартной программой) открываем папку DISM, что в корневой директории телефона, а в ней в папку .thumbnails.Где находятся эскизыГде находятся эскизы

    Открываем папку DISM/.thumbnails

  2. Выделяем всё содержимое внутри и просто его удаляем.Как удалить эскизыКак удалить эскизы

    Долгим нажатием выделяем все файлы в папке, затем удаляем их

  3. Перезагружаем смартфон.

Сброс настроек

Если ничего из вышеперечисленного вам не помогло, поздравляю, вы поймали редкий баг в виде системного сбоя. Единственная возможность для исправления ситуации — это сброс настроек. Однако эта мера сотрёт все изменения, что вы внесли в смартфон, потому необходимо подойти к процессу ответственно и сделать несколько подготовительных вещей:

  • сохранить все контакты на SIM-карту или любое облачное хранилище, затем вытащить чип связи;
  • изъять карту памяти;
  • загрузить все медийные файлы и документы с телефона на компьютер или облако.

После этого можно не бояться потери данных, так как вся информация может быть легко восстановлена.

  1. Открываем вкладку «Расширенные настройки» в параметрах смартфона.Как перейти в расширенные настройкиКак перейти в расширенные настройки

    Через меню смартфона открываем «Расширенные настройки»

  2. Переходим в графу «Восстановление и сброс».Как сделать востановление и сбросКак сделать востановление и сброс

    Находим и открываем пункт «Восстановление и сброс»

  3. В самом низу тапаем по иконке «Сброс настроек», соглашаемся с поставленной задачей и ожидаем, пока процесс дойдёт до логического конца.Как сбросить настройки до заводскихКак сбросить настройки до заводских

    Нажимаем «Сброс настроек» и соглашаемся с операцией

Во время сброса телефон будет самопроизвольно перезагружаться, потому лучше оставить его в покое, пока всё не закончится. Если же вышеупомянутой функции в вашей версии Android нет, то для восстановления заводских установок следует воспользоваться меню Recovery.

  1. Отключаем смартфон, затем при включении зажимаем кнопки питания и громкости вверх. В зависимости от модели второй кнопкой может быть громкость вниз или даже обе кнопки громкости одновременно.
  2. После долгой вибрации отпускаем клавиши и ожидаем вывода меню.
  3. На открывшемся экране отладки, при помощи клавиш громкости, выделяем пункт Wipe data/factory reset и кнопкой питания запускаем её в исполнение. Дальше всё как в примере выше: оставляем телефон в покое на несколько минут.Как сбросить настройки через меню RecoveryКак сбросить настройки через меню Recovery

    В меню Recovery запускаем пункт Wipe data

После последней перезагрузки вы получите свежий смартфон без любых программных изъянов.

Видео: как правильно сбрасывать настройки смартфона

Исправить ошибку «Нет памяти» очень просто, для этого не нужно даже вставать с кресла. Задача лишь выявить первоисточник проблемы и очистить соответствующий раздел памяти.

Алексей ГерусАлексей ГерусЗдравствуйте! Меня зовут Алексей. Мне 27 лет. По образованию — менеджер и филолог. Оцените статью: Поделитесь с друзьями!

Почему пишет «недостаточно памяти на андроиде»: способы очистки

«Не удалось установить/обновить приложение, поскольку память устройства переполнена» – многим пользователям «Андроид» видеть такую надпись доводилось не раз. Как восполнить нехватку Мб и нужно ли вообще это делать, читайте в нашей статье.

Как проверить количество свободной памяти

Если вы увидели сообщение о нехватке памяти, первым делом проверяем ее (памяти) состояние. Возможно, какое-то обновление или скаченный файл весили больше, чем вы думали, и теперь системе реально не хватает свободных мегабайтов для выполнения указанной процедуры. Итак, чтобы проверить состояние памяти телефона:

  1.  Заходим в раздел «Настройки» (обычно, на его иконке изображена шестеренка).
  2. В списке системных настроек находим пункт «Память» (для разных версий ОС и разных моделей смартфонов может назваться по-разному) и щелкаем по нему.
  3. В открывшемся окне проверяем, какой объем памяти еще не занят.

Если мегабайтов действительно не хватает, займемся чисткой телефона от лишних данных. Если хватает – будем искать причину неполадки и устранять ее.

Как освободить дополнительную память на устройстве

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

Но что делать, если все они пусты, а Мб, все равно, не хватает? Есть несколько вариантов высвобождения дополнительной памяти, и на каждом из них мы остановимся отдельно.

Чистка кэша (Dalvik-кэша, общего и отдельных приложений)

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

  • Удалить весь кэш, хранящийся на телефоне

Для этого заходим в «Настройки», открываем раздел «Память» и ищем в нем пункт «Кэш».Щелкаем по нему и соглашаемся на удаление. Пара секунд, и на нашем телефоне освободились заветные мегабайты.

  • Удалить кэш конкретного приложения

Если вам не хватает всего несколько Мб, не обязательно стирать все временные файлы. Иногда вполне можно обойтись кэшем какой-нибудь ресурсоемкой программы. Для этого нужно лишь открыть меню «Настроек», выбрать пункт «Приложение» и в предложенном списке найти интересующее нас приложение. Открываем его и ищем кнопку «Очистить кэш». Нажимаем на нее и наблюдаем, как объем свободной памяти увеличивается на заветные мегабайты.

  • Стереть Dalvik-кэш, переведя устройство в режим Recovery

Dalvik-кэш – это временная компиляция кода приложений, что хранится в виде исполняемых файлов. Их удаление никакого вреда работоспособности гаджета не наносит. Поэтому, чтобы высвободить несколько дополнительных Мб таким способом, делаем следующее:

  • Выключаем телефон.
  • Запускаем его в режиме Recovery (комбинация кнопок для разных устройств будет отличаться, узнать ее можно из инструкции или на официальном сайте производителя).
  • В появившемся меню выбираем сначала пункт Wipe cache partition, а затем поочередно – Advanced Options и Wipe Dalvik Cache.
  • После того, как ненужные файлы будут удалены, отключаем телефон и перезапускаем его в обычном режиме.

Обратите внимание! В режиме Recovery сенсорный дисплей отключен, передвижение по меню производится при помощи кнопок громкости, выбор – кнопкой запуска.

Однако нужно понимать, что удаляя кэш, вы не избавляетесь от него навсегда. Временные файлы будут вновь помещены в память устройства, стоит вам зайти на сайт или открыть приложение.

Удаление лишних данных из разделов «Загрузки» и «Прочее»

Скаченные с интернета файлы, а также данные, которые система не может отнести ни к одной из прописанных категорий, также занимают немало места. Избавиться от них можно разными способами. Если вы знаете, в какую папку или папки производится загрузка – открыть их и почистить вручную. Если нет, воспользуйтесь следующей схемой:

  • Открываем «Настройки» телефона.
  • В разделе «Память» находим пункты «Загрузка» и «Прочее» и щелкаем по ним.
  • Нам откроются списки файлов, доступных для удаления. Проставляем галочки напротив ненужных и выбираем «Удалить».

Если вы боитесь удалить что-то нужное, а по названию идентифицировать файл не получается, щелкните по нему, и он откроется для просмотра.

Чистка при помощи утилит

Если не хотите разбираться с настройками телефона, очистить кэш можно и куда быстрее. В этом вам помогут специальные приложения, скачать любое из которых можно в Play Market. Для начала сканирования системы нажмите кнопку запуска. Система проанализирует все файлы, хранящиеся на телефоне, найдет среди них временные и уже не нужные. Затем жмем на «Очистить» или «Удалить» и избавляемся от мусора на своем гаджете.

Наиболее популярными среди приложений по очистке считаются:

  • Clean Master – одно из самых популярных приложений для очистки памяти и защиты от вирусов. Имеет обширный функционал и позволяет высвобождать не только обычную память, но и оперативную.
  • Ccleaner оперативно находит устаревшие и остаточные файлы, позволяет удалять несколько приложений за раз, быстро останавливает выполняемые задачи, а также за 1 клик переводит фоновые программы в режим «гибернации».
  • NoxCleaner. Программа интересна тем, что самостоятельно удаляет любые сторонние приложения, которые не использовались больше месяца, и сама весит крайне мало (8 Мб, версия 1.2.5).

Также в Play Market’е представлены различные «Менеджеры приложений», которые помогают управлять программами (устанавливать, удалять, перемещать и т.п) на телефоне. Однако для полноценного функционирования многие из них запрашивают root-права, что может негативно сказаться на безопасности гаджета.

Удаление приложений

Львиную долю внутренней памяти телефона занимают сторонние приложения и игры. Поэтому, если вы задумали чистку своего устройства, начните с них. Как правило, пользователи стирают ставшие ненужными программы по упрощенной схеме: зажимают иконку на рабочем экране или в общем меню, а затем перетаскивают ее в корзину. Или открывают страницу приложения в Play Market и нажимают кнопку «Удалить». Однако кэш и некоторые записи после такого удаления могут остаться в памяти устройства, осев там мертвым грузом. Поэтому, если вы хотите стереть приложение без следа, предлагаем пользоваться следующим методом:

  • Открываем настройки телефона и выбираем пункт «Приложения».
  • В представленном списке находим ненужную программу и щелкаем по ее названию.
  • В открывшемся окне поочередно нажимаем «Стереть данные», «Очистить кэш» и «Удалить».
  • Производим чистку Dalvik-кэш, о которой написано выше.

Готово, на устройстве ни самого приложения, ни файлов, имеющих к нему отношения, больше нет. Данные учетной записи хранятся в вашем облачном гугл-профиле, поэтому, если вы захотите вновь установить игру, прогресс в ней потерян не будет.

Перенос приложений на внешнюю память

Если свободных Мб не хватает, а удалять приложения не хочется, можно попробовать перенести их на внешний накопитель. Сразу оговорим, работает этот вариант далеко не для всех прошивок и не для всех программ. Однако почему бы не попробовать. Чтобы осуществить перенос:

  1. Поочередно заходим в «Настройки», а затем в «Приложения».
  2. В списке установленных программ щелкаем по интересующей нас позиции.
  3. Открывается окно, в котором должна быть кнопка «Перенести на SD-карту».
  4. Нажимаем на нее. Ждем пару секунд. Готово, перенос завершен.

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

Чистка вручную с root-правами

Считаем нужным начать разговор об этом способе с предупреждения:

Если в процессе установки что-то пойдет не так (скачаете зараженное вирусами приложение, ошибетесь в действиях ит.п), то есть риск получить «кирпич» вместо телефона. А на устройства с правами суперпользователя сервисная гарантия не распространяется. Поэтому дальнейшие действия вы выполняете на свой страх и риск. Чтобы получить root-права выберите из представленного ниже списка приложение, которое подходит для вашей модели телефона, и установите его:

  • 360 Root.
  • Baidu Root.
  • DingDong Root.
  • Romaster SU.
  • Root Dashi.
  • Root Genius.
  • Root Zhushou.

Запустите программу, после чего сможете удалять через нее (или обычным удалением, описанным выше) системные приложения, файлы из папки data и другие запрещенные к стиранию компоненты.

Что делать, если место есть, а ошибка все равно появляется?

Бывает и так, что свободной памяти на устройстве в избытке, однако уведомление о ее нехватке всплывает. Причины тому могут быть следующие:

Ошибка со стороны разработчика

Далеко не все продавцы Play Market – профессиональные программисты с многолетним опытом работы. Впрочем, даже им свойственны ошибки, из-за которых приложение «глючит» и неверно определяет размер обновляемых файлов (например, реально обновление весит 20 Мб, а требует все 100). Чтобы выявить эту недоработку, попробуйте установить другую, более «тяжелую» программу. Если все прошло без проблем – смело пишите разработчику первого приложения об обнаруженном баге, если и здесь выскакивает уведомление о нехватке памяти, значит, проблема в чем-то другом.

Некорректная работа сервисов Play Market

Данная неполадка – самая распространенная среди возможных причин ошибки. Однако, хотя обнаружили ее довольно давно, сегодня исправление выпущено далеко не для всех версий прошивок. Решить проблему можно своими силами. Рассмотрим на примере игр, однако те же действия можно применять и к другим сервисным приложениям (GP Книги, GP Пресса и т.п).
Для этого:

Если проблема с нехваткой памяти не решается и после этих действий, остается искать проблему в самом устройстве.

Системные баги

Неполадки, подобные рассматриваемой ошибке, иногда возникают и при некорректном обновлении системы, заражении ее вирусами и прочих ситуациях приведших к изменению программного кода. Для их устранения:

  1. Делаем резервные копии всех контактов, сохраняем важные файлы на внешних носителях или в облаке.
  2. Поочередно открываем «Настройки» и «Восстановление и сброс».
  3. Выбираем «Сброс настроек» (их возврат к заводским параметрам»).
  4. После того, как система вернется в исходное состояние, открываем «Настройки» – «О телефоне» – «Обновление системы» (для разных устройств путь может несколько отличаться).
  5. Обновляем систему до актуальной версии.
  6. Обновляем сервисы Play Market.
  7. Пробуем заново установить приложение.

Если даже столь радикальный метод не дал результат, обратитесь в сервисный центр за диагностикой.

Пожаловаться на контент

Что будет зажигать, если мне не хватит памяти?

Переполнение стека

  1. Товары

  2. Клиенты
  3. Случаи использования
  1. Переполнение стека
    Публичные вопросы и ответы

  2. Команды
    Частные вопросы и ответы для вашей команды

  3. предприятие
    Частные вопросы и ответы для вашего предприятия

  4. работы
    Программирование и связанные с ним технические возможности карьерного роста

  5. Талант
    Нанимать технический талант

  6. реклама
    Связаться с разработчиками по всему миру

,

php — Java на CentOS: недостаточно памяти

Переполнение стека

  1. Товары

  2. Клиенты
  3. Случаи использования
  1. Переполнение стека
    Публичные вопросы и ответы

  2. Команды
    Частные вопросы и ответы для вашей команды

  3. предприятие
    Частные вопросы и ответы для вашего предприятия

  4. работы
    Программирование и связанные с ним технические возможности карьерного роста

  5. Талант
    Нанимать технический талант

.

шаблонов утечки памяти в Android. Что такое утечка памяти? | Фрэнк Тан

Теперь я быстро пройдусь по утечкам разных вкусов в 3 основных категориях.

Утечка активности к статической ссылке

Статическая ссылка действует, пока ваше приложение находится в памяти. У жизненного цикла действия обычно разрушаются и воссоздаются несколько раз в течение жизненного цикла вашего приложения. Если вы прямо или косвенно ссылаетесь на действие из статической ссылки, то после уничтожения это действие не будет собираться мусором.Активность может варьироваться от нескольких килобайт до нескольких мегабайт в зависимости от того, что в ней содержится. Если он имеет большую иерархию видов или изображения с высоким разрешением, это может привести к утечке большого объема памяти.

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

  1. Активность утечки в статическое представление (https://github.com/frank-tan/SinsOfMemoryLeaks/blob/LEAK/app/src/main/java/com/ franktan / memoryleakexamples / viastaticreference / LeakActivityToStaticViewActivity.java)
  2. Утечка активности статической переменной (https: // github.com / frank-tan / SinsOfMemoryLeaks / blob / LEAK / app / src / main / java / com / franktan / memoryleakexamples / viastaticreference / LeakActivityToStaticVariableActivity.java)
  3. Активность утечки в одиночный объект (https://github.com/frank) -tan / SinsOfMemoryLeaks / blob / LEAK / app / src / main / java / com / franktan / memoryleakexamples / viastaticreference / LeakActivityToSingletonActivity.java)
  4. Утечка активности в статический экземпляр внутреннего класса действия (https: // github .com / franktan / SinsOfMemoryLeaks / BLOB / УТЕЧКИ / приложение / SRC / главная / Java / COM / franktan / memoryleakexamples / viastaticreference / LeakActivityToStaticInnerClassActivity.java)

Утечка активности в рабочий поток

Рабочий поток также может перегрузить действие. Если вы прямо или косвенно ссылаетесь на Activity из рабочего потока, который живет дольше, чем Activity, вы также пропускаете объект Activity. Несколько разновидностей этой категории могут быть

  1. Активность утечки в поток (https://github.com/frank-tan/SinsOfMemoryLeaks/blob/LEAK/app/src/main/java/com/franktan/memoryleakexamples/vialongrunningtask / LeakActivityToThreadActivity.java)
  2. Утечка активности в обработчик (https://github.com/frank-tan/SinsOfMemoryLeaks/blob/LEAK/app/src/main/java/com/franktan/memoryleakexamples/vialongrunningtask/LeakActivityToHandlerActivity
  3. ) Утечка активности в AsyncTask (https://github.com/frank-tan/SinsOfMemoryLeaks/blob/LEAK/app/src/main/java/com/franktan/memoryleakexamples/vialongrunningtask/LeakActivityToAsyncTaskAyna2000

) применяется к другим методам потоков, таким как пул или ExecutorService .

Утечка самого потока

Каждый раз, когда вы запускаете рабочий поток из действия, вы сами отвечаете за управление рабочим потоком. Поскольку рабочий поток может жить дольше, чем Activity, вы должны правильно остановить рабочий поток, когда Activity будет уничтожена. Если вы забудете это сделать, вы рискуете утечь сам рабочий поток. Пример здесь https://github.com/frank-tan/SinsOfMemoryLeaks/blob/LEAK/app/src/main/java/com/franktan/memoryleakexamples/vialongrunningtask/LeakThreadsActivity.java

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

1. Насколько велика утечка памяти?

Не все утечки памяти одинаковы. Некоторые просачиваются в несколько килобайтных байтов; некоторые могут пропустить много мегабайт. Вы можете выяснить это с помощью вышеупомянутых инструментов и решить, является ли размер утечки памяти критичным для устройств вашей пользовательской базы.

2. Как долго просочившийся объект находится в памяти?

Некоторые утечки через рабочий поток живут столько же, сколько сам рабочий поток. Вы должны проверить, как долго в худшем сценарии живет ваш рабочий поток. В моих примерах кода у меня есть бесконечные циклы в рабочем потоке, поэтому он удерживает утечку объекта в памяти навсегда. Но в действительности большинство рабочих потоков выполняет простые задачи, такие как доступ к файловой системе или сетевые вызовы, которые либо недолговечны, либо в любом случае вы обычно устанавливаете таймаут.Это максимальное время утечки учитывается при определении приоритета устранения утечек памяти.

3. Сколько объектов может протечь?

Утечка памяти приводит к утечке только одного объекта, например, из статических ссылок в моем репозитории. Как только новое действие создано, ссылка начинает ссылаться на новое действие. Утечка старой активности очевидна для сбора мусора. Таким образом, максимальная утечка всегда равна размеру одного экземпляра активности. Другие утечки, тем не менее, продолжают пропускать новые объекты по мере их создания.В примере «Утечка потоков» действие пропускает один поток при каждом его создании. Таким образом, если вы поворачиваете устройство 20 раз, 20 рабочих потоков просочились. Это может быть очень плохо, так как приложение скоро перебирает всю доступную память на устройстве, если оно продолжает пропускать новые экземпляры. Скорее всего, я бы исправил все эти типы утечек, даже если один экземпляр объекта относительно мал.

Ознакомьтесь с веткой FIXED https://github.com/frank-tan/SinsOfMemoryLeaks/tree/FIXED моего репо. Ключевые выводы:

  1. Будьте очень осторожны, когда решите использовать статическую переменную в своем классе активности.Это действительно необходимо? Возможно ли, что статическая переменная ссылается на активность прямо или косвенно (косвенно может ссылаться на объект внутреннего класса, присоединенное представление и т. Д.)? Если да, то очистите ли вы ссылку на Activity onDestroy?
  2. Когда вы передаете свою деятельность в качестве слушателя одноэлементному объекту или экземпляру x-manager, убедитесь, что вы понимаете, что другой объект делает с переданным вами экземпляром действия. Очистите ссылку (при необходимости установите для слушателя значение null) Активность на Дестрой.
  3. Когда вы создаете внутренний класс в своем классе деятельности, сделайте его статическим, если это возможно. Внутренние классы и анонимные классы имеют неявную ссылку на содержащий класс. Так что, если экземпляр внутреннего / анонимного класса живет дольше, чем содержащий класс, у вас проблемы. Например, если вы создаете анонимный исполняемый класс и передаете его рабочему потоку или анонимному классу-обработчику и используете его для передачи задач другому потоку, вы рискуете утечь содержащий объект класса.Чтобы избежать риска утечки, используйте статический класс, а не внутренний / анонимный класс.
  4. Если вы пишете класс singleton или x-manager, вам нужно хранить ссылку на экземпляр слушателя, и вы не можете контролировать, как пользователь вашего класса управляет ссылкой, вы можете использовать WeakReference для ссылка на слушателя. WeakReference не препятствует тому, чтобы их референты были очищены от GC и восстановлены [4]. Хотя эта функция отлично подходит для предотвращения утечек памяти, она также может быть побочным эффектом, потому что нет гарантии, что указанный объект является активным, когда он необходим.Так что используйте его как последнее средство для устранения утечек памяти.
  5. Всегда прерывать рабочие потоки, инициированные вами в Activity onDestroy ().

Мы изучили, что такое утечка памяти, как она происходит и каковы ее последствия в системе Android. Затем мы представили два инструмента обнаружения и выявления утечек памяти, изучили общие шаблоны утечек памяти в Android, как оценить серьезность утечек и как избежать / устранить общие утечки. Не забудьте ознакомиться с примерами кода для общих шаблонов утечки памяти и исправлений из моего репозитория Github.Приятного создания приложений для Android, все 🙂

[1] Поддержание отзывчивости вашего приложения https://developer.android.com/training/articles/perf-anr.html

[2] Управление памятью Java https: // www. dynatrace.com/resources/ebooks/javabook/how-garbage-collection-works/

[3] Средство просмотра и анализа HPROF https://developer.android.com/studio/profile/am-hprof.html

[4 ] WeakReference https://developer.android.com/reference/java/lang/ref/WeakReference.html

[5] Наконец, понимание того, как работают ссылки в Android и Java https: // medium.com / google-разработчик-эксперты / наконец-понимание-как-ссылки-работа-в-android-и-java-26a0d9c92f83 # .h9w7hp13h

.

Отправить ответ

avatar
  Подписаться  
Уведомление о