一、Android内存:内部内存(internal)、外部内存(external)。
二、详细分析
1.RAM、ROM、内部存储、外部存储、扩展内存(TF卡)
2.android4.4之前,内huoq储存就是内部内存,外置SD卡就是外置储存。
getDateDirectory()获取内置储存根路径;
getExternalStorageDirectory()获取外部根目录;
3.Android4.4之后,外部储存包括两部分,机身内部的外部储存,SD卡储存。
getExternalStroageDirectory()获取机身内部储存;
getExternalFileDir()遍历获取;
三、内部存储
1.空间很小,常用保存一些重要的数据库文件、用户的配置文件。
2.内部储存路径:/data/data/0/packagename/files
3.files目录:getFileDir(); /data/data/packageName/files
4.内部缓存目录:getCacheDir(); /data/data/packageName/cache/
5.配置文件:getDir("fileName.txt",Context.MODE_PRIVATE); /data/data/packageName/app_fileName.txt;(app_ 是系统加上去的)
四、遍历手机外部
File[] files;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
files = context.getExternalFilesDirs(Environment.MEDIA_MOUNTED);
files ) {
System.out.println(file);
}
} 2.判断状态
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
//SD已挂载
}
五、公有目录、私有目录
当我们删除应用后,还应该保留在手机上的数据:照片等,对于这类文件,系统给我们提供了特定的目录。这些目录都是以DIRECTORY_MUSIC、DIRECTORY_PICTURES..
Environment.getExternalStragePublicDirectory(Environment.DIRECTORY_PICTURES);目录:/storage/emulated/0/PIctures
Environment.getExternalStragePublicDirectory(Environment.DIRECTORY_MUSIC);目录:/storage/emulated/0/MUSIC
六、外部根目录
Environment.getExternalStroageDirectory(); (/storage/emulated/0)
外部存储私有目录,Android4.4以后不再需要权限
files目录:
getExternalFilesDir(String type); (/storage/emulated/0/Android/data/<包名>/files/)
缓存目录
getExternalCacheDir(); (/storage/emulated/0/Android/data/<包名>/cache)