1.RAM
首先是RAM,广义上的RAM指的是“随机存取存储器”,狭义上的RAM就是所谓的内存。它有断电后数据会消失的特性。
RAM越大,机子的速度就会越快。当然太大了会用不完,就没有效果了。
——就相当于你电脑的内存条
2.ROM:相当于你的内置存储卡
ROM的本义其实是只读存储器,是一写就再也改不了了的。光盘也算ROM的一种。
但是到了后来,由于系统升级的需要,ROM渐渐不再"Read Only",而是进化成可以用特殊手段改写的,比如“EPROM”和“EEPROM”。但是这种ROM一般情况也是改不了的,需要用特殊的手段。
再到后来(安卓时代),手机厂家直接用快闪存储器代替ROM,把一块存储器这里分一点,哪里分一点,最后剩下的就是“USB存储器”。一个内置8GB的手机,就这样被系统瓜分得只剩5、6GB。
——简单的说,就是相当于你windows电脑的C盘
3.存储卡: 分为内置存储卡(相当于手机内置存储),外置存储卡(相当于为了扩充买的SD卡)
存储卡(Storage Card),顾名思义就是用来存放数据的卡,手机上最常见的就是SD卡和Micro SD卡,另外还有CF卡、MMC卡、记忆棒的各种各样的存储卡。
在安卓手机上,SD卡仅仅能够用来存放文件,比如文档、表格、歌曲、照片、视频、安装包等等(这个大概上3级的吧友都知道了吧)
通过特殊手段,SD卡还可以用作虚拟内存,但会烧卡所以不推荐。
——这个我们可以理解成电脑的D盘、E盘,或者外接移动硬盘也行
注意:存储卡(Storage Card),就相当于SD卡,外置存储。Android程序 读写SD卡上的文件分为3步
(1)调用Environment的getExternalSroageState()方法判断手机是否插入了SD卡,并且应用程序具有读写的权限。例如使用如下代码:
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
(2)调用Environment的getExternalStorageDirectory()方法来获取外部存储器,也就是SD卡的目录
(3)使用FileInputStream,FileoutputStream,FileReader,或FileWriter读写SD卡里面的文件。
(4)内置存储卡与外置存储卡 文件挂在实质:/storage/sdcard 才是实质挂载的位置。而 /sdcard 和 /mnt/sdcard 都是link 到 /storage/sdcard
机制:---- android 4.1 ----
在4.1里,同样也会使用fuse技术,/dev/fuse 会被同时挂载到/storage/sdcard0 目录,这个sdcard0表示第一个sd卡(如果有外置sd卡,那会多一个 /storage/sdcard1,比如我的xoom), /sdcard 软连接会指向 /storage/sdcard0 ,此时/mnt/sdcard 也是个软连接,会指向/storage/sdcard0。
如果你通过otg线接U盘,会被挂载到 /storage/usb0目录,stickmount这个软件为了让图库、快图、mx player等软件,能看到u盘里的数据,又同时挂载到 /storage/sdcard0/usStorage/sda1.
eg:华为G6手机
也许你会问,为什么不是usb0,而是sda1,这是linux的对硬盘的命名方式,如果你的u盘有多个分区,就分别是sda1,sda2这样一直排下去了。
——————————————————————————————————————————————
Android读写添加权限:
SD卡中创建与删除文件权限
<uses-permission android:name:"android.perimission.MOUNT_UNMOUNT_FILESYSTEMS"/>
向SD卡写入数据权限(文件读写经常用)
<uses-permission android:name="android.permission.WEITE_EXTERNAL_STORAGE"/>
例子:
File sdcardDir = Environment.getExternalStorageDirectory();
private String SD_PATH = sdcardDir.getPath() + "/cdv/";
存储的地方在内置存储卡里。三星i9502有外置卡也是创建在内置卡里。
android 未提供获取外置SD储存卡的相应函数或方法,但我们可以自己写一个。当前只能用Environment.getExternalStorageDirectory()获取内置的SD卡路径,因为不同机型的系统SD卡的路径不相同,但是我们仍然可以有方法去获得外置SD卡的路径, 内置和外置SD卡的信息存在system/etc/vold.fstab 里面,我们可以从这里获得外置SD卡的路径, 这里面的内容就算在设备非ROOT的情况下也是可读的,所以这个方法值得一试: 好的链接:http://blog.csdn.net/bbmiku/article/details/7937745
三星I9502文件挂载信息 有图有真相