android的各种文件目录
2017-07-24 09:33
197 查看
今天学习FileProvider,里面就涉及到了内部存储,外部存储。就去查了一下,这里整理一下。
context.getCacheDir() 获取到的路径是: /data/data/包名/cache。在此路径下,如果在系统即将耗尽存储,它会在不进行警告的情况下删除您的缓存文件。最好的办法是给你的应用缓存设置一个最大值,当达到这个值时你应该去删除部分缓存文件以便能再次利用这部分空间(我查了很多的资料没有查到,大概是通过判断文件的大小,当达到这个值时通过file.delete来一个个的删除文件)。
context.getFilesDir()获取到的路径是:/data/data/包名/files。这个目录下保存应用程序的数据,通过 openFileOutput(String, int) 创建的文件都保存在这个文件目录下。
注意:在res/xml/filepaths.xml中的标签
Environment.getExternalStorageDirectory()获取到的路径是: /storage/emulated/0。这是SD卡根路径,6.0后写入需要用户授权。在此路径下的文件是app独立文件,是完全开放的,对于其他应用程序或者用户都可以访问,当你的应用被卸载的时候这部分文件也不会被删除。
context.getExternalFilesDir(dir)获取到的路径是: /storage/emulated/0/Android/data/包名/files/dir。在此路径下的文件是app专属文件,这类文件应该是随着app删除而一起删除的。
context.getExternalCacheDir()获取的路径是:/storage/emulated/0/Android/data/包名/cache ,这个路径被Android系统认定为应用程序的缓存路径,当程序被卸载的时候,这里的数据也会一起被清除掉,这样就不会出现删除程序之后手机上还有很多残留数据的问题。
除了这五个主要的方法还有一些方法如下:
Environment.getDataDirectory():/data 用户数据目录。
Environment.getDownloadCacheDirectory(): /cache 下载缓存内容目录。
Environment.getRootDirectory(): /system 系统主目录
Environment.getExternalStoragePublicDirectory(String s): /storage/emulated/0/s一些共享文件应该被放置在该目录中
getPackageCodePath(): /data/app/com.demo.myapp-1.apk。 Android 安装包的完整路径,这个包是一个zip的压缩文件,它包括应用程序的代码和assets文件。
getPackageResourcePath(): /data/app/com.demo.myapp-1.apk。ndroid 安装包的完整路径,这个包是一个ZIP的要锁文件,它包括应用程序的私有资源。
getDatabasePath(String s): /data/data/com.demo.myapp/databases/s 保存通过
Context.openOrCreateDatabase 创建的数据库文件。
getDir(String s, Context.MODE_PRIVATE) : /data/data/com.my.app/app_s这是一个可以存放你自己应用程序自定义的文件,你可以通过该方法返回的File实例来创建或者访问这个目录,注意该目录下的文件只有你自己的程序可以访问。
内部存储:
主要涉及到的方法:context.getCacheDir()和context.getFilesDir()context.getCacheDir() 获取到的路径是: /data/data/包名/cache。在此路径下,如果在系统即将耗尽存储,它会在不进行警告的情况下删除您的缓存文件。最好的办法是给你的应用缓存设置一个最大值,当达到这个值时你应该去删除部分缓存文件以便能再次利用这部分空间(我查了很多的资料没有查到,大概是通过判断文件的大小,当达到这个值时通过file.delete来一个个的删除文件)。
context.getFilesDir()获取到的路径是:/data/data/包名/files。这个目录下保存应用程序的数据,通过 openFileOutput(String, int) 创建的文件都保存在这个文件目录下。
注意:在res/xml/filepaths.xml中的标签
<files-path path="images/*" name="myimages"/>, files-path就是指代的路径:/data/data/包名/files,其中path属性就是files的下一级,即:/data/data/包名/files/images/,那么name属性的值myimages和uri的值
content://com.example.myapp.fileprovider/myimages/default_image.jpg中的myimages是一个。
外部存储:
主要涉及到的方法:Environment.getExternalStorageDirectory()、context.getExternalFilesDir(dir)和context.getExternalCacheDir()Environment.getExternalStorageDirectory()获取到的路径是: /storage/emulated/0。这是SD卡根路径,6.0后写入需要用户授权。在此路径下的文件是app独立文件,是完全开放的,对于其他应用程序或者用户都可以访问,当你的应用被卸载的时候这部分文件也不会被删除。
context.getExternalFilesDir(dir)获取到的路径是: /storage/emulated/0/Android/data/包名/files/dir。在此路径下的文件是app专属文件,这类文件应该是随着app删除而一起删除的。
context.getExternalCacheDir()获取的路径是:/storage/emulated/0/Android/data/包名/cache ,这个路径被Android系统认定为应用程序的缓存路径,当程序被卸载的时候,这里的数据也会一起被清除掉,这样就不会出现删除程序之后手机上还有很多残留数据的问题。
除了这五个主要的方法还有一些方法如下:
Environment.getDataDirectory():/data 用户数据目录。
Environment.getDownloadCacheDirectory(): /cache 下载缓存内容目录。
Environment.getRootDirectory(): /system 系统主目录
Environment.getExternalStoragePublicDirectory(String s): /storage/emulated/0/s一些共享文件应该被放置在该目录中
getPackageCodePath(): /data/app/com.demo.myapp-1.apk。 Android 安装包的完整路径,这个包是一个zip的压缩文件,它包括应用程序的代码和assets文件。
getPackageResourcePath(): /data/app/com.demo.myapp-1.apk。ndroid 安装包的完整路径,这个包是一个ZIP的要锁文件,它包括应用程序的私有资源。
getDatabasePath(String s): /data/data/com.demo.myapp/databases/s 保存通过
Context.openOrCreateDatabase 创建的数据库文件。
getDir(String s, Context.MODE_PRIVATE) : /data/data/com.my.app/app_s这是一个可以存放你自己应用程序自定义的文件,你可以通过该方法返回的File实例来创建或者访问这个目录,注意该目录下的文件只有你自己的程序可以访问。
相关文章推荐
- Android判断SD卡状态及获取各种文件目录
- android 保存文件的各种目录列表
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- android文件系统制作教程(4) —- makefile脚本,制作各种单独的分区文件ramdisk.img,system.img,boot.img
- Android文件系统根目录的结构
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- android项目的创建,目录结构及各文件的作用_android学习笔记(二)
- net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表
- linux下文件数、目录数、文件名长度的各种限制
- Android应用程序如何访问/sys和/proc等目录下的系统文件
- android用于打开各种文件的intent
- Android应用源码的文件目录结构
- 如何访问android的asset目录和res目录下的文件
- net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- 用C#实现对目录,文件的各种操作
- 是否想为你的Windows加上一双眼睛,察看使用者在机器上所做的各种操作(例如建立、删除文件;改变文件或目录名字)呢?
- Android.mk 中拷贝文件到另一个目录
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等