Android数据存储路径分析

版权声明:本文为作者原创,转载必须注明出处。

转载请注明出处:http://www.jianshu.com/p/7b948b47e986

Android设置中中清除数据:

清理掉的数据路径:

1、内部存储:data\data\下的包名文件夹会被整个清除掉

2、外部存储:mnt\sdcard\Android\data\包名文件夹会被整个清除掉

不会被清理掉的数据路径:

外部存储:mnt\sdcard\Android\除了对于包名之外的所有文件及文件夹都不会被清掉

对于内部存储:获取data\data\包名\files  目录下的文件流

context.openFileOutput 写

context.openFileInput 读

判断有无sdcard:

android.os.Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED);

android获取目录的系统方法:

一、内部存储(通过context获取):

Context.getDatabasePath()                                                   返回通过Context.openOrCreateDatabase 创建的数据库文件

Context.getCacheDir().getPath() :                                          用于获取APP的cache目录 /data/data//cache目录

Context.getExternalCacheDir().getPath()  :                            用于获取APP的在SD卡中的cache目录/mnt/sdcard/Android/data//cache  不对

应该是/storage/emulated/0/Android/data/app_package_name/cache

Context.getFilesDir().getPath()  :                                           用于获取APP的files目录 /data/data//files

Context.getObbDir().getPath():                                             用于获取APPSDK中的obb目录 /mnt/sdcard/Android/obb/

Context.getPackageName() :                                                用于获取APP的所在包目录

Context.getPackageCodePath()  :                                         来获得当前应用程序对应的 apk 文件的路径

Context.getPackageResourcePath() :                                    获取该程序的安装包路径

二、外部存储(Environment获取):

Environment.getDataDirectory().getPath() :                          获得根目录/data 内部存储路径

Environment.getDownloadCacheDirectory().getPath()  :      获得缓存目录/cache

Environment.getExternalStorageDirectory().getPath():         获得SD卡目录/mnt/sdcard(获取的是手机外置sd卡的路径)

Environment.getRootDirectory().getPath() :                          获得系统目录/system

SD卡缓存目录

当应用需要将图片或者文件缓存到SD卡中时要去申请创建目录,有下面几种途径

我们可以通过API调用应用专属目录:

// /storage/emulated/0/Android/data/app_package_name/files/Pictures

Content.getExternalFilesDir(Environment.DIRECTORY_PICTURES);

// /storage/emulated/0/Android/data/app_package_name/cache

Content.getExternalCacheDir();

上面两个目录是专属于当前app的,当应用被删除时,上面目录下的文件也会清空

内存缓存目录

相对于应用的专属SD卡缓存有两个内存缓存地址:

Content. getCacheDir(); //  /data/data/app_package_name/cache

Content. getFilesDir(); //  /data/data/app_package_name/files

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,025评论 25 708
  • 文件存储和清理: 可以看到,当SD卡存在或者SD卡不可被移除的时候,就调用getExternalCacheDir(...
    3Q竹林阅读 2,233评论 0 2
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,508评论 0 17
  • 一.getCacheDir、getCacheDir getCacheDir()方法用于获取/data/data//...
    蚁队蚁行阅读 651评论 0 2
  • 第一章 拜别师傅 “下山了什么好吃的好玩的你可别忘了师傅,碰到漂亮女人别忘了问她愿不愿意做你师...
    黏人的猫阅读 154评论 0 0