1. 内部存储和外部存储
版本变化
Android4.4以前,内置存储就是内部存储,外置SD卡就是外置存储。
Android4.4以后手机将机身存储ROM在概念上分为了内部存储(internal)和外部存储(external),内部存储不是内存,SharedPreference和SQLite都是存储在内部存储空间上的。文件目录
/data目录下的文件物理上存放在我们通常所说的内部存储里面
/storage目录下的文件物理上存放在我们通常所说的外部存储里面
/system用于存放系统文件,/cache用于存放一些缓存文件,物理上它们也是存放在内部存储里面的
Android设备的图片缓存分两种,一种是内存缓存,图片缓存在设备的内存中,一种是外部缓存,图片缓存在磁盘上,磁盘可以是内部的存储空间也可以是外部的sd卡。
参考访问API
3.1 访问内部存储的API
Envionment.getDataDirectory()= /data //内部存储的根路径
getFilesDir().getAbsolutePath();
getCacheDir().getAbsolutePath()= /data/user/0/packname/cache
//获取应用在内部存储中的cache路径
getDir("myFile", MODE_PRIVETE).getAbsolutePath();
3.2 访问外部存储的API
Environment.getExternalStorageDirectory().getAbsolutePath() = /storage/emulated/0 //外部存储的根路径
Environment.getExternalStoragePublicDirectory(“”).getAbsolutePath()
getExternalFilesDir(“”).getAbsolutePath() = /storage/emulated/0/Android/data/packname/files
获取应用在外部存储中的files路径
getExternalCacheDir().getAbsolutePath() = /storage/emulated/0/Android/data/packname/cache
获取应用在外部存储中的cache路径