2014-09-03 3 views
0

Я работаю над проектом, который должен хранить некоторый .txt для android, и получить его с компьютера для другого использования. Из того, что я прочитал из документации, я знаю, что есть два типа хранилища: 1 Внутренний, который находится где-то глубоко в телефоне, который является приватным для приложения. 2 Внешний, который включает в себя SD-карту и внутреннюю память телефона. Я хочу сохранить его внешнего-> Внутренний, и я использую эту строку кода, чтобы сделать это:Как работает файловое хранилище Android?

public String WalkDir = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/Walks/";

Когда я вошел WalkDir, LogCat говорит «/ хранение/эмулировать/0», я остановился приложение, проверено с помощью оболочки adb, и нет папки «0», но «наследие». Я отключил телефон и подключил его обратно, папка «Прогулки» теперь находится в корневом каталоге, и мне не нужна оболочка adb для доступа к ней.

Итак, мой вопрос: можете ли вы объяснить, как работает эта система? Почему «0» исчезло? Что такое «наследие»? Почему файл во внутреннем хранилище, когда я отсоединяю &, подключите его?

спасибо!

+0

№ Есть внутренняя, внешняя и съемная память. Последний является микро SD-картой. Первые два встроены в устройство. Не используйте adb для исследования. Используйте приложение проводника файлов на устройстве. – greenapps

ответ

0

Те, что в Linux называется символические ссылки (например, ярлыки в Windows), что различные системные приложения в Android используют ..

/хранение/SDCard являются SYM связаны папками, это означает, что, когда вы открываете один из тех, , он перенаправляет на исходный (/ data/media/0), так как для 0 это просто многопользовательская функция, реализованная в android 4.2, но включена только на планшетных андроидах. Почему этот Sym-Link ?: простой, так что он дозирует приложения для приложений (а не только тип проводника файлов, но все приложения). По-прежнему не получается, почему он сломается?. Простой. У Android-афера есть много способов писать/читать файлы из папок, вы можете делать вручную, u можете получить путь к данным, u можете получить путь к SDK и т. д. и т. д. поэтому, чтобы не нарушить то, что они просто используют эти сим-ссылки, поэтому в одном приложении данные о содержимом хранилища указаны на/sdcard, а на других - это/storage и т. д. и т. д. один пример приложения, которое сломалось из-за этих изменений в android, является титановой резервной копией, и вам нужно изменить внутреннее хранилище на нем, чтобы оно работало.

2 точки крепления, указывающие на одно и то же устройство хранения и разделение. Если вы создадите что-то в одной папке, оно появится в другом. То же самое относится к удалению материала. Они не забирают больше места для хранения, поскольку он доступен только один раз, но показан дважды.

Вам также ни о чем не беспокоиться, потому что файловые браузеры обычно устанавливают свой каталог по умолчанию в одно из этих мест.

Насколько я знаю, Google изменил точки монтирования в Android 4.2 на/storage/emulated/0/из-за их перехода на MTP и EXT4 (?) Для SD-карты. Остальные точки монтирования все еще существуют для совместимости.

Смежные вопросы