Android 存储详解

我们一般都会缓存一些数据在手机上,所以来说明一些有关的Android存储的内容。

内部存储internal storage

首先一定先明白一个概念,内存存储 != 内存,完全是两回事。一般当作是PC的C盘,如果使用RE管理器你可以看到这个目录下的内容。比如在/data/data你就可以看到你的应用程序包名,因为Shared Preferences和SQLite数据库都是存储在这个包名下的,通过RE管理器你还可以查看建立的数据库的内容。
内部存储一般用Context来获取和操作。因为内部存储一般手机厂商划分固定,最好不要存储太多。
一般都会在设置中的应用程序见到清除缓存和清除数据,这两个指的就是

Context.getCacheDir();
Context.getFilesDir();

第一个得到的目录为:/data/data/包名/cache,机身内存不足时,文件夹下的文件会被删除
第二个得到的目录为:/data/data/包名/files
我在网上发现比较详细的总结,感谢https://www.liaohuqiu.net/cn/posts/storage-in-android/

内部存储.png

外部存储external storage

这个存储现在一般为手机自带的存储,以前指的是SD卡。
这个可以当做是PC的除C盘以外的空间,这个一般是缓存图片等等一些存放的位置,比较流氓(BAT)的一般在目录下直接放一个文件夹,这样子就会造成卸载APP的时候,这些文件都不会被删除,所以谷歌一般建议还是在你的应用程序包名下。

  1. 外部存储根目录(就是文件管理器一般打开的位置)
    Environment.getExternalStorageDirectory();
  2. 包名下的缓存(目录为
    /storage/emulated/0/Android/data/包名/cache,前面因为手机型号不同,不一样)
    Context.getExternalCacheDir()
  3. 包名下的数据(这个文件夹中的媒体文件,不会被当做媒体扫描出来,加到媒体库中。)
    (目录为/storage/emulated/0/Android/data/包名/files)
    Context.getExternalFilesDir("")
    参数还可以系统提供的,如Environment.DIRECTORY_PICTURES
    目录为/storage/emulated/0/Android/data/包名/files/Pictures

详细的为


外部存储.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容