系统数据存储路径,如下:其中应用程序包名为:com.spt

ContextWrapper类中,包含以下方法:

1. getFilesDir() --> 内部存储

    @Override
public File getFilesDir() {
return mBase.getFilesDir();
}

k86m_QC机器上数据存储路径:/data/data/com.spt/files

华为手机上数据存储路径:/data/data/com.spt/files

2. getExternalFilesDir(String type) 参数指定为:Environment.DIRECTORY_PICTURES --> 外部存储

    @Override
public File getExternalFilesDir(String type) {
return mBase.getExternalFilesDir(type);
}

k86m_QC机器上数据存储路径:/storage/sdcard0/Android/data/com.spt/files/Pictures

华为手机上数据存储路径:/storage/emulated/0/Android/data/com.spt/files/Pictures

3. getCacheDir() --> 内部存储

    @Override
public File getCacheDir() {
return mBase.getCacheDir();
}

k86m_QC机器上数据存储路径:/data/data/com.spt/cache

华为手机上数据存储路径:/data/data/com.spt/cache

4. getExternalCacheDir() --> 外部存储

    @Override
public File getExternalCacheDir() {
return mBase.getExternalCacheDir();
}

k86m_QC机器上数据存储路径:/storage/sdcard0/Android/data/com.spt/cache

华为手机上数据存储路径:/storage/emulated/0/Android/data/com.spt/cache

Environment类中,包含以下方法:

1. getDataDirctory()

    /**
* Return the user data directory.
*/
public static File getDataDirectory() {
return DATA_DIRECTORY;
}

k86m_QC机器上数据存储路径:/data

华为手机上数据存储路径:/data

2. getDownLoadCacheDirectory()

    /**
* Return the download/cache content directory.
*/
public static File getDownloadCacheDirectory() {
return DOWNLOAD_CACHE_DIRECTORY;
}

k86m_QC机器上数据存储路径:/cache

华为手机上数据存储路径:/cache

3. getExternalStorageDirectory()

    /**
* Return the primary external storage directory. This directory may not
* currently be accessible if it has been mounted by the user on their
* computer, has been removed from the device, or some other problem has
* happened. You can determine its current state with
* {@link #getExternalStorageState()}.
* <p>
* <em>Note: don't be confused by the word "external" here. This directory
* can better be thought as media/shared storage. It is a filesystem that
* can hold a relatively large amount of data and that is shared across all
* applications (does not enforce permissions). Traditionally this is an SD
* card, but it may also be implemented as built-in storage in a device that
* is distinct from the protected internal storage and can be mounted as a
* filesystem on a computer.</em>
* <p>
* On devices with multiple users (as described by {@link UserManager}),
* each user has their own isolated external storage. Applications only have
* access to the external storage for the user they're running as.
* <p>
* In devices with multiple "external" storage directories, this directory
* represents the "primary" external storage that the user will interact
* with. Access to secondary storage is available through
* <p>
* Applications should not directly use this top-level directory, in order
* to avoid polluting the user's root namespace. Any files that are private
* to the application should be placed in a directory returned by
* {@link android.content.Context#getExternalFilesDir
* Context.getExternalFilesDir}, which the system will take care of deleting
* if the application is uninstalled. Other shared files should be placed in
* one of the directories returned by
* {@link #getExternalStoragePublicDirectory}.
* <p>
* Writing to this path requires the
* {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} permission,
* and starting in read access requires the
* {@link android.Manifest.permission#READ_EXTERNAL_STORAGE} permission,
* which is automatically granted if you hold the write permission.
* <p>
* Starting in {@link android.os.Build.VERSION_CODES#KITKAT}, if your
* application only needs to store internal data, consider using
* {@link Context#getExternalFilesDir(String)} or
* {@link Context#getExternalCacheDir()}, which require no permissions to
* read or write.
* <p>
* This path may change between platform versions, so applications should
* only persist relative paths.
* <p>
* Here is an example of typical code to monitor the state of external
* storage:
* <p>
* {@sample
* development/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.java
* monitor_storage}
*
* @see #getExternalStorageState()
* @see #isExternalStorageRemovable()
*/
public static File getExternalStorageDirectory() {
throwIfUserRequired();
return sCurrentUser.getExternalDirsForApp()[0];
}

k86m_QC机器上数据存储路径:/storage/sdcard0

华为手机上数据存储路径:/storage/emulated/0

4. getRootDirectory()

    /**
* Return root of the "system" partition holding the core Android OS.
* Always present and mounted read-only.
*/
public static File getRootDirectory() {
return DIR_ANDROID_ROOT;
}

k86m_QC机器上数据存储路径:/system

华为手机上数据存储路径:/system

5. getExternalStoragePublicDirectory(String type)

    /**
* Get a top-level public external storage directory for placing files of
* a particular type. This is where the user will typically place and
* manage their own files, so you should be careful about what you put here
* to ensure you don't erase their files or get in the way of their own
* organization.
*
* <p>On devices with multiple users (as described by {@link UserManager}),
* each user has their own isolated external storage. Applications only
* have access to the external storage for the user they're running as.</p>
*
* <p>Here is an example of typical code to manipulate a picture on
* the public external storage:</p>
*
* {@sample development/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.java
* public_picture}
*
* @param type The type of storage directory to return. Should be one of
* {@link #DIRECTORY_MUSIC}, {@link #DIRECTORY_PODCASTS},
* {@link #DIRECTORY_RINGTONES}, {@link #DIRECTORY_ALARMS},
* {@link #DIRECTORY_NOTIFICATIONS}, {@link #DIRECTORY_PICTURES},
* {@link #DIRECTORY_MOVIES}, {@link #DIRECTORY_DOWNLOADS}, or
* {@link #DIRECTORY_DCIM}. May not be null.
*
* @return Returns the File path for the directory. Note that this
* directory may not yet exist, so you must make sure it exists before
* using it such as with {@link File#mkdirs File.mkdirs()}.
*/
public static File getExternalStoragePublicDirectory(String type) {
throwIfUserRequired();
return sCurrentUser.buildExternalStoragePublicDirs(type)[0];
}

