Получив в сотый раз сообщение о том, что на моем Nexus One «недостаточно места», я перешел к экрану «управление приложениями», чтобы удалить приложения, которые я не использовал в последнее время. Я ждал, пока экран полностью загрузится, прежде чем что-то делать. В нем говорилось, что во внутренней памяти телефона свободно 27 МБ. Затем я нажал на приложение «Fooducate», которое я установил. В нем говорилось, что для приложения используется примерно 4,2 МБ внутренней памяти плюс около 12 КБ данных. Он был установлен на телефоне, и перенести его на SD-карту не представлялось возможным. Я нажал «удалить», и процесс удаления запустился. После этого экран «управление приложениями» утверждал, что у меня осталось 28 МБ.
Что случилось с остальными 3,2 МБ? Я думаю, что если у вас есть 27 МБ и вы удаляете программу, которая использует 4,2 МБ места, у вас будет 31,2 МБ свободного места.
Обновлять:
После выключения телефона и его повторного включения, а затем перехода к экрану «управление приложениями», теперь он говорит, что 32 МБ свободно, что больше похоже на то, что я ожидал. Итак, я думаю, мой пересмотренный вопрос: почему место не было доступно сразу, и есть ли что-то, что я могу сделать, чтобы освободить его, не отключая питание?
Из того, что я могу понять из вашего сценария, кажется, что виновником является Dalvik Cache андроида.
Цитата из темы на форумах xda: -
Когда Android запускается, DalvikVM просматривает все ваши приложения (файлы .apk) и фреймворки и строит дерево зависимостей. Он использует это дерево зависимостей для оптимизации байт-кода для каждого приложения и сохраняет его в кеше Dalvik. Затем приложения запускаются с использованием оптимизированного байт-кода. Вот почему, когда вы устанавливаете новое ПЗУ, иногда первая загрузка занимает очень много времени. Каждый раз, когда приложение (или библиотека фреймворка) изменяется, оно повторно оптимизируется, а кеш обновляется.
и похоже, что каждый раз при перезагрузке dalvik cache переоптимизируется.
Из собственного опыта я также заметил, что даже без перезагрузки место на диске освобождалось после небольшого ожидания. Итак, моя теория заключается в том, что ОС Android распределяет операции записи во внутреннюю память вовремя, чтобы улучшить отзывчивость устройства.
Но я до сих пор не уверен, что если память нужна прямо сейчас для установки нового приложения, будет ли она освобождена для этой цели, или сообщение «недостаточно памяти» появится снова, пока удаленное приложение не освободит свою память.
Жамбуффар
КрисФлетчер
Жамбуффар