1.内部存储和外部存储:
——内部存储主要是存放系统文件,外部存储存放应用文件;
——4.4以前内部存储就是手机自带的存储空间,外部存储就是用户插的sd卡。4.4以后手机自带的存储空间在概念上分为内部存储和外部,用户插的sd卡也是外部存储,代码默认返回的是手机存储中的外部存储,有一个getFiles的方法可以返回所有外部存储路径;;
——内部存储用户不可访问;
——代码上凡是带了External字样的,都是获取外部空间,其他的都是获取内部空间;
2.应用空间和公共空间:
——应用空间的文件,用户可以读写,默认其他应用不可读写,也可以设置读写权限让其他应用可读写;
——应用空间的媒体文件,系统的媒体扫描扫不出来;
——清除缓存是清除内存中的数据,清除应用数据会把该应用的应用空间的所有数据清除;
3.代码获取内部/外部空间
// 内部存储根目录(公共空间),一般为:/data
Environment.getDataDirectory()
// 外部存储根目录(公共空间),一般为:/storage/emulated/0
Environment.getExternalStorageDirectory()
// 内部存储应用目录(缓存),一般为:/data/user/0/包名/
context.getCacheDir()
// 外部存储应用目录(缓存),一般为:/storage/emulated/0/Android/data/包名/
context.getExternalCacheDir()
// 内部空间应用目录(文件),一般为:/data/user/0/包名/
context.getFilesDir()
// 外部空间应用目录(文件),一般为:/storage/emulated/0/Android/data/包名/
context.getExternalFilesDir("")