Android 存储笔记

一直搞不清 Android 常用文件夹的位置,做笔记整理下。顺便记录下自己在存储文件时踩的坑。
以包名为 com.kay.example 为例。

内部储存

1
2
3
context.getCacheDir /data/data/com.kay.example/cache
context.getFileDir /data/data/com.kay.example/files
context.getDir /data/data/com.kay.example

外部存储

1
2
3
4
context.getExternalCacheDir /sdcard/Android/data/com.example.kay/cache
context.getExternalFilesDir /sdcard/Android/data/com.example.kay/files
Environment.getExternalStorageDirectory /sdcard/
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) /sdcard/Movies

外置存储这方面没太多接触,有兴趣的人可以看下 Android 存储挖坑记,这方面讲解得挺详细的。

缓存清理

做下载功能时,发现下载记录经常被清。研究了下,推测有两个原因。
一是把下载记录存到了 /data/data/com.kay.example/cache 下,而 Android 自带的清除缓存功能会把内部储存和外部储存的缓存文件夹同时清除,也就是 /data/data/com.example.kay/cache 以及 /sdcard/Android/data/com.example/cache。除此之外,像腾讯管家、百度管家等软件在空间清理时也会调动系统的清除缓存功能。
二是把下载的文件放到了 /sdcard/Android/data/com.example.kay/files 下。而 360 手机管家清理空间时会自动把该文件夹识别为日志文件然后清除。清理时该文件夹是默认勾选的,且隐藏得很深。当时发现这一点时我真是一脸懵逼,然后试了下某个大厂的 App,发现它家该文件夹倒是被视为重要文件,不默认勾选。竟然还区别待遇,只好乖乖地修改了下载的位置。

参考