Смущенный многими местоположениями виртуальных /sdcard /

Некоторые устройства (например, Nexus 4) не имеют внешнего слота для SD-карты. Вместо этого есть корневая папка с именем /sdcard/, которая обрабатывается одинаково. Но я также нахожу другие пути, которые указывают на одни и те же файлы - должны происходить какие-то переадресации (я думаю, что это называется symlinks в Linux).

Все эти пути содержат одни и те же файлы:

/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/

Какой путь является «фактическим»? А как насчет других путей? Для чего они нужны, почему они существуют?

43 голоса | спросил Torben Gundtofte-Bruun 13 FebruaryEurope/MoscowbWed, 13 Feb 2013 16:55:41 +0400000000pmWed, 13 Feb 2013 16:55:41 +040013 2013, 16:55:41

2 ответа


35

Рекомендуемая лекция: Почему /sdcard /превратить в /sdcard /0 /с 4.2? .

Вкратце: это связано с многопользовательской функциональностью, введенной с Jelly Bean:

  • /storage/emulated/0/: Насколько мне известно, это относится к «эмулируемой MMC» («часть владельца»). Обычно это внутренний. «0» означает «здесь», «0» - первый пользователь, известный как владелец устройства. Если вы создадите дополнительных пользователей, это число будет увеличиваться для каждого.
  • /storage/emulated/legacy/ по-прежнему, но указывая на часть текущего рабочего пользователя (для владельца это будет символической ссылкой на /storage/emulated/0/). Таким образом, этот путь должен привести каждого пользователя к его «части».
  • /sdcard/: в соответствии с комментариями Shywim , это символическая ссылка на ...
    • /mnt/sdcard (Android <4.0)
    • /storage/sdcard0 (Android 4.0 +)
  • /storage/sdcard0/: поскольку здесь нет кулона legacy (см. комментарии ниже), «0» в этом случае скорее идентифицирует само устройство (карту). В конце концов, можно подключить устройство для чтения карт с другой SDCard через OTG, которое затем станет /storage/sdcard1 (никаких доказательств для этого, просто догадка, но я бы сказал, что это хороший)

Хотя можно прийти к выводу, что должен быть /storage/sdcard/legacy, там нет (см. комментарии) - что совершенно имеет смысл с моим допущением чисел здесь не связаны с пользователем, а скорее с возможными множественными картами: «0» всегда будет одним из слотов на карте устройства, поэтому здесь нет необходимости в «старой символической ссылке».

ответил Izzy 13 FebruaryEurope/MoscowbWed, 13 Feb 2013 17:44:09 +0400000000pmWed, 13 Feb 2013 17:44:09 +040013 2013, 17:44:09
2

Немного смущает, но это альтернативные пути для макета памяти

/mnt /sdcard0 /(Внутренняя виртуальная SD-карта)

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

ех. /mnt /sdcard1 /(физическая SD-карта в слоте SD)

, но другие устройства, такие как флэш-накопитель Usb, соединяются с адаптером, можно назвать

/mnt /media_rw /usbdisk (андроид kitkat 4.4 и выше?) или /mnt /usbdisk (jellybean 4.1 - 4.2)

ответил XDarkMario 30 72014vEurope/Moscow11bEurope/MoscowSun, 30 Nov 2014 02:44:23 +0300 2014, 02:44:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132