Android 存储

一直以来对android的内存、RAM、ROM、内置SD卡和外置SD卡这些概念不清楚。

到现在我也不清楚,不过看了一些文章,想把自己目前的理解记录下来,即便是错的,以后可以修正。

(1)mnt下面有个sdcard的文件夹,在Eclipse中的DDMS工具中,这个文件夹打不开(不管设备有没有root都打不开)。但是命令行可以打开,如下图:

以三星手机S4 I9500为例说明(不同手机目录组织还是不一样的,需要具体分析)

在DDMS中看到的sdcard是这样的:


l说明这是一个linkfile文件,指向/storage/emulated/legacy文件夹,所以你在DDMS中打不开的。

我们看看/storage/emulated/legacy目录

Android 存储_第1张图片

我们看到/storage/emulated/legacy 还是一个linkfile,它又指向/mnt/shell/emulated/0

我们再看看/mnt/shell/emulated/0


根目录下的sdcard 也是指向/storage/emulated/legacy


通过adb 访问sdcard,我们看看结果


和DDMS中查看的结果是一样一样的。

我们用ES文件浏览器也可以打开这个文件夹。

需要特殊说明的是,这个sdcard目录挂载的设备中的内置SD卡,不是我们手动插到设备中的外置SD卡。

(2)我们知道系统自带应用在放在system/app下面的。

http://www.cnblogs.com/codeworker/archive/2011/12/30/2307834.html

上面链接的文章中有如下一句话:

/system 存放的是rom的信息;/system/app 存放rom本身附带的软件即系统软件;/system/data 存放/system/app 中核心系统软件的数据文件信息。

我理解,我们平时所说的刷rom,说的就是刷/system文件夹。我们常说第三方rom(比如MIUI),其实就是对/system 下面的所有东西进行定制。

那么,问题来了,/system 是不是我们所说的ROM(read only memory)呢?

(3)用户安装的应用是放在data/app下面的。

/data 存放的是用户的软件信息(非自带rom安装的软件);/data/app 存放用户安装的软件;/data/data 存放所有软件(包括/system/app 和 /data/app 和 /mnt/asec中装的软件)的一些lib和xml文件等数据信息;/data/dalvik-cache 存放程序的缓存文件,这里的文件都是可以删除的。

那么,大问题来了,ROM、/system、/data、内置SD卡是什么关系呢?答:我目前不清楚。

上面文章中有如下一段描述:

在Android 2.2之后的版本允许将应用程序安装于SD卡,每一个安装在SD卡的应用程序,都可以在SD卡中的/sdcard/.android_secure 目录里找到名称中有出现它的程序名,和副文件名为asec的经过特殊加密处理后的档案。当SD卡挂载于手机时,/mnt/sdcard/.android_secure 目录会被映射到/mnt/asec 目录和 /mnt/secure 目录。其中/mnt/asec 目录中主要是程序的安装目录,包括其执行文件和lib文件等;而/mnt/secure 目录中就存放程序加密后的档案。也就是说,在/mnt路径下看到的/mnt/asec目录和/mnt/secure目录并不是真正存在在手机内存或者sd卡的分区挂载目录,它们只是/mnt/sdcard/.android_secure目录的一个影像而已。
因此,用户程序安装到到sd卡上后,其内容可能分散到:/mnt/asec , /mnt/secure , /data/data 。


经过对我三星手机的分析,安装到SD卡,这个SD卡确实指的就是外接SD卡。上面描述中说到的/sdcard/.android_secure目录就在外接SD卡上,只是你通过DDMS、adb,还有手机连接电脑查看外接SD卡的方式都看不到这个目录,你必须用读卡器读SD卡,你就能看到了。

Android 存储_第2张图片


你可能感兴趣的:(Android 存储)