数据存储路径,如下:其中应用程序包名为:com.spt
ContextWrapper类中,包含以下方法
- getFilesDir() --> 内部存储
@Override
public File getFilesDir() {
return mBase.getFilesDir();
}
k86m_QC机器上数据存储路径:/data/data/com.spt/files
华为手机上数据存储路径:/data/data/com.spt/files
- 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
- getCacheDir() --> 内部存储
@Override
public File getCacheDir() {
return mBase.getCacheDir();
}
k86m_QC机器上数据存储路径:/data/data/com.spt/cache
华为手机上数据存储路径:/data/data/com.spt/cache
- 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类中,包含以下方法:
- getDataDirctory()
/**
* Return the user data directory.
*/
public static File getDataDirectory() {
return DATA_DIRECTORY;
}
k86m_QC机器上数据存储路径:/data
华为手机上数据存储路径:/data
- getDownLoadCacheDirectory()
/**
* Return the download/cache content directory.
*/
public static File getDownloadCacheDirectory() {
return DOWNLOAD_CACHE_DIRECTORY;
}
k86m_QC机器上数据存储路径:/cache
华为手机上数据存储路径:/cache
- 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
- 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
- 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" 外设的存储设备