Описание тега android-storage
Android использует файловую систему, аналогичную дисковым файловым системам на других платформах. Существует особый способ выполнения чтения и записи файлов в файловой системе Android с помощью файловых API.
Все устройства Android имеют две области хранения файлов: "внутреннюю" и "внешнюю". Эти названия пришли из первых дней Android, когда большинство устройств предлагали встроенную энергонезависимую память (внутреннее хранилище), а также съемный носитель, такой как карта micro SD (внешнее хранилище). Многие устройства теперь делят постоянное хранилище на отдельные "внутренние" и "внешние" разделы. Таким образом, даже без съемного носителя данных эти два пространства хранения существуют всегда, и поведение API одинаково независимо от того, является ли внешнее хранилище съемным.
Поскольку внешнее хранилище может быть съемным, между этими двумя вариантами есть следующие различия.
Внутренняя память:
- Это всегда доступно.
- Сохраненные здесь файлы доступны только вашему приложению.
- Когда пользователь удаляет ваше приложение, система удаляет все файлы вашего приложения из внутреннего хранилища.
Внутреннее хранилище лучше всего подходит, когда вы хотите быть уверены, что ни пользователь, ни другие приложения не смогут получить доступ к вашим файлам.
Внешнее хранилище:
- Это не всегда доступно, потому что пользователь может подключить внешнее хранилище как USB-накопитель и в некоторых случаях удалить его с устройства.
- Он доступен для чтения всем, поэтому файлы, сохраненные здесь, могут быть прочитаны вне вашего контроля.
- Когда пользователь удаляет ваше приложение, система удаляет файлы вашего приложения отсюда, только если вы сохраняете их в каталоге из
getExternalFilesDir()
.
Внешнее хранилище - лучшее место для файлов, для которых не требуются ограничения доступа, а также для файлов, которыми вы хотите поделиться с другими приложениями или разрешить пользователю доступ с компьютера.
И все упомянутые два варианта хранения данных / файлов в Android включают различные другие методы, связанные с разрешениями в системе Android, которые разработчики должны написать код, чтобы обрабатывать его плавно, не прерывая действия конечного пользователя.
Помимо двух вышеупомянутых областей, он включает несколько других способов хранения данных в системах Android, таких как общие настройки и базы данных, но это не относится к нашему тегу. Android-storage
.
Некоторые части этого описания были выдержками из следующей статьи из документов разработчика Android: https://developer.android.com/training/data-storage/files