【问题标题】:How does getExternalCacheDir() work on Android?getExternalCacheDir() 如何在 Android 上工作?
【发布时间】:2012-11-23 18:07:54
【问题描述】:

据我了解,我们将经常访问的对象缓存在比普通磁盘读取更容易访问的内存段中。

getExternalCacheDir(),而不是 getCacheDir() 指向外部文件系统 - 在我看来,这似乎是一个普通的 getExternalFilesDir()

Android 如何优化对 ExternalCacheDir 的访问?是不是类似于 Linux 上的“交换”空间?

【问题讨论】:

  • 请记住,您使用这两种方法中的任何一种存储的数据都可以被具有 READ_EXTERNAL_STORAGE 权限的其他应用程序完全访问。您应该假设存储在此处的任何数据都可以被用户设备上的其他应用程序读取和修改(甚至可能以恶意方式)。要获得更安全的数据存储,请改用 getDir() 或 getCacheDir()。

标签: android file caching


【解决方案1】:

getExternalCacheDir()getExternalFilesDir() 是两个不同的目录。

不同的是,第一个仅用于临时文件或缓存文件,可以被系统或用户删除(通过设置相应按钮)以重新获得空间。

第二个用于永久文件。无论如何,您必须考虑有关getExternalCacheDir()返回的目录的文档的考虑。

【讨论】:

  • 我基本上想知道外部文件系统上的缓存如何提供更快的访问。这个答案没有帮助。
  • 缓存一词在这些方法中的旧含义与计算机无关,并不表示这些目录提供更快的访问(正如您所说,它是具有相同访问时间的相同文件系统)但表示这些目录有些隐藏,对于存储应用程序可能需要的文件很有用。
  • 我认为这里对“经常访问的对象”有些混淆。您不会使用 getExternalCacheDir() 目录来缓存 Android 设备上已有的项目。但是,您将使用它来缓存从远程资源(例如服务器)传输的项目。示例:浏览器缓存,您可以在其中本地缓存 X 个最近使用的文件。缓存目录在写入性能方面与任何其他文件系统目录没有什么不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2013-11-27
  • 2014-10-04
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
相关资源
最近更新 更多