欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 存储使用参考

程序员文章站 2022-05-07 19:14:40
Android 存储树如下: ($rootDir)+- /data -> Environment.getDataDirectory()| || | ($appDataDir)| +- data/com.srain.cube.sample| || | ($filesDir)| +- files -> Context.getFilesDir() / Context.g...

Android 存储树如下:

    ($rootDir)
+- /data                -> Environment.getDataDirectory()
|   |
|   |   ($appDataDir)
|   +- data/com.srain.cube.sample
|       |
|       |   ($filesDir)
|       +- files            -> Context.getFilesDir() / Context.getFileStreamPath("")
|       |       |
|       |       +- file1    -> Context.getFileStreamPath("file1")
|       |   ($cacheDir)
|       +- cache            -> Context.getCacheDir()
|       |
|       +- app_$name        ->(Context.getDir(String name, int mode)
|
|   ($rootDir)
+- /storage/sdcard0     -> Environment.getExternalStorageDirectory()
    |                       / Environment.getExternalStoragePublicDirectory("")
    |
    +- dir1             -> Environment.getExternalStoragePublicDirectory("dir1")
    |
    |   ($appDataDir)
    +- Andorid/data/com.srain.cube.sample
        |
        |   ($filesDir)
        +- files        -> Context.getExternalFilesDir("")
        |   |
        |   +- file1    -> Context.getExternalFilesDir("file1")
        |   +- Music    -> Context.getExternalFilesDir(Environment.Music);
        |   +- Picture  -> ... Environment.Picture
        |   +- ...
        |
        |   ($cacheDir)
        +- cache        -> Context.getExternalCacheDir()
        |
        +- ???

 

  • 应用数据目录($appDataDir)包含:内部存储路径:/data/data/$packageName 和外部存储路径/sdcard/Android/data/$packageName,在 App被卸载后,会被系统删除,我们应该讲应用的数据存放于这两个目录中,需要用户额外保存的存放到外部存储其他目录中。
  • 在$appDataDir下,一般包含数据缓存($cacheDir)和文件目录($filesDir)两个目录。
  • 机身存储不足时,内部存储的$cacheDir目录下的文件会被删除,外部存储的$cacheDir目录不会
  • 内部存储的$cacheDir和$filesDir文件是App安全的,其他应用无法读取;外部存储的这两个目录则不是,其他应用也可访问
  • 外部存储的$filesDir中的媒体文件不会被当做媒体扫描出来加到媒体库中

本文地址:https://blog.csdn.net/tunmengsmile/article/details/107151637