Android存储路径
先来看一张大图:
内部存储Environment.getDataDirectory().getParentFile();也就是根目录,一般就是指/data/data目录下的数据,需要root之后可以看见
/data/app
该文件存放着系统中安装的第三方应用apk
Android的应用安装就是将应用安装包拷贝到/data/app目录下面,每个包本质是一个zip压缩文件。为了提升启动效率,Android会将解压的dex提取出来,缓存在/data/dalvik-cache目录下
api
路径
getDataDirectory()
/data
getDownloadCacheDirectory()
/cache
getRootDirectory()
/system
/data/data
该文件夹存放存储包==私有数据==,对于设备中每一个安装的App,系统都会在内部存储空间的 data/data 目录下以应用包名为名字自动创建与之对应的文件夹。用户卸载 App 时,系统自动删除data/data目录下对应包名的文件夹及其内容。该目录下又把存储内容进行了分类:
地址
说明
api
data/data/包名/cache
存放缓存信息
context.getCacheDir()
data/data/包名/database
APP数据库信息
context.getDataDir() / context.getDatabasePath(name)
data/data/包名/files
存放APP的文件信息
context.getFilesDir()
外部存储
每个兼容 Android 的设备都支持可用于保存文件的共享“外部存储”。 该存储可能是可移除的存储介质(例如 SD 卡)或内部(不可移除)存储。 保存到外部存储的文件是全局可读取文件,而且,在计算机上启用 USB 大容量存储以传输文件后,可由用户修改这些文件。
获取外部存储路径及状态
Environment.getExternalStorageState()
Environment.getExternalStorageDirectory()
公共目录
Android在外部存储上提供了十个公共目录来存储对应的文件,通过api:Environment.getExternalStoragePublicDirectory(type)来访问
名称
地址
DIRECTORY_MUSIC
/storage/emulated/0/Music
DIRECTORY_PODCASTS
/storage/emulated/0/Podcasts
DIRECTORY_RINGTONES
/storage/emulated/0/Ringtones
DIRECTORY_ALARMS
/storage/emulated/0/Alarms
DIRECTORY_NOTIFICATIONS
/storage/emulated/0/Notifications
DIRECTORY_PICTURES
/storage/emulated/0/Pictures
DIRECTORY_MOVIES
/storage/emulated/0/Movies
DIRECTORY_DOWNLOADS
/storage/emulated/0/Downloads
DIRECTORY_DCIM
/storage/emulated/0/Dcim
DIRECTORY_DOCUMENTS
/storage/emulated/0/Documents
3. 私有目录
Android2.2 引入了基于扩展存储器的应用缓存目录,该目录指向大容量的扩展存储器。==与应用的内存私有目录一样,缓存目录会随着应用的卸载一并删除。==
==和内部存储一样,会在 SD 卡的 Android/data ++目录下生成对应包名的文件夹++==
地址
api
/storage/emulated/0/Android/data/应用包名/files
context.getExternalFilesDir(type)
/storage/emulated/0/Android/data/应用包名/cache
context.getExternalCacheDir()
/storage/emulated/0/Android/obb/应用包名
context.getObbDir()
Android其它目录/system/app 和 /data/app 的区别
/data/app 里软件权限没全开,/system/app 里的软件获取了所有权限
/data/app 可以应用卸载,/system/app 只能 root 后删除
/data/app 文件夹大小随便,/system/app 文件夹有大小限制
卸载/system/app 目录下的文件并不会增加系统空间,即可用 ROM 空间