Каковы различия между внутренним хранилищем, внешним хранилищем, SD-картой и съемным хранилищем? - PullRequest
39 голосов
/ 23 февраля 2011

Из официальной документации :

Использование внешнего хранилища

Каждое Android-совместимое устройство поддерживает общее «внешнее хранилище», которое вы можете использовать длясохранить файлы. Это может быть съемный носитель (например, SD-карта) или внутренний (несъемный) носитель ...

Я действительно запутался в этом вопросе.Из того, что я понимаю, использование внешнего хранилища не обязательно означает использование съемной карты, я прав?Однако, когда речь идет о внешнем хранилище, его всегда называют «SD-карта».

Я занимаюсь разработкой приложения, которое загружает файлы .mp3 из Интернета.Я хочу сохранить эти файлы в памяти телефона (не хочу использовать какое-либо съемное устройство), но, как я узнал, эти файлы должны быть сохранены во внешней памяти. Однако я хотел бы предложить возможность импортафайл со съемного устройства.Где и как мне сохранить эти файлы?

Спасибо

Ответы [ 5 ]

33 голосов
/ 03 апреля 2015

Разница между внутренним хранилищем, внешним хранилищем (то есть основным внешним хранилищем) и вторичным внешним хранилищем?

Внутреннее хранилище: - это хранилище, недоступное пользователю, кроме как через установленные приложения (или путем рутирования их устройства). Пример: data / data / app_packageName

Внешнее хранилище имеет два типа:

Первичное внешнее хранилище: Во встроенном общем хранилище, которое «доступно пользователю, подключив USB-кабель и установив его в качестве накопителя на главном компьютере». Пример: когда мы говорим Nexus 5 32 ГБ.

Вторичное внешнее хранилище: Съемное хранилище. Пример: SD-карта.

26 голосов
/ 23 февраля 2011

При создании приложения, использующего внутреннее хранилище, ОС Android создает уникальную папку, которая будет доступна только из приложения, поэтому никакое другое приложение или даже пользователь не сможет увидеть, что находится в этой папке.

Внешнее хранилище больше похоже на общедоступное хранилище, поэтому пока это sdcard, но может стать любым другим типом хранилища (удаленный жесткий диск или что-то еще).

Внутреннее хранилище должно использоваться только для данных приложения (файлы настроек и настройки, звуковые или графические носители для работы приложения). Если вы собираетесь загружать много mp3-файлов, я бы рекомендовал сохранять их во внешнем хранилище, поскольку внешнее хранилище часто больше. Кроме того, хранение данных во внутреннем хранилище может помешать пользователю устанавливать другие приложения.

19 голосов
/ 01 августа 2016

Терминология внутреннего и внешнего хранилища в соответствии с Google / официальной документацией по Android сильно отличается от того, что мы думаем.

Согласно официальным документам Android: -

Внутреннее хранилище : по умолчанию файлы, сохраненные во внутреннем хранилище, являются частными для вашего приложения, и другие приложения не могут к ним обращаться.Когда пользователь удаляет ваше приложение, эти файлы удаляются / удаляются.Пользователь вашего приложения также не может получить к ним доступ с помощью файлового менеджера;даже после включения опции «показывать скрытые файлы» в файловом менеджере.Чтобы получить доступ к файлам во Внутреннем хранилище, вам нужно получить root права на телефон Android.Итак, это НЕ , что мы считаем внутренней памятью телефона - 32 ГБ встроенной памяти Nexus 5.

Внешнее хранилище:

Это может быть съемный носитель (например, SD-карта) или внутренний (несъемный) носитель

Это означает, что оба типа хранилищ, например, 64 ГБ встроенной памяти Nexus 6P и съемный microSDкарта, которую мы вставляем в слот для карты телефона, рассматривается как внешнее хранилище.

Съемное хранилище означает только хранилище карты microSD, а не внутреннюю память.

Для хранения файлов приложенияна SD-карте вы можете использовать метод File[] getExternalFilesDirs (String type) в классе Context.Как правило, вторым возвращаемым путем будет путь хранения для карты microSD (если есть).

Примечание: Я отредактировал - сделал мой ответ более полезным после комментария @ Тунаки.

12 голосов
/ 13 июня 2013

Из документов для разработчиков

На всех устройствах Android есть две области хранения файлов: «внутренняя» и «внешняя». Эти названия появились в первые дни Android, когда большинство устройств предлагали встроенную энергонезависимую память (внутреннее хранилище), а также съемный носитель, такой как карта micro SD (внешнее хранилище). Некоторые устройства разделяют постоянное пространство хранения на «внутренние» и «внешние» разделы, поэтому даже без съемного носителя всегда есть два пространства хранения, и поведение API одинаково независимо от того, является ли внешнее хранилище съемным.

5 голосов
/ 16 апреля 2012

Я думаю, что в операционной системе внешнее хранилище определяется как что-либо, не имеющее отношения к фактической файловой структуре ОС.Если вы помните, когда вы пишете во «внутреннее хранилище», Android создаст папку для вашего приложения.Таким образом, в основном, если это какая-то скрытая папка, это будет означать, что внешнее хранилище может рассматриваться как что-либо, что не будет автоматически скрыто или управляться напрямую ОС.Таким образом, это будет означать, что производитель телефонов определит внутреннюю память, так как он может иметь 1 основной блок внутренней флэш-памяти с двумя разделами.Один раздел предназначен для хранения операционной системы, а другой - для того, чтобы вы могли хранить все на телефоне.

По сути, я говорю следующее: это больше связано с аппаратным обеспечением, а также с понятием «внешнее хранилище».может распространяться даже на дополнительное внутреннее хранилище (флэш-память), добавленное производителем. Можно даже рассматривать параметры хранилища, определенные пользователем, как внешнее хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...