存储路径

Android手机上的存储空间可做如下划分:
内存:RAM
内部存储:内部ROM
外部存储:外部ROM和SDCard

打开Device File Explore可以看到手机的文件系统:
在这里插入图片描述

内部存储:

data目录对应了内部存储的路径,每安装 一个App,系统都会在 data/data 目录下以应用包名为名字自动创建与之对应的文件夹,这个文件夹用来存放 WebView 缓存,SharedPreferences 和数据库信息,卸载 App 时,对应的内容也会自动删除

优点:比较稳定,存储方便,操作简单,更加安全(可以控制访问权限)等优点
缺点:空间有限。

方法路径
Environment.getDataDirectory().getParentFile()/(内存根目录)
Environment.getDataDirectory()/data
Environment.getDownloadCacheDirectory()/cache
Environment.getRootDirectory()/system

私有目录:

方法路径
context.getFilesDir()/data/user/0/packageName/files
context.getCacheDir()/data/user/0/packageName/cache
外部存储:

外部存储对应的目录是mnt,store和sdcard目录
优点是存储空间大,无需担心数据清除问题,缺点不能稳定使用。
Environment .getExternalStorageDirectory()可以获取到外部存储,在不同的系统版本打印其路径,发现打印结果有所不同:

/sdcard/
/mnt/sdcard/
/storage/sdcard0/
/storage/emulated/legacy/				//这里的legacy是0,1,2...

公有目录:有9大类,比如DCIM、Download等系统为用户创建的文件夹
Environment.getExternalStoragePublicDirectory(String)方法可以获取公有目录

方法路径
DIRECTORY_ALARMS/storage/sdcard0/Alarms
DIRECTORY_DCIM/storage/sdcard0/DCIM
DIRECTORY_DOWNLOADS/storage/sdcard0/Download
DIRECTORY_MOVIES/storage/sdcard0/Movies
DIRECTORY_MUSIC/storage/sdcard0/Music
DIRECTORY_NOTIFICATIONS/storage/sdcard0/Notifications
DIRECTORY_PICTURES/storage/sdcard0/Pictures
DIRECTORY_PODCASTS/storage/sdcard0/Podcasts
DIRECTORY_RINGTONES/storage/sdcard0/Ringtones

私有目录: 即Android文件夹/storage/sdcard/Android/,其中的data文件夹包含了许多包名组成的文件夹。
context.getExternalCacheDir()方法可以获取到/storage/emulated/0/Android/data/com.example.mtest/cache路径就是一个私有目录

可以看到在sd卡根目录中经常会出现数字0,这里的数字表示userId的意思;

Environment.getExternalStorageState()可以获取外部存储状态,mounted表示外部存储已安装

Android Q
Android Q中通过Context.getExternalFilesDir()获取私有目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值