Android 对文件存储目录的认识
来源:互联网 发布:linux ioremap 失败 编辑:程序博客网 时间:2024/06/15 11:08
背景:
外置sdcard的读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
在Android 6.0 之前只要申明了上述两个权限就可以放心大胆的在sdcard上进行读写了,可惜Android 6.0之后就需要动态申请读写权限了,所以我们该如何适配Android 6.0来进行文件存储。首先我们在使用文件存储的时候尽量做到以下几点:
不要随意占用用户的内置存储
不要随意在SD卡上新建目录,应该放置自己应用包名对应的扩展存储目录下,卸载App时可以被自动清除。
对占用的磁盘空间有上限,并按照一定的策略进行清除,比如DiskLru算法等。
Android文件存储目录:
1.)应用私有存储(内置存储)
访问方式详细路径是否需要申请权限Context.getFileDir();获取内置存储下的文件目录,可以用来保存不能公开给其他应用的一些敏感数据如用户个人信息
/data/data/应用包名/files/ 否Context.getCacheDir();获取内置存储下的缓存目录,可以用来保存一些缓存文件如图片,当内置存储的空间不足时将系统自动被清除
/data/data/应用包名/cache/否注意:
由于这里使用的是Android 手机内置存储,如果手机没有获得root权限的话文件浏览器是无法访问的,同样这种存储也会随之app被删除而被删除。
2.)应用扩展存储(SD卡)
访问方式路径详情是否需要申请权限 Context.getExternalFilesDir()
;获取SD卡上的文件目录,
SDCard/Android/data/应用包名/files/
API < 19:是
API >= 19:否
Context.getExternalCacheDir()
;获取SD卡上的缓存目录,可以用来保存一些缓存文件如图片
SDCard/Android/data/应用包名/cache/
API < 19:是
API >= 19:否
注意:
由于存储在sdcard上所以尽量不要存在敏感数据比如用户信息等,这里的文件也会随着app 被删除而被删除。
3.)公共存储(SD卡)
访问方式路径详情是否需要申请权限Environment.getExternalStorageDirectory();获取sdcard根目录SDCard/xxx文件夹名字/是注意:
有时我们也是需要存储一些公共文件,而且希望这些文件能够不随着App被删除而被删除,例如我们录制的视频或者下载的音乐等。由于这个目录可以被任何app访问,所以我们在使用的时候是需要申请权限的。
- Android 对文件存储目录的认识
- 对存储的一些认识
- 对文件的新认识
- Android中的文件存储目录
- Android文件存储目录结构
- 我对存储的一些认识
- Android的存储目录
- 对android NDK的认识
- 我对Android的认识
- 对silverlight程序文件的认识
- 我对linux文件权限的认识
- 对文件I/0缓冲的认识
- 对二进制输出文件的认识
- 对 linux文件三个时间的认识
- 对Android HAL架构的认识
- [Android]我对View的认识
- 对Android四大组件的认识
- 初学者对Android的认识和理解
- IDEA项目中实现伪分布的MapReduce作业的问题
- Android手势密码view笔记(一)
- REDIS安装以及日常使用
- oracle转mysql的工具navicat
- Linux系统安装Hadoop+Hbase+zookeeper
- Android 对文件存储目录的认识
- 比较不错的网站
- 关于 strlen 和 sizeof的区别
- 基础的mysql语句+将mysql做成服务
- 仿iOS的PickerView控件,有时间选择和选项选择,并支持一二三级联动,支持自定义样式
- 2017iOS开发最新的打包测试步骤(亲测)
- [高性能MySQL]--查询缓存
- replica character liquid crystal display control
- Apache hadoop install