安卓存储位置

7

能有人详细解释一下安卓中的各种存储位置吗?

  1. /sdcard/(以及/root/目录和其他系统级目录)
  2. /storage/emulated/0/
  3. /storage/emulated/legacy/
  4. /storage/sdcard0/

这些让我很困惑,是否有方法在需要时编程访问它们?


这个问题似乎与编程无关,因此不适合在此提问。StackExchange网络有http://superuser.com用于一般性问题,并且还有一个专门的网站供Android爱好者使用:http://android.stackexchange.com/。请尝试其中一个(不要都尝试!)。 - Eugene Mayevski 'Callback
1个回答

7
我不能代表所有手机的存储路径。但是我可以清楚地解释一下我的手机Coolpad Note 3 - 运行在Android 5.1上。因为,其他手机的存储位置或路径可能会因供应商/制造商和不同版本的Android操作系统而有所不同。
通常,/someDirectory或/root/someDirectory或>root>someDirectory是相同的。哪一个被选择显示;取决于您的文件管理器。
在我的手机上:
/root/sdcard是手机内部存储(在我的情况下为16 GB)的存储路径。
/storage/emulated/0/和/storage/sdcard0/都是指向/root/sdcard的符号链接。这意味着,这两个路径也是我手机内部存储的存储路径。
/storage/sdcard1/是我的micro SD卡的存储路径。
在任何手机上:
在Android 4.2之前,只有一个用户可以使用您的手机。没有两个或更多的用户创建单独的配置文件并登录到同一台手机的概念。
因此,就没有像/storage/emulated/someDirectory这样的路径。
在Android 4.2中引入multiuser API之后,出现了模拟目录。
源自:source 1source 2 从那时起,
/storage/emulated/legacy/指向当前工作用户的外部存储(Android术语)。它将是一个符号链接。
/storage/emulated/anyNumber/指向特定用户的外部存储(Android术语)。
在我的手机上:我有两个用户。
用户1(Ramesh)的内部存储位置为:/storage/emulated/0/ 用户2(Kishore)的内部存储位置为:/storage/emulated/10/ 如果用户1(Ramesh)登录并使用手机,则 /storage/emulated/legacy/ 将指向 /storage/emulated/0/。在这种情况下,/storage/emulated/legacy/ 将是指向 /storage/emulated/0/ 的符号链接。
如果用户2(Kishore)登录并使用手机,则 /storage/emulated/legacy/ 将指向 /storage/emulated/10/。在这种情况下,/storage/emulated/legacy/ 将是指向 /storage/emulated/10/ 的符号链接。
如果您想了解更多关于存储路径的信息,请参阅此安卓堆栈交换网站上的回答
我特别提到了上面的 "外部存储器"(安卓术语),因为 Google/官方 Android 文档中的内部和外部存储器术语与普通 Android 操作系统用户的术语相当不同。

讲解得非常清晰明了。谢谢。 :-) - Aritra Roy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接