k86m_QC机器上数据存储路径:/storage/sdcard0/Pictures

华为手机上数据存储路径:/storage/emulated/0/Pictures

Internal Storage和External Storage的区别:

getFilesDir() --> 内部存储 /data/data/com.spt/files

getCacheDir() --> 内部存储 /data/data/com.spt/cache

内部存储,对应的是特定的应用程序,如上所述指的是包名为:com.spt应用程序

getExternalFilesDir(String type) --> 外部存储 /storage/sdcard0/Android/data/com.spt/files/Pictures

getExternalCacheDir() --> 外部存储 /storage/sdcard0/Android/data/com.spt/cache

getExternalStoragePublicDirectory(String type) --> 外部存储 /storage/sdcard0/Pictures

getExternalStorageDirectory() --> 外部存储 /storage/sdcard0

1. 外部存储,对应的是/storage/sdcard0/目录;

2. private files:如果需要在卸载应用程序时,删除所有该应用程序的外部存储(同时,该数据是本应用程序私有的),可以使用:getExternalFilesDir(String type)目录,带有应用程序包名;

3. public files可以存放在:getExternalStoragePublicDirectory(String type)

P.S.

对于特定的智能后视镜设备:Flash --> /mnt/sdcard 硬盘大小 外部存储路径:/storage/sdcard1" 外设的存储设备

Android系统文件目录路径说明的更多相关文章

  1. Android系统文件目录

  2. Android系统在超级终端下必会的命令大全(adb shell命令大全)

    . 显示系统中全部Android平台: android list targets . 显示系统中全部AVD(模拟器): android list avd . 创建AVD(模拟器): android c ...

  3. Android系统的开机画面显示过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7691321 好几个月都没有更新过博客了,从今天 ...

  4. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  5. Android系统级技巧合集

    Android系统级技巧合集(随时更新) #转载请注明来源# 1.高通骁龙系列查看CPU体质等级 CPU体质,即为CPU在工作频率下的电压.同一批次的CPU体质各有不同,体质越高,代表该颗CPU可在更 ...

  6. Android系统编译【转】

    本文转载自;http://blog.csdn.net/zirconsdu/article/details/8005415 Android编译系统分析 概要 由于android编译系统的复杂和使用了不熟 ...

  7. Android系统关机或重启的几种实现方式

    前阵子工作上遇到一些关于Android系统关机或重启的系统修改,于是,做了一些尝试,也搜集了一下资料,现在整理一下,做一些总结,方便学习或者日后工作的需要. 默认的SDK并没有提供应用开发者直接的An ...

  8. Android系统加载Apk文件的时机和流程分析(1)--Android 4.4.4 r1的源码

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80982869 Android系统在启动时安装应用程序的过程,这些应用程序安装好之 ...

  9. Android系统编程入门系列之应用数据文件化保存

    应用中关于数据的持久化保存,不管是简单的SharedPreferences还是数据库SQLiteDatabase,本质上都是将数据保存到系统的某种类型的文件中.因此可以直接使用java.io.File ...

随机推荐

  1. 你可能不知道的 Mac 技巧 - 文本操作

    找不到 Mac 上的 Home,End,PageUp?想截图还得打开 QQ?不知道 Mac 如何剪切文件?找不到全屏窗口的按钮?找不到隐藏文件夹?不知道如何向后删除?想少用鼠标,多用键盘?…… 希望我 ...

  2. Spring的事务机制

    ---恢复内容开始--- 内定的=>(只需要在xml 中添加一个bean) 在xml 中添加 <bean id="listener" class="com.t ...

  3. qsort()函数详解

    一 写在开头1.1 本节内容学习C语言中的qsort()函数. 二 qsort()2.1 函数原型 void qsort( void *base, size_t nmemb, size_t size, ...

  4. Jasmine

    Jasmine https://www.npmjs.com/package/jasmine The Jasmine Module The jasmine module is a package of ...

  5. MyEclipse编码方式设置

    1.windows -> Preferences -> general -> Workspace:

  6. 不定参数对arguments对象的影响

    如果声明函数时定义了不定参数,则在函数被调用时,arguments对象包含了所有传入的参数: function checkArgs(...args){ console.log(args.length, ...

  7. Eclipse中的sysout与debug-遁地龙卷风

    (-1)调试 在读<<一个程序员的奋斗史>>时里面提到这是一件很low的事情,突然想到自己也一直用sysout, 我是一个有情怀的人! (0)sysout的坏处 之所以长久的使 ...

  8. java获取上个星期第一天和最后一天

    package com.goldcn.jzgmanageplat.b2b.controller; import java.text.SimpleDateFormat;import java.util. ...

  9. C# - 操作符

    操作符(Operator) C#的操作符是一种告诉编译器执行计算.逻辑判断的符号. default(x) 获取类型的默认值,x是类型.虽然可以为任意类型使用此操作符,但此操作符主要用于泛型,在不确定泛 ...

  10. Vue导出json数据到Excel表格

    一.安装依赖 npm install file-saver --save npm install xlsx --save npm install script-loader --save-dev 二. ...