Некоторые устройства (например, мой Nexus 4) не имеют внешнего слота для SD-карты. Вместо этого есть корневая папка, /sdcard/которая называется так же. Но я также нахожу другие пути, которые все указывают на одни и те же файлы - должны быть какие-то редиректы (я думаю, это называется символическими ссылками в Linux).
Вкратце: это связано с многопользовательской функциональностью, представленной в Jelly Bean:
/storage/emulated/0/Насколько мне известно, это относится к «эмулируемой MMC» («часть владельца»). Обычно это внутренний. Здесь «0» означает пользователя, «0» - первый пользователь, известный как владелец устройства. Если вы создадите дополнительных пользователей, это число будет увеличиваться для каждого.
/storage/emulated/legacy/как и прежде, но указывает на часть текущего работающего пользователя (для владельца это будет символическая ссылка на /storage/emulated/0/). Так что этот путь должен привести каждого пользователя к своей «части».
/storage/sdcard0/: Поскольку здесь нет legacyкулона (см. Комментарии ниже), «0» в этом случае скорее идентифицирует само устройство (карту). Можно было бы, в конце концов, соединить кард-ридер с другой SDCard через OTG, который затем стал бы /storage/sdcard1(никаких доказательств тому, только предположение - но я бы сказал, хорошее)
Хотя можно прийти к выводу, что должно быть /storage/sdcard/legacyи то, чего не существует (см. Комментарии) - что вполне логично, если предположить, что числа здесь не связаны с пользователем, а скорее с несколькими карточками: " 0 "всегда будет тем, что находится в слоте карты устройства, поэтому здесь нет необходимости использовать" устаревшую символическую ссылку ".
Странный. Но это может быть связано с тем фактом, что на реальной SD-карте вряд ли есть какие-либо разрешения (из-за того, что файловая система FAT их не поддерживает). Отмечая разницу (по /sdcard0/сравнению с /emulated/0), здесь «0» может быть предназначен для случая, когда тогда подключается несколько SDC-карт через кард-ридер и режим USB-хоста. Просто предположение, не сложный факт - но я бы сказал, хороший.
Иззи
Ответ обновлен соответственно :)
Иззи
2
/sdcard/просто символическая ссылка на /storage/sdcard0/. На более старой версии, чем 4.0.0, это так /mnt/sdcard/.
Матье Харле
И я предполагаю, что на Android 4.0+ /mnt/sdcard/есть символическая ссылка на /storage/sdcard0/? Так как оба доступны для навигации на моем Nexus 4.
MrWhite
2
Да, немного запутанно, но это альтернативные пути для макета памяти
Да, наименование может зависеть от устройства / производителя / ПЗУ. Но, как правило, /mnt/*во всех этих случаях это только символическая ссылка с «настоящими монтировками», расположенными ниже /storage:)
Иззи
Ну, у меня тоже есть папка оболочки под mnt . Я часто переключаю ПЗУ устройства, и, таким образом, для тех дисков, которые делают внешнюю SD-карту памятью по умолчанию, папка оболочки работает как моя внутренняя память, а для других дисков, которые не заменяют SD-карту как внутреннюю память, оболочка даже не приходит в картину. Он просто остается там в папке со всеми нетронутыми данными, но не доступен для локального файлового менеджера. Хотел узнать, что именно.
/storage/sdcard/legacy
пути нет ./sdcard0/
сравнению с/emulated/0
), здесь «0» может быть предназначен для случая, когда тогда подключается несколько SDC-карт через кард-ридер и режим USB-хоста. Просто предположение, не сложный факт - но я бы сказал, хороший./sdcard/
просто символическая ссылка на/storage/sdcard0/
. На более старой версии, чем 4.0.0, это так/mnt/sdcard/
./mnt/sdcard/
есть символическая ссылка на/storage/sdcard0/
? Так как оба доступны для навигации на моем Nexus 4.Да, немного запутанно, но это альтернативные пути для макета памяти
/ mnt / sdcard0 / (Внутренняя виртуальная SD-карта)
и Иззи правильно, если подключено больше устройств, но наименование может отличаться в зависимости от устройства.
ех. / mnt / sdcard1 / (физическая SD-карта в слоте SD)
но другие устройства, такие как USB-флешка, подключенная к адаптеру, могут называться
/ mnt / media_rw / usbdisk (android kitkat 4.4 и выше?) или / mnt / usbdisk (jellybean 4.1 - 4.2)
источник
/mnt/*
во всех этих случаях это только символическая ссылка с «настоящими монтировками», расположенными ниже/storage
:)