美文网首页
Android 内部存储和外部存储

Android 内部存储和外部存储

作者: feifei_fly | 来源:发表于2018-06-22 14:45 被阅读0次

    Android 存储可如下划分:

    • 内部RAM
    • 内部存储:内部ROM
    • 外部存储:外部ROM和Sdcard

    内部存储

    内部存储位于系统中很特殊的一个位置,如果你想将文件存储于内部存储,那么文件默认只能被你的应用访问到,且一个应用创建的所有文件都在和应用包名相同的目录下。当一个应用卸载之后,内部存储中的这些文件也被删除

    内部存储中的两个重要目录:
    (1)data/app文件夹。app文件夹里存放着我们所有安装的app的apk文件夹
    (2)data/data文件夹,这个文件夹下都是一个包名.

    • data/data/包名/shared_prefs
    • data/data/包名/database
    • data/data/包名/files
    • data/data/包名/cache
      我们在使用SharePerference的时候,将数据持久化存储于本地,其实就是存在这个shared_prefs中的xml文件里,我们的app里边的数据库文件就存储于databases文件夹中,我们的普通数据存储在files中,缓存在cache文件夹中。

    外部存储

    外部存储就是我们上面看到的storage文件夹,也有可能是mnt文件夹。在storage文件夹中有一个sdcard文件夹。
    sdcard这个文件夹中的文件又分为两类,一类是公有目录,还有一类是私有目录。

    (1)公有目录有9大类,比如DCIM,Download等这些系统为我们创建的文件夹。

    (2)私有目录就是android这个文件夹,这个文件夹打开后里边有一个data文件夹,打开这个文件夹,里面包含了许多包名组成的文件夹。

    /sdcard/Android/data/包名/files
    /sdcard/Android/data/包名/caches
    

    Google官方建议我们App的数据应该存储在外部存储的私有目录中该App的包名下,这样当用户卸载掉App之后,相关的数据会一并删除

    常用目录操作

    • context.getFilesDir() 内部存储data/data/包名/files目录
    • context.getCacheDir() 内部存储data/data/包名/cache目录
    • Environment.getExternalStorageDirectory() 外部存储根目录
    • Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_DCIM) 外部存储公有目录
    • context.getExternalFilesDir() 外部存储私有目录storage/sdcard/Android/data/包名/files
    • context.getExternalCacheDir() 外部存储私有目录storage/sdcard/Android/data/包名/cache

    通过Context.getExternalFilesDir()方法可以获取到SDCard/Android/data/你的应用的包名/files/目录,一般放一些长时间保存的数据。

    通过Context.getExternalCacheDir()方法可以获取到SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据。

    参考链接:
    https://www.jianshu.com/p/31670805f32a

    相关文章

      网友评论

          本文标题:Android 内部存储和外部存储

          本文链接:https://www.haomeiwen.com/subject/rkpkyftx.html