Android存储目录

Android大分为内部存储和外部存储

内部存储-Internal storage

除黑科技外,只能被我们app访问。
不需要存储权限。
卸载app后,系统会自动清理app存储的文件。

getCacheDir

路径:/data/data/应用包名/cache
getCacheDir()其对应着应用程序内的内部缓存,用来存储临时数据。因此在系统空间较少时有可能会被自动清除。
官方建议是,超过1MB的文件,建议存储到getExternalCacheDir()目录下

getFileDir

路径:data/data/应用包名/files

常见的内部存储中有这些目录

  • /data/app/
  • /data/data/包名/shared_prefs
  • /data/data/包名/cache
  • /data/data/包名/databases
  • /data/data/包名/files

外部存储-External storage

公共目录,适合存储不重要的文件,卸载app后文件仍然保留,大家都可以访问,因此也能被其他app访问,也是跨进程通信的一种方案。
私有目录,类似于内部存储,卸载app会删除。

公共目录

Environment.getExternalStorageDirectory()
路径:/storage/emulated/0
官方更建议app私有数据存放于Context.getExternalFilesDir目录下,其他的可以被分享的文件,可以放在getExternalStoragePublicDirectory(String)目录下
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()):
/storage/emulated/0/DCIM

类型:

1. DIRECTORY_MUSIC
音乐/storage/emulated/0/Music
2. DIRECTORY_PODCASTS
播客/storage/emulated/0/Podcasts
3. DIRECTORY_RINGTONES
来电铃声
4. DIRECTORY_ALARMS
闹钟/storage/emulated/0/Alarms
5. DIRECTORY_NOTIFICATIONS
通知/storage/emulated/0/Notifications
6. DIRECTORY_PICTURES
图片/storage/emulated/0/Pictures
7. DIRECTORY_MOVIES
电影/storage/emulated/0/Movies
8. DIRECTORY_DOWNLOADS
下载文件存储路径/storage/emulated/0/Download
9. DIRECTORY_DCIM
媒体文件/storage/emulated/0/DCIM
10. DIRECTORY_DOCUMENTS
文档/storage/emulated/0/Documents

我们通过Environment.getExternalStoragePublicDirectory()来获取这些目录

私有目录,无需权限

getExternalFilesDir(Environment.DIRECTORY_PICTURES)

/storage/emulated/0/Android/data/packagename/files/Pictures
获取/storage/emulated/0/Android/data/packagename/files目录 ->getExternalFilesDir(null)
扩展: getExternalFilesDir是手机中设置 → 应用 → 具体应用详情→ 清除数据 的操作对象

getExternalCacheDir

路径:/storage/sdcard/Android/data/应用包名/cache
getExternalCacheDir() 对应着应用程序内的外部缓存,同样是用来存储临时数据的。但是其由于脱离了应用管理,因此并不会在空间少时被自动清除。
扩展: getExternalCacheDir是手机中设置 → 应用 → 具体应用详情→ 清除缓存的操作对象

总结:
当我们需要存储一些私密性和安全性比较高的小数据,例如用户的账号密码等信息,我们可以存放在内部存储空间上;当我们需要存放一些能够被其他应用也能访问的数据,并且当应用被删除的时候,不希望数据被清除的时候,我们可以放到外部存储的公有目录下,但别忘了申请读写SD卡的权限哦;当我们需要存放一些应用的数据和缓存数据,希望有较好的隐私性和应用被删除的时候,对应的应用数据和缓存也被删除,这时候我们可以选择存放在外部存储的私有目录下。

参考:
https://www.jianshu.com/p/24d047ef641a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值