某些设备(例如我的Nexus 4)没有用于SD卡的外部插槽。而是有一个称为根文件夹的/sdcard/
处理方式相同。但是我还找到了所有指向相同文件的其他路径-必须进行某种重定向(我认为在Linux中这称为符号链接)。
所有这些路径都包含相同的文件:
/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/
“实际”路径是哪一条?那其他路径呢?它们有什么用,为什么存在?
某些设备(例如我的Nexus 4)没有用于SD卡的外部插槽。而是有一个称为根文件夹的/sdcard/
处理方式相同。但是我还找到了所有指向相同文件的其他路径-必须进行某种重定向(我认为在Linux中这称为符号链接)。
所有这些路径都包含相同的文件:
/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/
“实际”路径是哪一条?那其他路径呢?它们有什么用,为什么存在?
Answers:
推荐的演讲:为什么/ sdcard /在4.2中变成/ sdcard / 0 /?。
简而言之:它与Jelly Bean引入的多用户功能有关:
/storage/emulated/0/
:据我所知,这是指“模拟的MMC”(“所有者”)。通常这是内部的。“ 0”在这里代表用户,“ 0”是第一个用户,即设备所有者。如果您创建其他用户,则每个用户的此数字都会增加。/storage/emulated/legacy/
和以前一样,但指向当前正在工作的用户(对于所有者,这将是的符号链接/storage/emulated/0/
)。因此,此路径应将每个用户带到他的“部分”。/sdcard/
:根据Shywim的评论,这是与...的符号链接。
/mnt/sdcard
(Android <4.0)/storage/sdcard0
(Android 4.0以上版本)/storage/sdcard0/
:由于此处没有legacy
吊坠(请参见下面的注释),因此在这种情况下,“ 0”表示设备(卡)本身。最终,一个人可以通过OTG将读卡器与另一个SDCard连接,然后变成/storage/sdcard1
(没有证据,只是一个猜测-但我会说一个不错的选择)尽管可能会得出一个结论,但也应该有一个结论/storage/sdcard/legacy
(请参阅注释),这与我对此处数字与用户无关,而与可能的多张卡片无关的假设完全有意义。 “ 0”将始终是设备卡插槽中的那个,因此此处无需“旧版符号链接”。
/sdcard0/
与/emulated/0
),此处的“ 0”可能适用于通过读卡器和USB主机模式连接多个SD卡的情况。只是一个猜测,不是一个硬事实-但我会说一个好话。
/sdcard/
仅仅是一个符号链接到/storage/sdcard0/
。在4.0.0之前的版本中,它是/mnt/sdcard/
。
/mnt/sdcard/
是的符号链接/storage/sdcard0/
吗?由于两者都是在通航我的Nexus 4
是的,有点令人困惑,但这是内存布局的备用路径
/ mnt / sdcard0 /(内部虚拟SD卡)
如果连接了更多设备,请打扰您的正确,但是命名因设备而异。
例如 / mnt / sdcard1 /(SD插槽中的物理SD卡)
但是其他设备(例如USB闪存驱动器)与适配器连接
/ mnt / media_rw / usbdisk(Android kitkat 4.4及更高版本?)或/ mnt / usbdisk(软糖4.1-4.2)
/mnt/*
在所有这些情况下,它只是一个符号链接–“真实的坐骑”位于下面/storage
:)
/storage/sdcard/legacy
路径。