zoukankan      html  css  js  c++  java
  • Android系统文件目录路径说明

    系统数据存储路径,如下:其中应用程序包名为: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" 外设的存储设备

  • 相关阅读:
    html_table表格
    Spark 编程模型(上)
    hbase建表时 ERROR: java.io.IOException: Table Namespace Manager not ready yet, try again later
    ElasticSearch 优化
    ElasticSearch 索引模块——全文检索
    ElasticSearch 索引模块——集成IK中文分词
    elastisSearch-aggregations
    ElasticSearch 搜索原理
    ElasticSearch Document API
    ElasticSearch client API
  • 原文地址:https://www.cnblogs.com/CVstyle/p/6389966.html
Copyright © 2011-2022 走看看