Вчера у меня было около 40 МБ свободного места на моем Android 2.2.1 Samsung GT-S5570. Я хотел установить Facebook
приложение, поэтому я загрузил его, Play Store
а затем оно установилось автоматически. Его размер был ~20 МБ.
Это приложение установлено на SD-карту. Однако после всего процесса я получил предупреждающее сообщение о нехватке внутренней памяти. Я проверил свободное пространство и, что удивительно, теперь оно составляет ~ 20 МБ ... Я предполагаю, что 20 МБ - это загруженное приложение (что-то вроде .exe в Windows).
Я просмотрел .temp и загрузки, чтобы увидеть, есть ли там «.exe», но я не смог его найти. Я просмотрел настройки браузера (браузер Android по умолчанию), чтобы увидеть, где сохраняются загрузки, но я не смог найти никаких ссылок на загрузки.
Где сохраняются загруженные файлы «.exe»?
Приложения для Android не являются файлами .exe — это файлы .apk, которые фактически являются файлами Java .jar с дополнительной включенной информацией.
Пакеты устанавливаются в одном из нескольких мест:
/system/app
- для системных приложений - вы не можете изменить эту папку./data/app
- сюда устанавливаются любые приложения, установленные из маркета, и вы, как пользователь, можете изменить папку./sdcard/.android_secure
- здесь хранятся приложения, перемещенные на SD-картуОбратите внимание, что приложения также будут размещать данные в нескольких местах, и не все из них находятся на SD-карте, даже если само приложение установлено на SD-карте; это, вероятно, ваша проблема с приложением на вашем устройстве, и, к сожалению, без рутирования устройства и использования чего-то вроде a2sd , который позволяет вам перемещать другие разделы на SD-карту.
Для справки также см. этот вопрос на StackOverflow , в котором есть дополнительная информация.
ext2
раздел ~ 250 МБ на SD-карте, переместил все подвижные приложения с помощью Link2SD
, создал символические ссылки на неподвижные приложения (например maps
, play store
), удалил «системные» приложения, такие как gmail
и, youtube
но снова у меня есть только ~ 20 МБ бесплатно космос...Фактическое местоположение (или путь) внешней SD-карты (не внутренней, иногда доступное пользователю внутреннее хранилище считается внешним хранилищем (в разработке Android)) варьируется от одного устройства к другому. Так что, предположительно, путь установленных приложений на sd карту тоже отличается от устройства к устройству. Если вы действительно хотите узнать фактическое расположение установленных приложений (на SD-карте), вам придется немного попрограммировать.
Но в большинстве случаев (устройства Samsung, работающие на lolipop) пакет приложения находится внутри /mnt/asec/[имя_пакета], а файл .apk находится внутри /mnt/asec/[имя_пакета]/[имя_приложения].apk . Если вы действительно хотите знать, где оно находится, поместите приведенный ниже код в метод onCreate() и запустите приложение на нужном вам устройстве. Он покажет вам все местоположения приложения, которые находятся внутри SD-карты....
Надеюсь поможет...
PackageManager pm=getPackageManager();
List<ApplicationInfo> infos=pm.getInstalledApplications(0);
for(int i=0;i<infos.size();++i){
String src_path=infos.get(i).sourceDir;
if(!src_path.contains("/system") &&
!src_path.contains("/data")){
// showing path as toast message
// you can even print it with System.out.println()
Toast.makeText(this, src_path, Toast.LENGTH_SHORT).show();
}
}
Иззи
insufficient-memory
тег к твоему вопросу. Пожалуйста, взгляните на его tag-wiki для получения подробной информации, включая предложение babelmonk (которое довольно подробно описано в tag-wiki app2sd ).