android 的外部存储的挂载的理解

我们大多数情况下操纵的是外部存储,而外部存储都是通过挂载到根目录来让系统对外部存储进行链接的,下面一小队就是对挂在的理解

首先,不同机型的挂载路径可能会有些许的差别,请记住,不同的版本,不同的厂商,不同的机型可能会有些许差别,要自己去兼容

下面是常见的几种,但殊途同归,但这样会给我们在获取内外置sd卡上造成很大的麻烦,很无语,至于怎样去获取内外置存储卡请移步。。

  • /mnt/sdcard0, /mnt/sdcard1, /mnt/sdcard2
  • /mnt/sdcard-ext, /mnt/ext_sdcard, /mnt/sdcard/ext_sd
  • /mnt/sdcard/extra_sd, /mnt/extrasd_bind, /mnt/sdcard/external_SD
  • /storage/sdcard0/storage/sdcard1,/storage/extSdCar

/sdcard : /mnt/sdcard的符号链,是一个软链接(就是快捷方式),链接到/mnt/sdcard下,也可以查看sdcard的内容。

/mnt/sdcard(<4.0):毫无疑问,sd卡的挂载点,将外部设备挂载在这个目录下。

/storage/sdcard(>4.1):那这个是什么鬼,另外里面还有一个emulated的文件夹。

android 升级到4.2以后,采用的是fuse技术,外部设备会被挂载到/storage/emulated/0这个目录下,而不是传统的/mnt/sdcard上,但为了兼容以前的版本,

同时挂载到 /storage/emulated/legacy,还建立三个软连接(快捷方式) /storage/sdcard0 ,/sdcard,/mnt/sdcard ,都指向 /storage/emulated/legacy这个挂载点。也就是

说文件夹0和legacy指向的地址是一致的。4.1为/storage/usStorage/0,

注意:Environment.getExternalStorageDirectory()方法有时是获取到的是内置内存卡,有时获取的是外置内存卡,具体请参看

下面插入的这幅图是eclipse File Explore 下挂载点的信息,看info(指向信息),(华为手机荣耀3c),不同的机型挂载点会有不同。

/mnt/shell/emulated据说是为了多用户设计的,但这几个那个是挂载点,那个是软连接?不知道,求指教,万分感谢。

android 的外部存储的挂载的理解_第1张图片


你可能感兴趣的:(Android,开发之路(初见Android))