我正在我的应用程序中实现图像文件缓存,以减少直接从Web服务器下载这些文件的次数.虽然我知道
Android操作系统可能决定从我的应用程序的缓存目录中清除文件以释放内部存储空间,但我不确定这个“清理”过程是否会在执行期间发生.
如果我可以假设操作系统在执行期间不会弄乱缓存文件,我将能够使用“内存”数据结构来优化我的缓存实现.例如,我可以使用缓存条目(存储在缓存文件夹中的文件)的映射(在内存中),其中包含缓存命中的时间戳和其他可能有助于优先处理缓存条目的方式的信息.否则,如果我必须处理缓存清理过程可能随时随地发生的事实,甚至在应用程序执行期间,使用内存数据结构将是无用的,因为它们最终会与文件夹的真实内容不同步如果操作系统决定自己清理文件.在这种情况下,我的缓存系统必须效率较低,因为每次应用程序请求新文件时,它都会被迫在文件系统中直接检查缓存文件夹的内容.
换句话说,我只是想知道我是否可以假设操作系统的内容不会被我的应用程序同时更改,因为这可能会大大改变我的缓存实现.
如果我可以假设操作系统在执行期间不会弄乱缓存文件,我将能够使用“内存”数据结构来优化我的缓存实现.例如,我可以使用缓存条目(存储在缓存文件夹中的文件)的映射(在内存中),其中包含缓存命中的时间戳和其他可能有助于优先处理缓存条目的方式的信息.否则,如果我必须处理缓存清理过程可能随时随地发生的事实,甚至在应用程序执行期间,使用内存数据结构将是无用的,因为它们最终会与文件夹的真实内容不同步如果操作系统决定自己清理文件.在这种情况下,我的缓存系统必须效率较低,因为每次应用程序请求新文件时,它都会被迫在文件系统中直接检查缓存文件夹的内容.
换句话说,我只是想知道我是否可以假设操作系统的内容不会被我的应用程序同时更改,因为这可能会大大改变我的缓存实现.