Я недавно обновил свой телефон до LG Motion 4G (Android 4 ICS). Я вижу, что SDCard установлен в /sdcard/external_sd
. Я также заметил, что это похоже на то же самое с некоторыми другими более новыми моделями. Приложения ожидают, что SDCard будет в /sdcard
. Я предполагаю, что производители хотят включить много внутренней памяти, но зачем монтировать внутреннюю память на /sdcard
? Разве это не должно противоречить какой-либо форме стандарта спецификации Android?
external-sd
storage
Sepero
источник
источник
Ответы:
Причина в истории Android: первое поколение Android-устройств имело только небольшой объем внутренней памяти (около 100-400MiB), который был установлен под ним
/data
.Затем появились устройства с внешней на тот момент SD-картой. SD-карта была установлена под
/mnt/sdcard
.После этого на рынке появились устройства с большим внутренним хранилищем. Это хранилище было разделено на части, потому
/mnt/sdcard
что стало местом по умолчанию для больших блоков данных из приложений, изображений и тому подобного. Таким образом, Android среда должна была иметь/data
и/mnt/sdcard
каталог. Поэтому один раздел был для/data
, другой для/mnt/sdcard
. По этой причине у вас может быть мало места на/data
диске ( раздела), даже если на нем достаточно места/mnt/sdcard
.Эта ситуация была улучшена с Android 3.0:
/data
и/mnt/sdcard
теперь указывают на тот же раздел. Хорошая работа Google, это могло быть сделано версии назад. Это также причина, по которой app2sd больше не требуется на Android 3.0 или выше: вы будете перемещать данные только в том же объеме.Теперь перейдем к ответу на ваш вопрос: поскольку
/mnt/sdcard
внешняя SD-карта уже смонтирована во внутренней памяти, она должна использовать другую точку монтирования. И эта точка монтирования не указана Google. Возможно/mnt/sdcard/ext_sd
/mnt/external
/mnt/extSdCard
/mnt/sdcard/external_sd
Вызов API
getExternalStorageDirectory()
обычно указывает на каталог внутреннего хранилища. Такое поведение задокументировано. Существуют проекты с открытым исходным кодом, которые предоставляют инструменты для поиска каталога внешних SD-карт каноническим способом.источник
isExternalStorageRemovable()
посмотреть, является ли «внешнее» хранилище съемным, плюс можно определить точки монтирования (используяmount
команду), проверить флаги монтирования и т. Д. Но если я не ошибаюсь, это все равно означает, что каждому разработчику нужно самому разобраться с его приложением, и нет простого API-вызова для этого?/data
раздел объединены, как я могу безопасно смонтировать / размонтировать мою SD-карту, чтобы подключить ее, скажем, к моему ПК? Мне кажется, что иметь отдельные разделы логично, и я не понимаю, почему все это должно было случиться./data
раздел, который объединяется.This situation was improved with Android 3.0: /data and /mnt/sdcard are now pointing to the same parition
, Просто к сведению, это НЕ верно, по крайней мере, на одном телефоне под управлением Android 4.0 (Pantech Burst), где/data
1 ГБ раздел ext4 и 12/mnt/sdcard
ГБ FAT32 раздел.Отказ от монтирования внешнего SD
/mnt/sdcard
не имеет технических преимуществ, это способ Google помочь поставщикам оборудования создать точку дифференциации для телефонов с большей внутренней памятью.Нет никаких причин, по которым приложениям приходится искать способ найти внешнюю карту, когда это
/mnt/sdcard
было именно то место, где должна была быть SD-карта, а неопределенный способ загрузки внешней SD-карты Google - еще один менее удобный для пользователя способ сделать внешнюю SD-карту менее полезной в новые устройства Android. Существует причина , почему НЕТ/data
и должны/mnt/sdcard
были быть объединены в одном разделе на новой версии Android для производителей , чтобы дифференцировать телефоны с большей внутренней памяти с более низкой стоимости единицы с менее внутренней памяти , за исключением. Даже если бы слияние было сделано, Google мог бы четко определить СТАНДАРТновая точка монтирования для внешних SD-карт вместо того, чтобы оставить ее совершенно расплывчатой. Это полностью работает против предотвращения дальнейшей «сегментации» экосистемы Android за счет неуклюжего дизайна, чтобы помочь поставщикам отличать более дорогие телефоны от более дешевых устройств с меньшей встроенной памятью.Двоичные файлы приложений Android крошечные, телефоны с 1-2 гигабайтами встроенной памяти должны иметь более чем достаточно места для сотен приложений, и все большие данные можно безопасно спрятать на внешней SD-карте. Но затем поставщики осознали, что им нужен способ дифференциации своего более высокого конечного продукта, и заявив, что более высокая внутренняя память становится частью этой схемы, а снижение полезности внешней памяти является другой интегрированной частью, которая необходима этой схеме для полноценной работы, поэтому Менее полезный API для поиска внешних SD-карт и нестандартных точек подключения.
Итак: Нет, установка SD-карты в другом месте
/mnt/sdcard
- это не что иное, как бизнес-стратегия продажи более дорогих новых телефонов под новую версию Android, не более того. Представьте себе, если Nexus 4 8 ГБ и Nexus 16 ГБ могут использовать 64 ГБ внешней SD-карты для приложений и носителей, есть ли причина для кого-либо покупать версию 16 ГБ? Эти дополнительные 8 ГБ памяти NAND не стоят разницы в цене в 50 долларов, если используются внешние SD-карты. Поскольку большинство компонентов смартфона должны быть одинаковыми (ОЗУ, процессор, радиоприемники), единственная область, оставшаяся для большей прибыли, - это пространство внутренней памяти и, следовательно, странная точка подключения внешней памяти.Также все ли заметили отсутствие поддержки внешней SD от нынешнего урожая Android-устройств с маркой Google? Эта тенденция будет продолжать расширяться в устройствах Android «высшего уровня». Поддержка внешних SD-карт была ключевым отличием для устройств Android, чтобы превзойти доминирование iPhone на рынке мобильных устройств. Теперь, когда Android играет главную роль в игре с числами, нет необходимости в том, чтобы эта практика снижения прибыли сохранялась гораздо дольше.
Я не удивлюсь Android 5.0, поддержка внешней SD-карты уйдет в прошлое. Потому что если приложениям сложно найти внешнюю SD-карту, то большинство программ просто использует известные
/data
и/mnt/sdcard
местоположения, а большинство приложений используют все больше и больше хранимых данных для своей работы, поэтому стратегия «живого» продукта создается из «воздуха». "просто не монтируйте внешнюю SD-карту в/mnt/sdcard
.источник
/data
и/mnt/sdcard
», поскольку я ясно вижу причину: избегать фрагментации внутреннего хранилища./sdcard/external_sd
на LG P880), резервное копирование «общего хранилища» включает в себя и то , и создает огромный архив. Нет способа сделать резервную копию внутренней SD-карты только при простом подходе. Что не имеет особого смысла, так как есть гораздо более простые способы сделать резервную копию внешней карты. Факт, который сводит меня с ума, так как у меня есть упомянутое устройство ...Вы должны знать (если они укоренены), вы можете зайти в /system/etc/vold.fstab и поменять местами монтирования для / sdcard, и /mnt/external_sd....this позволит вашей sdcard быть на / sdcard, как вы ожидаете а оставшаяся «внутренняя память» будет смонтирована в / mnt / external_sd или, если вы предпочитаете / sdcard / external_sd /
источник