Недоступно в режиме массовой памяти на телефоне. Удаление файлов dex. Очистка кэша в приложении Google Play

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

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

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

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

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

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

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

Находите приложение Google Play Маркет или Сервисы Google Play (название может различаться в зависимости от прошивки) и тапаете по нему.

Здесь нажмите на кнопку «Стереть данные», затем — «Очистить кэш».

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

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

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

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

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

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

Чтобы удалить временные файлы, данные из кэша и т.п., лучше использовать специальное приложение, например, Clean Master. Скачиваете его, запускаете, затем нажимаете на кнопку «Мусор».

Когда система найдет все ненужные и временные файлы, просто нажмите на кнопку «Очистить».

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

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

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

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

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

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

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

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

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

  • Удалить обновления для приложения Google Play.
  • Удалить кэш и данные не только для приложения Google Play, но и для Google Service Framework.
  • Очистить Dalvik-кэш с помощью .
  • Сделать . При этом все данные будут очищены, а файлы — удалены.

Вопрос: Не виден файл сохраненный в /storage/emulated/0/papka


До сего дня я был уверен что файл сохраненный /storage/emulated/0/papka/foto.jpg будет виден во внутренней (доступной через подключение по usb) памяти в папке papka и так и было пока не сменил смартфон теперь при сохранении файл сохраняется по этому же пути, но при подключении смартфона такой файл в памяти не найти и папки нет. Не понимаю что происходит. Программа одна и та же код сохранения не менялся................ мистика. Есть слабое предположение что может он сохраняет на втором смартфоне во внутреннюю память доступную только программе. Но вот код
Java
1 2 3 String sdState = android.os .Environment .getExternalStorageState () ; if (sdState.equals (android.os .Environment .MEDIA_MOUNTED ) ) { File sdDir = android.os .Environment .getExternalStorageDirectory () ;

и явно видно что речь об общедоступной памяти

Уточнение на втором смарте sd карты нет, на первом на котором все работало карта была, но сохранение шло в общедоступную память телефона (не на карту)

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

Ответ: Nerr , не морочь голову человеку, .getExternalStorageDirectory() путь к внешней памяти телефона, а не обязательно к флешке.

Note: don"t be confused by the word "external" here. This directory can better be thought as media/shared storage. It is a filesystem that can hold a relatively large amount of data and that is shared across all applications (does not enforce permissions). Traditionally this is an SD card, but it may also be implemented as built-in storage in a device that is distinct from the protected internal storage and can be mounted as a filesystem on a computer.

Вопрос: Внутренняя память 0.00 МБ. Не видит внутреннюю память


Здраствуйте, девайс Prestigio Multipad PMP5670c_DUO.
Я пытался найти способ решения проблемы, или найти прошивку, но толком ничего не получилось, планшет не видит внутреннюю память, и потому невозможно установить софт, + он не выключается и не работает перезагрузка.
На планшете была программа автоматического обновления, весила 450мб - скачал, но когда дошло до презагрузки, он просто долго грузился после чего вырубился, и не включился. А когда включил все по новой, сброс к заводским настройкам. Надеюсь на вашу помощь.

Ответ: Решил проблему, скачиваем официальную прошивку с сайта 4pda , инструкция есть на сайте и в архиве.

Вопрос: Как программно обратиться к внутренней памяти устройства


Здравствуйте, подскажите пожалуйста, имеется планшет Samsung Galaxy Tab 4 с ОС Android 5.0.2. Подключаю планшет через usb к ПК с Windows 7, планшет определяется как устройство с внутренней памятью и позволяет копировать из проводника Windows на внутреннюю память файлы. Каким образом можно программно обратиться к данной внутренней памяти для копирования файлов, например, через скрипт? Пробовал в bat-файле написать xcopy ... Planshet\Tablet\нужная_папка, он не может обратиться к ней. Есть какой-нибудь выход?

Ответ: Я по ftp подключаюсь так /storage/sdcard0

Вопрос: Чтение ассоциированного.txt файла с внутренней памяти по URI


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

Манифест

XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 > "android.intent.category.LAUNCHER" /> > > "android.intent.action.OPEN_DOCUMENT" /> "android.intent.action.OPEN_DOCUMENT_TREE" /> "android.intent.category.DEFAULT" /> > >

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

Java(TM) 2 Platform Standard Edition 5.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate (savedInstanceState) ; setContentView(R.layout .activity_main ) ; mTextFileView = (TextView) findViewById(R.id .textFileView ) ; Intent intent = getIntent() ; String action = intent.getAction () ; String type = intent.getType () ; if (Intent.ACTION_VIEW .equals (action) && type ! = null ) { if ("text/plain" .equals (type) ) { ReadFile(intent) ; // Handle text being sent // shortMessage("ACTION_VIEW документ открыт"); } } } private void ReadFile(Intent data) { try { String path = data.getData () .getPath () ; mTextFileView.setText (path) ; mTextFileView.append ("\n " + data.getData () ) ; Uri uri = data.getData () ; /* FileReader FR = new FileReader(uri.getPath()); // читаем посимвольно mTextFileView.append("\n"); int c; while((c=FR.read())!=-1){ mTextFileView.append(String.valueOf(c)); } */ } catch (FileNotFoundException e) { e.printStackTrace () ; mTextFileView.append (" \n Не удалось найти файл по указанному пути" ) ; } catch (IOException e2) { e2.printStackTrace () ; mTextFileView.append ("\n Проблемы при считывании файла" ) ; } }

В mTextView необходимо вывести текстовое содержимое файла.
Все могло бы решаться так:
И затем передача этого файла в FileReader, но Uri Android не эквивалентен URI java. А потому никак не могу найти решение этой проблемы.
Подскажите, пожалуйста, способы считать данные из.txt файла, расположенного на внутренней памяти . Или скиньте ссылку на источник, где об этом можно прочесть.

Ответ: очень большие буквы, не смог прочитать

Вопрос: Получить доступ к внешней карте памяти (Android 6)


В мне помогли разобраться с доступом к внутренней памяти.
Попытался получить внешнюю память с использованием готово класса с.
К сожалению, за время использование всех 3 доступных методов мне удалось найти только одну память и то она является внутренней. Есть ли способ получить доступ к внешней карте (removable) с возможностью записи?

Ответ: Наткнулся на исходники AmazeFileManager на. Поковырялся и понял лишь, что это реализовано через.
осталось только раскурить это дело.

Добавлено через 42 минуты
У меня получилось создать директорию в корне внешней памяти. Всем спасибо. Пример кода прикладываю ниже.

Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 @Override protected void onCreate(Bundle savedInstanceState) { //... startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE ) , 42 ) ; } @Override public void onActivityResult(int requestCode,int resultCode,Intent resultData) { if (resultCode! =RESULT_OK) return ; Uri treeUri=resultData.getData () ; DocumentFile pickedDir= DocumentFile.fromTreeUri (this , treeUri) ; grantUriPermission(getPackageName() , treeUri, Intent. | Intent.) ; getContentResolver() .takePersistableUriPermission (treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION ) ; writeFile(pickedDir) ; } public void writeFile(DocumentFile pickedDir) { DocumentFile file = pickedDir.createDirectory ("testDirectory" ) ; boolean b = file.exists () ; String h = "123" ; }

Вопрос: Ошибка при загрузки изображений с карты памяти при повороте экрана


Здравствуйте! Вопрос в следующем.
Загружаю в активити фотки с камеры. Имя файла передаю следующим кодом:
Java
1 2 3 4 5 6 Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE ) ; timeStamp = new SimpleDateFormat ("yyyyMMddHHmmss" ) .format (new Date () ) ; // название из даты File file = new File (Environment .getExternalStorageDirectory () , timeStamp + ".jpg" ) ; photodir1 = Uri.fromFile (file) ; captureIntent.putExtra (MediaStore.EXTRA_OUTPUT , photodir1) ; startActivityForResult(captureIntent, 0 ) ;

Затем в onActivityResult загружаю фотки:

Java
1 2 3 4 5 6 7 8 final ImageView foto = new ImageView (getApplicationContext() ) ; LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams (200 , 200 ) ; layoutParams.setMargins (0 , 10 , 0 , 10 ) ; foto.setLayoutParams (layoutParams) ; foto.setScaleType (ImageView .ScaleType .CENTER_CROP ) ; foto.setImageURI (photodir1) ; lan.addView (foto) ; vosnovu = vosnovu + photodir1.getPath () + ";" ;

vosnovu - это строка, которая собирает все пути к фоткам.

Java
1 2 3 4 5 6 7 8 9 10 11 12 dd = dd.substring (0 , dd.length () - 1 ) ; String dd_arr = dd.split (";" ) ; final ImageView foto = new ImageView (getApplicationContext() ) ; LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams (200 , 200 ) ; layoutParams.setMargins (0 , 10 , 0 , 10 ) ; foto.setLayoutParams (layoutParams) ; foto.setScaleType (ImageView .ScaleType .CENTER_CROP ) ; try { foto.setImageURI (Uri.parse (dd_arr[ i] ) ) ; } catch (Exception e) { e.printStackTrace () ; }

Так вот, даже когда построчно выполняешь код, приложение просто вываливается на:
setImageURI (Uri.parse (dd_arr[ i] ) ) ; } } catch (Exception e) { e.printStackTrace () ; }

Т.е. вдруг файла уже не существует! Но файл есть. И все то же, приложение вываливается и Debug останавливается!

И что еще странно, все происходит, когда фоток 5 и более! Меньше фоток, все работает!

Может еще все проблема в том, что у меня android 6, и карта памяти у меня является частью внутренней памяти телефона, т.е. они объедены. И карта не шустрая, т.е. когда я объединял, тел выдал, что карта не достаточно быстрая. Может, как то не успевает срабатывать. Не знаю, но мне кажется это бред.
Спасибо заранее за ответы.


Заранее спасибо!

Ответ: Я нашёл подробную инструкцию по очистки Андроида:

В Вашем случае можно попробовать с помощью файлового менеджера или командной строки посмотреть файлы с именем недоустановленного приложения и попробовать их удалить, если Вам это позволят права пользователя.
К сожалению, в Андроиде нельзя, как в нормальном Линуксе, вбить в консоль su -l root и всё починить...
Где обычно хранятся приложения у Андроида, почитайте тут:

Вопрос: Keneksi Orion (память, непонятки)


Доброго времени.
Совсем недавно стал пользоваться смартфоном и не смог разобраться с одной проблемой:
У смарта несколько видов памяти, озу - это понятно, проехали, далее внутренняя память -1Гб и память телефона - 6Гб, ещё есть микруха на 8Гб. Проблема вот в чём: когда я качаю приложения или игры, он настырно ставит их в тот самый 1 гиг, хотя в настройках указано качать всё на микроСД... поменял на установку в память телефона, всё равно проблема сохранилась, он всё равно частично грузит в тот самый гиг, который уже давно естественно забит до верху.
Скажите пожалуйста, как объединить внутреннюю и память телефона, чтобы стало 7Гб?? или др. варианты, чтобы разгрузить этот пресловутый гиг., лучше обратить на 4пда в ветку планшета, там точно помогут быстрее

Вопрос: Чем отличаются встроенная, системная и внутренняя памяти?


Доброго времени.
Вопрос собственно в теме.

Ответ: 4 гига это общий объем установленной флеш-памяти
системная - это огрызок, куда по-умолчанию ставятся приложения
внутренняя - это типа внешней sd-карты, для хранения пользовательских данных и файлов, на нее кстати можно переносить приложения из огрызка системной
а все остальное - собственно занимает ос и еще куча nand разделов, о которых вы не подозреваете

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

Типы памяти в Android-устройствах

RAM, Random Access Memory или ОЗУ – память с произвольным доступом или оперативная память. Программное обеспечение (в том числе операционная система и установленные приложения) записывает в данную память нужные им в ходе работы данные и могут быстро их считать. Оперативная память требует постоянного питания – при выключении или перезагрузке устройства она полностью очищается. Чем больше оперативной памяти, тем, соответственно, больше различных процессов и сервисов может быть запущено одновременно. Ошибка «Память телефона заполнена» может возникнуть, если весь объём ОЗУ полностью исчерпан, и свободного места там не хватает для запускаемого приложения.

ROM, Read Only Memory или ПЗУ – память только для чтения. Хранящаяся в ней информация не может быть изменена и записывается при изготовлении телефона, либо при переустановке операционной системы – то есть в процессе перепрошивки. ROM зачастую разбита на несколько разделов для выполнения внутренних функций.

Interal Storage (Interal Phone Storage) – внутренний накопитель смартфона (или другого устройства). Данный раздел памяти предназначен для хранения пользовательских данных, установленных приложений и так далее. Это что-то вроде аналога винчестера в персональном компьютере. Естественно, в процессе записи данных во внутреннюю память Android-девайса свободного места здесь становится меньше. Общий объём накопителя и количество свободного места можно посмотреть в настройках устройства.

External Storage – или, по сути, карта памяти microSD/microSDHC. Данный тип памяти пользователь может расширять по желанию, если, конечно, девайс поддерживает карты памяти, и для этого есть соответствующий слот. Является чем-то вроде внешнего жёсткого диска для персонального компьютера. Общий и занятый объёмы данного вида памяти, а также свободное место на карте можно проверить в настройках Андроид-гаджета. На карте памяти можно хранить мультимедийные данные, такие как музыка, фильмы, картинки. Начиная с Android 2.2 появилась возможность переносить установленные приложения на карту памяти, если это поддерживает само приложение, таким образом экономя место на внутреннем накопителе. Перед заменой карты памяти настоятельно рекомендуется сначала размонтировать её, а не просто извлекать из устройства.

Почему заканчивается память

Обычно у пользователей после некоторого времени сравнительно «спокойного» использования устройства на Андроиде начинается период, когда хочется это самое устройство всячески программно модифицировать. Начинается нескончаемая установка приложений, скриптов и так далее. И рано или поздно возникает сообщение «Память телефона заполнена», особенно если модель не из самых «топовых», и этой самой памяти не так-то много. Логично предположить, что проблема в оперативной памяти – да, отчасти это так. Но её подчистить гораздо проще, это можно сделать как через настройки, так и используя различные скачиваемые утилиты. Так вот, сообщение про нехватку памяти в устройстве появляется при переполнении внутреннего накопителя. Конечно, можно постоянно чистить этот самый накопитель, удалять ненужные приложение и так далее, но со временем будет видно, что пресловутое «Память телефона заполнена» будет появляться всё чаще. С чем это связано?

  • операционная система Android по умолчанию устанавливает приложения на внутреннюю память;
  • далеко не каждое приложение является доступным для переноса на карту памяти;
  • «вшитые» в ваше устройство жизненно важные программы вроде Google Maps и Google Play периодически обновляются, занимая дополнительные ячейки внутренней памяти;
  • некоторые производители до кучи закидывают в купленный вами смартфон или планшет предустановленные игры и другое ПО, которое именуется bloatware.

Проверка свободного места

Через диспетчер

Кнопка - вызов диспетчера

В устройствах Samsung нажмите и держите около секунды кнопку «Домой», после чего перейдите на значок памяти.

Данные здесь отражаются в формате «Занято/Всего», поэтому вам понадобятся немного вспомнить уроки арифметики.

Через настройки

Тут всё проще:Настройки > Опции > Память . И ничего считать не надо.

Как очистить - обзор вариантов

Оперативные меры

Для быстрого, хотя и не очень долгого, решения ситуации поможет очистка временных файлов. Они имеют расширение.rm и хранятся в папке datalocal mp . Удалить временные файлы можно, имея Root-доступ, например, при помощи Root Explorer.

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

Удаление файлов dex

А теперь давайте разберём более основательный способ чистки места на внутреннем накопителе. Каждая программа на смартфоне или планшете, или любом другом Android-девайсе при установке создает файл с расширением.dex в директории data dalvik- cache . Но иногда, на некоторых системных приложениях данные файлы отсутствуют, и видно следующую картину:

Действительно, странно, что программа занимает 0 байт. Как оказывается, причина кроется в том, что наряду с данными файлами в прошивке находятся одноимённые, но с расширением.odex. Эти файлы можно создавать, и тогда не надо оставлять файлы.dex. «Одексировать» приложения может, например, LuckyPatcher. Итак, для начала смотрим в свойствах приложения, сколько места оно занимает:

В данном случае это 1.68 Мбайт, так что соответствующий.dex файл в data dalvik- cache занимает столько же места, и столько же будет весить созданный файл.odex. Запускаем упомянутый LuckyPatcher, выбираем в списке нужное приложение, зажимаем на него (не просто «тапаем» один раз, а именно зажимаем), видим контекстное меню:

Выбираем первый или второй пункт, причём не важно, что приложению может вовсе и не нужно убирать проверку лицензии или удалять рекламу. После этого программа создаст нужные нам.odex файлы. Теперь можно удалить файлы.dex из data dalvik- cache. И вот мы видим, что приложение уже занимает 0 байт, но при этом отлично работает. Данный способ подойдёт для системных приложений.

Для пользовательских же приложений всё немного отличается. Выбираем нужное нам приложение и заходим в его папку на карте памяти, смотрим свободную память данного приложения. На данном примере зарезервировано 1.56 Мбайт для папки программы, в то время как.dex-файл занимает 1.68 Мбайт.

Существует несколько способов решить данную проблему: либо переместить выбранное приложение в системную директорию и провести манипуляции, описанные выше, либо же забыть про данную затею конкретно с этим приложением и взяться за какую-то другую программу. К слову, если переместить приложение в пользовательскую память, после чего создать.odex, то можно удалять.dex, и программа будет работать нормально. Но при перемещении её на флешку.odex файл будет удалён, и приложение работать откажется. В таком случае останется только два выхода: переустановить программу заново или же сделать полную очистку dalvik-cache. Так что не каждое приложение может работать без.dex – способ «пройдёт» только с приложениями, у которых свободной памяти больше, чем.dex.

Жёсткая перезагрузка

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

Действенный, но жестковатый способ решения проблемы

Удаление ненужных приложений, их обновлений и кэша

Чтобы избавиться от неиспользуемых приложений, зайдите в Настройки > Опции > Диспетчер приложений.

Найти в меню «Диспетчер приложений» не так сложно

Оказавшись во вкладке «Загружено», вызовите меню и отранжируйте файлы по размеру. Далее выбирайте заброшенные вами приложения и нажимайте «Удалить».

Удалить обновления можно только у тех приложений, которые вы устанавливали сами - со встроенными подобный трюк не прокатит.

Выберите приложение, щёлкните на «Удалить обновления», а после этого - на «Отключить».

Если у вас есть root, то вы можете избавиться даже от системного ПО. Но будьте осторожны - одно неловкое движение, и смартфон уснёт мёртвым сном.

Для вычищения кэша приложений пройдите по адресу: Настройки > Опции > Память.

Выждите несколько секунд, пока не будет определён объём занятого пространства, после чего выберите пункт «Кэшированные данные» и тапните «ОК».

С помощью утилиты CCleaner

CCleaner - пожалуй, лучшая из утилит

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

После того как утилита сделает своё дело, её можно смело удалять - до следующей надобности.

Видео: Как освободить память на Андроиде

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