Android 根目录和sdcard卡路径分析
来源:互联网 发布:mac怎么看u盘隐藏文件 编辑:程序博客网 时间:2024/06/01 10:34
http://blog.csdn.net/xx326664162/article/details/50599911
一、系统分区
- 1
- 2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
以上就是 Android 系统的分区结构,可见其挂载方式和 Linux 非常类似
/dev/block/mtdblock* 这几个核心分区(写入 ROM 的),他们都是使用 yaffs2 文件系统(基于 FLASH 存储),
- 其中是 /system 这个分区只有特殊的 ro 只读权限,由此可见 Android 在安全性设计方面所下的一些功夫。
/dev/block/vold 据说是设计来替代 udev 的功能,主要用于支持一些热插拔设备。
二、目录概览
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
以上是 Android 根目录下文件目录,根据之前的分区结构可以大致看出每个目录的所处位置和大致功能,
以下是几个重要目录/文件的说明:
1、mnt 挂载点目录
2、etc 系统主要配置文件
3、system Android 系统文件
4、sys Linux 内核文件
5、proc 运行时文件
6、init.rc 启动脚本
7、default.prop 系统属性配置文件
8、data 用户程序目录
9、dev 设备文件
下面来看下system目录和data目录:
2.1、system目录
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
以上是 system 目录下面的主要文件目录下面也简单介绍一下:
1、usr 用户文件夹,包含共享、键盘布局、时间区域文件等
2、app 常规下载的应用程序,这些 apk 包都是受保护的哦
3、lib 系统底层库,如平台运行时库等
4、etc 系统的配置文件,比如APN接入点设置等核心配置等
5、framework Android 系统平台核心 framework 的文件
6、build.prop Android 系统属性配置文件
7、xbin 常用开发工具,比如 tcpdump/sqlite3 等
8、bin 系统工具,比如 ps/cp/pm 等
2.2、data目录:
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- /data 目录下结构都和应用有关,平时安装的用户应用/游戏程序,对应APP的数据,都被安装在 /data/app 下就可以了。
2.3、查看系统变量:
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
从系统变量我们也可以看到一些系统使用中的重要目录。
三、挂载路径和软连接
以下两篇仅供参考:
android 4.2版本的sdcard文件目录分析这篇文章,很多观点错误,而且上下文出现矛盾。
Android得到的真机的SD卡路径是 /storage/emulated/0/
下面以sdcard的挂载和软连接为例,分析一下,虽说是在4.2版本的android,但是原理是一样的。
3.1、根目录
先来看一下根目录,可以结合上面的目录概览来看看每个文件夹都是什么(图片来自网络,所以序号不对应):
3.2、TF卡 路径分析
不是每个系统路径都和下面一模一样,原理都是一样的,可能文件夹的名称不一样
先看一下整体结构
/mnt/shell/emulated/0/
/\
|
|—/storage/emulated/0
|—/storage/emulated/legacy
/\
|—/storage/sdcard0/
|—/sdcard/
|—/mnt/sdcard/
/mnt/sdcard2/->/storage/sdcard1
3.2.1 /storage/路径分析
上图红色框中的路径/storage/emulated/0/是个软连接,访问/storage/emulated/0相当于访问/mnt/shell/emulated/0(内部存储)
- /storage/emulated/0/ —>/mnt/shell/emulated/0/
- /storage/emulated/legacy/—>/mnt/shell/emulated/0/
原文中说,“这里的0代表是第几个存储卡,手机没有外插的内存卡,就是0,有的话就会多出来一个/storage/emulated/1的文件夹。”但是经过我的测试,发现不论是否插内存卡,都只有一个路径/storage/emulated/0/(内部存储)
- /storage/sdcard0/是内部存储
- /storage/sdcard1/是外部存储,没有插sd卡时,这个目录也是存在,是个空目录
3.2.2、三个指向storage/emulated/legacy/的路径
storage/emulated/legacy (故名思议,传统的)为了兼容以前的系统
1、根目录下的/sdcard/ -> storage/emulated/legacy/,说明/sdcard/ 也是内部存储。**
2、/storage/sdcard0
3、/mnt/sdcard
3.2.3、我们去看看/mnt/shell/emulated/0/这个文件夹
3.2.4、外部存储卡挂载
android是基于linux的,linux里的要使用存储设备就要先把它挂载到到linux的目录树上(以/为根),android上一般是挂载到/storage/emulated/对应的目录或者/storage对应目录里的。
- 外部存储卡,被挂在到/storage/目录下。/storage/sdcard1/是外部存储,没有插sd卡时,这个目录也是存在,是个空目录
参考:http://www.cnblogs.com/bastard/archive/2012/11/28/2793008.html
- Android 根目录和sdcard卡路径分析
- Android 根目录和sdcard卡路径分析
- Android根目录下面的sdcard和mnt文件夹下面的sdcard
- android-sdcard路径
- Android sdCard路径问题
- Android SDCard路径问题
- 如何获取手机根目录和sdcard的根目录
- Android SDCard 和 TF Card路径进行获取
- Android 获取外置SDcard路径
- Android sdcard的路径问题
- /mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹路径
- android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- "><img onerror=alert(1) src=>
- 渲染管线工作原理
- 带你走进mybatis--快速入门
- Cookie
- NFS的配置
- Android 根目录和sdcard卡路径分析
- android 打包签名时出现Conversion to Dalvik format failed
- YII框架中使用layer弹出层,注册js文件
- vs+halcon 打开摄像头失败
- Xposed插件的使用(一)进行简单的Hook
- PHP循环遍历数据库中表的字段并显示到前端
- hibernate 与 mybatis
- jsp错误页面404、500等异常捕获
- 链表的增、删、查、找