Android 存储空间和存储路径总结

本文详细总结了Android系统的存储空间,包括缓存空间、内部空间、外部空间和公开空间的特点,以及各种获取存储路径的方法,如getExternalStorageDirectory()、getExternalStoragePublicDirectory()等,并举例说明了在不同设备上的实际路径差异。
摘要由CSDN通过智能技术生成

关于Android内部的存储空间,记忆很暧昧,每次都是现用现查。

今天又遇到了,借此机会系统的总结一下。

 

  路径取得方法

APP

专用

非root

用户可见

删除方法

APP

卸载时

内部数据空间 Context.getFilesDir() yes no 主动删除 消失
内部缓存空间 Context.getCacheDir() yes no 清空缓存 消失
外部数据空间 Context.getExternalFilesDir() yes yes 主动删除 消失
外部缓存空间 Context.getExternalCacheDir() yes yes 清空缓存 消失
外部公開空间
(通常是/sdcard)
Environment.getExternalStorageDirectory() no yes 无法删除 不消失
外部公開共享空间 Environment.getExternalStoragePublicDirectory() no yes 无法删除 不消失

缓存空间没有大小限制。

内部空间只有APP自己可以访问,其他APP和手机用户都不可以见。卸载消失。

外部空间 APP自己,手机用户,其他授权APP可以访问。卸载消失

公開空间,所有APP都可以访问。卸载不消失。

 

 


以下作为补充阅读,看了会晕。


External 的字眼非常容易让人误会。根据字面联想,容易让人是手机外置空间(SD卡,外置硬盘之类)。
其实是指系统storage以外的storage的意思。

用getExternalXXXX()方法取得的空间有可能是 SD卡空间,也有可能还是手机内置存储空间。APP这边是无法控制的。
getExternalStorageDirectory取到的一般是/sdcard空间,但是不是绝对的,编程的时候需要注意。

如下面所示,根据手机不同,实际取到的路径也是不一样的。所以不要用绝对路径,要通过Context或者Enviroment来取。

206SH(Android4.2.2)

# 各种路径
Context.getFilesDir()                           :/data/data/com.example/files
Context.getCacheDir()                           :/data/data/com.example/cache
Context.getExternalCacheDir()                   :/storage/sdcard0/Android/data/com.example/cache
Context.getExternalFilesDir()                   :/storage/sdcard0/Android/data/com.example/files
Environment.getExternalStorageDirectory()
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值