android不同系统版本sd的挂载方式


2.x系统

sd卡实际挂载位置

    /mnt/sdcard 

并建立了一个/sdcard的软链接指向/mnt/sdcard

    /sdcard/  --> /mnt/sdcard

Android 2.2之后的版本允许将应用程序安装于SD卡

当SD卡挂载于手机时,/mnt/sdcard/.android_secure 目录会被映射到/mnt/asec 目录和 /mnt/secure 目录。其中/mnt/asec 目录中主要是程序的安装目录,包括其执行文件和lib文件等;而/mnt/secure 目录中就存放程序加密后的档案。也就是说,在/mnt路径下看到的/mnt/asec目录和/mnt/secure目录并不是真正存在在手机内存里的,它们只是/mnt/sdcard/.android_secure目录的一个影像而已。也就是说/mnt/sdcard/.android_secure =/mnt/secure +/mnt/asec

4.1 系统

  • 有外置sd卡时,实际挂载位置:

      /storage/sdcard0  sdcard_r 组
    

    为了兼容2.x系统app,使旧的app能正确认出sd卡,将2.x时代的sd卡路径映射到/storage/sdcard0

      /mnt/sdcard --> /storage/sdcard0  system组
    
      /sdcard/ --> /storage/sdcard0  root组
    
  • 无外置sd卡时,将内部存储空间划分一部分,虚拟为sd卡挂载在:

      /storage/sdcard0  sdcard_rw组
    
      // 兼容2.x系统app
    
      /mnt/sdcard -->  /storage/sdcard0 root组
    
      /sdcard/ --> /storage/sdcard0  root组
    

4.4.2 系统

sd卡实际挂载位置

    /mnt/shell/emulate/0

兼容2.x系统app,google居然将以前的sd卡挂载路径称为legacy,可见对历史包袱也是很头疼

    /storage/emulated/legacy  --> /mnt/shell/emulate/0

    /mnt/sdcard --> /storage/emulated/legacy

    /sdcard --> /storage/emulated/legacy

    /storage/sdcard0 --> /storage/emulated/legacy

参考

http://stackoverflow.com/questions/23625104/storage-emulated-legacy-vs-storage-emulated-0-vs-data-data-myapp
http://www.miui.com/thread-863099-1-1.html


文章作者: Caden
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Caden !
 上一篇
图解javascript中的变量对象、闭包、作用域链机理 图解javascript中的变量对象、闭包、作用域链机理
什么是闭包javascript中的闭包是一个强大而灵活的武器,搞清闭包,作用域链的作用机理,能让我更好的将闭包运用在我们的项目中。 mozilla开发者中心的定义: Closures are functions that refer to
2014-11-02
下一篇 
对javascript中的Variable Object的理解 对javascript中的Variable Object的理解
Variable Object在ECMAScipt中,通过变量对象Variable Object (VO)机制来存贮、访问变量variables。VO中包含了: 1. variables (通过var 声明的变量)2. function
2014-11-01
  目录