Android中数据存储有5中方式,分别是以下五种:
- SharePreference
- 数据库
- Content Provider(用于数据共享)
- 网络存储(需要网络进行请求数据)
- 文件(File)
- 应用相关内部存储(缓存和文件)
- 应用相关外部存储(缓存和文件)
- 应用无关存储(缓存和文件)
具体位置
SharePreference
context.getSharedPreferences(name,mode)
获取的路径是 /data/data/应用包名/shared_prefs
数据库
File dbFile = content.getDatabasePath("");
/data/data/应用包名/databases
File

FileProvider适配说明
| Value |
Path |
说明 |
权限 |
| root-path |
/ |
File DEVICE_ROOT = new File("/") 根目录 |
不需要此操作 |
| files-path |
/data/data/<包名>/files |
content.getFileDir() 获取到的目录 |
无需权限,内部不足时会删除此文件夹 |
| cache-path |
/data/data/<包名>/cache |
content.getCacheDir() |
无需权限,内部不足时会删除此文件夹 |
| code_cache |
/data/data/<包名>/code_cache |
context.getCodeCacheDir() |
无需权限,应用升级时会删除该目录下的内容 |
| external-path |
/storage/emulated/0 |
Environment.getExternalStorageDirectory() |
需要权限,应用无关存储 |
| external-files-path |
/storage/emulated/0/Android/data/<包名>/files |
ContextCompat.getExternalFilesDirs() |
需要权限,应用外部存储文件 |
| external-cache-path |
/storage/emulated/0/Android/data/<包名>/cache |
ContextCompat.getExternalCacheDirs() |
需要权限,应用外部存储文件 |
应用外部存储文件
- 需要配置相应的权限
- 随着应用的卸载而被删除
- 可以被其他应用访问
File externalFilesDir = context.getExternalFilesDir(Type);
路径: /storage/emulated/0/Android/data/应用包名/files/Type
Type取值有:
Environment.DIRECTORY_MUSIC
Environment.DIRECTORY_PODCASTS
Environment.DIRECTORY_RINGTONES
Environment.DIRECTORY_ALARMS
Environment.DIRECTORY_NOTIFICATIONS
Environment.DIRECTORY_PICTURES
Environment.DIRECTORY_MOVIES
无关乎应用的存储
- 需要配置相应的权限
- 应用都可以访问
- 不会随着应用卸载而被删除
File rootDirectory = Environment.getRootDirectory();
路径: /system
File dataDirectory = Environment.getDataDirectory();
路径: /data
File cacheDirectory = Environment.getDownloadCacheDirectory();
路径: /data/cache
File storageDirectory = Environment.getExternalStorageDirectory();
路径: /storage/emulated/0
File storagePublicDirectory = Environment.getExternalStoragePublicDirectory(Type);
路径: /storage/emulated/0/Type
Type取值有:
Environment.DIRECTORY_MUSIC
Environment.DIRECTORY_PODCASTS
Environment.DIRECTORY_RINGTONES
Environment.DIRECTORY_ALARMS
Environment.DIRECTORY_NOTIFICATIONS
Environment.DIRECTORY_PICTURES
Environment.DIRECTORY_MOVIES