手机存储目录的总结;
来源:互联网 发布:socket编程步骤 编辑:程序博客网 时间:2024/06/05 19:17
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
如果要保存下载的内容,就不要放在以上目录下
二、图片实例
Android/data 目录 Android/data/应用包名
2.、
缓存
结果:
3、模拟器缓存
context.getExternalCacheDir().getPath(); ---> /storage/emulated/0/Android/data/com.app/cache
1、这个目录可以在手机上看到,不用root , 这个目录的存在于外部SD卡上的。
2、app卸载后,这个目录的数据全部被系统清除。
总结:
context.getExternalCacheDir() 、 context.getCacheDir()
相同点:
1、相同点:都可以做app缓存目录。
2、app卸载后,两个目录下的数据都会被清空。
不同点:
1、目录的路径不同。前者的目录存在外部SD卡上的。后者的目录存在app的内部存储上。
2、前者的路径在手机里可以直接看到。后者的路径需要root以后,用Root Explorer 文件管理器才能看到。
需要注意的事项:
1、由于context.getExternalCacheDir() 的目录存在外部SD卡上的,所以在使用这个方法的时候要判断外部SD卡的状态是否可用。
Environment.getDataDirectory().getPath()=/data
Environment.getDownloadCacheDirectory().getPath()=/cache
Environment.getExternalStorageDirectory()=/storage/emulated/0
Environment.getRootDirectory().getPath()=/system
//警报的铃声
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS).getPath()=/storage/emulated/0/Alarms
//相机拍摄的图片和视频保存的位置
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath()=/storage/emulated/0/DCIM
//下载文件保存的位置
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath()=/storage/emulated/0/Download
//电影保存的位置
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getPath()=/storage/emulated/0/Movies
//音乐保存的位置
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath()=/storage/emulated/0/Music
//通知音保存的位置
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_NOTIFICATIONS).getPath()=/storage/emulated/0/Notifications
//下载的图片保存的位置
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath()=/storage/emulated/0/Pictures
//用于保存podcast(博客)的音频文件
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PODCASTS).getPath()=/storage/emulated/0/Podcasts
//保存铃声的位置
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES).getPath()=/storage/emulated/0/Ringtones
context.getCacheDir().getPath()=/data/data/包名/cache
context.getFilesDir().getPath()=/data/data/包名/files
context.getObbDir().getPath()=/storage/emulated/0/Android/obb/包名
context.getExternalCacheDir().getPath()=/storage/emulated/0/Android/data/包名/cache
context.getExternalFilesDir(Environment.DIRECTORY_ALARMS).getPath()=/storage/emulated/0/Android/data/包名/files/Alarms
context.getExternalFilesDir(Environment.DIRECTORY_DCIM).getPath()=/storage/emulated/0/Android/data/包名/files/DCIM
context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getPath()=/storage/emulated/0/Android/data/包名/files/Download
context.getExternalFilesDir(Environment.DIRECTORY_MOVIES).getPath()=/storage/emulated/0/Android/data/包名/files/Movies
context.getExternalFilesDir(Environment.DIRECTORY_MUSIC).getPath()=/storage/emulated/0/Android/data/包名/files/Music
context.getExternalFilesDir(Environment.DIRECTORY_NOTIFICATIONS).getPath()=/storage/emulated/0/Android/data/包名/files/Notifications
context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath()=/storage/emulated/0/Android/data/包名/files/Pictures
context.getExternalFilesDir(Environment.DIRECTORY_PODCASTS).getPath()=/storage/emulated/0/Android/data/包名/files/Podcasts
context.getExternalFilesDir(Environment.DIRECTORY_RINGTONES).getPath()=/storage/emulated/0/Android/data/包名/files/Ringtones
context.getDatabasePath("XXX").getPath()=/data/data/包名/databases/XXX
context.getPackageCodePath()=/data/app/包名-2/base.apk
context.getPackageResourcePath()=/data/app/包名-2/base.apk
- 手机存储目录的总结;
- Android 手机存储目录详解
- Android 手机存储目录详解
- linux下的文件目录和存储结构总结
- Android手机的目录详解以及数据的存储(完善中)
- 手机的存储结构
- 目录的存储结构
- Android的存储目录
- 由sqlite在手机上的存储位置,引发的onCreate在哪里执行的总结
- PostgreSQL的数据存储---目录
- 关于手机目录下的sdcard解析
- android手机几个目录的介绍
- android系统的手机文件夹目录详解
- android 获取手机SD卡和手机的内部存储
- 手机流媒体开发的总结
- 手机定位的总结代码
- 手机安全卫士的一些总结
- 文件应该存储在手机的什么地方?
- 手机版和网页版公用一个页面的方法css
- 封装:类的cpp和h文件的分离
- Could not get JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'ro
- 文章标题
- Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句
- 手机存储目录的总结;
- 实现html5在移动端不全屏播放
- win10下完全卸载+重装MySQL教程
- git使用
- 在字符串中搜索子字符串
- Android——RecyclerView——RecycledViewPool类——源码注释翻译:RecycledViewPool类的官方解释
- Groovy
- elasticsearch-2.1.0 及其插件head的安装
- docker创建lnmp镜像