美文网首页
Android文件目录位置和意义

Android文件目录位置和意义

作者: Yim_ | 来源:发表于2019-08-10 20:20 被阅读0次

android 6.0(Android M、API23)以后,要判断是否有读写权限,只有具备这些权限才可以读写外置存储。

1,Context.getFilesDir
获取路径:/data/user/0/应用包名/files
该目录是应用的文件存储目录,应用被卸载时,该目录一同被系统删除。默认存在,默认具备读写权限(6.0系统可以不用向用户申请)

2,Context.getCacheDir
获取路径:/data/user/0/应用包名/cache
该目录是应用的文件缓存目录,应用被卸载时,该目录一同被系统删除。默认存在,默认具备读写权限。不同于getFileDir,该目录下的文件在系统内存紧张时,会被清空文件,来腾出空间供系统使用,著名的图片加载库ImageLoader就是在没有外置存储读写权限时使用此文件夹。getFileDir,不会因为系统内存不足而被清空。(6.0系统可以不用向用户申请)

3,Context.getObbDir
获取路径:/storage/emulated/0/Android/obb/应用包名
该目录是应用的数据存放目录,一般被用来存放游戏数据包obb文件。默认存在,可读写(6.0系统可以不用向用户申请)

4,Context.CodeCacheDir
获取路径:/data/user/0/应用包名/code_cache
默认存在,可读写。(6.0系统可以不用向用户申请)

5,Context.getExternalFilesDir
获取路径:(以下载目录为准) /storage/emulated/0/Android/data/应用包名/files/Download
默认存在,可读写。(6.0系统可以不用向用户申请)

6,Context.getExternalCacheDir
获取路径:/storage/emulated/0/Android/data/应用包名/cache
默认存在,可读写。(6.0系统可以不用向用户申请)

7,Context.getDatabasePath
获取路径:/data/user/0/应用包名/databases/参数名
默认不存在,可读写。(6.0系统可以不用向用户申请)

8,Context.getDir
获取路径:/data/user/0/应用包名/app_参数名
默认存在,可读写。分为Private等三个权限,private代表仅能自己访问。(6.0系统可以不用向用户申请)

9,Context.getPackageCodePath
获取路径:/data/app/应用包名-1/base.apk
默认存在,获取apk包路径

10,Context.getRootDirectory
获取路径:/system
默认存在,不可读写(除非具备root权限)

11,Environment.getExternalStorageDirectory
获取路径:/storage/emulated/0
默认存在,声明权限则可读写(6.0和以后系统还需要向用户申请同意才可以)

12,Environment.getExternalStoragePublicDirectory
获取路径:/storage/emulated/0/Download(以下载目录为例)
默认存在,声明权限则可读写(6.0和以后系统还需要向用户申请同意才可以)

13,Environment.getDownloadCacheDirectory
获取路径:/cache
默认存在,声明权限则可读写(6.0和以后系统还需要向用户申请同意才可以)

14,Context.getFileStreamPath
获取路径:/data/data/应用包名/files/download(示例download)
该目录是应用的文件存储目录,应用被卸载时,该目录一同被系统删除。默认存在,默认具备读写权限(6.0系统可以不用向用户申请)

附注:
1)上述路径是通过getAbsulotePath方法获得,一般情况下等同于getPath
2)在6.0系统上,一般Java层实现对外置存储的文件操作需要向用户申请,如果用C层实现,则可以越过这种限制
3)配置targetsdk为19,compilesdk为22,可以避免在6.0手机上的权限限制

参考:https://yq.aliyun.com/articles/59477

相关文章

  • Android文件目录位置和意义

    android 6.0(Android M、API23)以后,要判断是否有读写权限,只有具备这些权限才可以读写外置...

  • Android Studio忽略文件

    文件位置:Android Studio的安装目录\plugins\android\lib\templatesgra...

  • Android 文件路径详解

    Android 文件目录繁多,每个目录都有每个目录存在的意义,将文件存储在正确的目录,有利于文件的分类管理。And...

  • android文件存储

    参考 全面的Android文件目录解析和获取方法(包含对6.0系统的说明) Android app的文件缓存目录 ...

  • Android.mk 遍历

    android.mk 在mac和windows下多目录 文件/目录遍历

  • Android存储——各种路径以及意义的解释

    Android中各种目录的作用 Android中内部存储 内部存储不是内存,是位于系统中的一个存储位置,如果将文件...

  • Android studio debug签名信息

    Android studio默认使用debug签名编译应用 签名文件存储位置:win电脑默认的目录是 C:/Use...

  • Android so目录位置

    新建一个Android项目,jar包的位置基本没有什么问题。 就在根目录下的libs里边。但是so的位置通常情况下...

  • Shell mv 命令简介

    mv 命令用于将文件和目录从一个位置移动到另一个位置。除了移动文件,mv 命令还可用于修改文件或目录的名字。 使用...

  • 每日一个linux命令07-cp

    1. 命令解析 命令用途: 复制文件或目录至目标位置,或复制一组文件或目录至目标位置 命令格式: 复制文件或目录至...

网友评论

      本文标题:Android文件目录位置和意义

      本文链接:https://www.haomeiwen.com/subject/eefdjctx.html