Android 存储使用参考

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中的媒体文件不会被当做媒体扫描出来加到媒体库中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值