谁能详细解释一下 Android 中的各种存储位置,
- /sdcard/(连同/root/目录和其他系统级目录)
- /存储/模拟/0/
- /storage/emulated/legacy/
- /存储/sdcard0/
真的对这些感到困惑吗?是否有任何方法可以在需要时以编程方式访问它们?
最佳答案
我不能代表所有手机上的存储路径。但是我可以就我的手机向你解释清楚; Coolpad Note 3 - 在 Android 5.1 上运行。因为,存储位置或路径在其他手机上可能会有所不同,具体取决于您的供应商/制造商和不同版本的 Android 操作系统。
通常,/someDirectory
或 /root/someDirectory
或 >root>someDirectory
是相同的。挑选其中的哪一个来展示;取决于您的文件管理器。
在我的手机上:
/root/sdcard
是手机内存的存储路径(在我的例子中是 16 GB)。
/storage/emulated/0/
和 /storage/sdcard0/
都是指向 /root/sdcard
的符号链接(symbolic link)。也就是说,这两条路径也是我手机内存的存储路径。
/storage/sdcard1/
是我的micro SD 卡 的存储路径。
在任何手机上:
在 Android 4.2 之前,只有一个用户可以使用您的手机。 没有两个或更多用户创建单独的配置文件并登录到同一部手机的概念。
因此,没有像/storage/emulated/someDirectory
这样的路径>
模拟 目录是在 Android 4.2 中引入多用户 API 之后出现的。
从那时起,
/storage/emulated/legacy/
指向当前工作用户的外部存储(Android 术语)。这将是一个符号链接(symbolic link)。
/storage/emulated/anyNumber/
指向特定用户的外部存储(Android 术语)。
在我的手机上:我有两个用户。
user1 (Ramesh) 的内部内存位置是:/storage/emulated/0/
user2 (Kishore) 的内部内存位置是:/storage/emulated/10/
因此,如果用户 1(Ramesh) 登录并使用手机,/storage/emulated/legacy/
将指向 /storage/emulated/0/
。在这种情况下,/storage/emulated/legacy/
将是 /storage/emulated/0/
如果 user2(Kishore) 登录并使用手机,/storage/emulated/legacy/
将指向 /storage/emulated/10/
。在这种情况下,/storage/emulated/legacy/
将是 /storage/emulated/10/
如果您想了解更多关于存储路径的信息,请查看此answer on android.stackexchange.com
我在上面特别提到了外部存储(Android 术语)。因为,根据 Google/官方 Android 文档,内部和外部存储术语与普通 Android 操作系统用户完全不同。
关于Android 存储位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25085955/