关于安卓手机存储器
RAM:运行时内存。相当于PC机的内存存储,用于存储应用运行时的各种对象和变量常量等,主要作用在于提高运行速度。是唯一一种断电后数据会清除的存储器。
ROM:只读型内存。此部分区域的文件只能读取,不可擦写,比如PC机C盘下面有的系统文件就是不可删除和修改的。用来存储操作系统引导类文件。这部分文件损坏,会导致手机系统无法启动和运行。此区域文件不可见。
安装软件时,程序的系统数据还是写在了ROM中,像默认的数据库存储位置,等一些文件在 /data/data/youPackageName/文件下面,随着应用卸载,自动删除,Environment.getDataDirectory().getPath()方法获取。
ROM存储空间结构:Android手机通常都会将内部存储空间分为data、system、cache、sdcard0四个逻辑盘区间。
1.data是用来装应用(例如APP、游戏等)。
2.system是用来装系统文件的。
3.cache则是用来装系统、应用的缓存。
4.sdcard0则是装普通文件,例如MP3、照片等,跟外置SD一样,手机的ROM和SD卡一样都是闪存,两者的硬件材质都差不多,Environment.getExternalStorageDirectory().getPath()方法获取。
SD卡:外置型拓展存储卡。一般指手机之外的存储介质,比如有的机型能支持两张此类存储卡(华为有的机型),有的不支持(小米有的机型)。路径一般为:/mnt/sdcard2等节点。
获取存储路径:因为不同手机略有不同,所以存储和读取时,一定要使用同一种文件路径获取方式
Android手机获取自带存储路径和sd卡存储路径的方式是:调用Environment.getExternalStorageDirectory(),返回的存储目录并不是系统内置的SD卡目录。
1.一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 Environment.getExternalStorageDirectory()这个结点。
此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。
2.而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。
此时,调用Environment.getExternalStorageDirectory(),则返回内置的SD的路径