在Android应用程序中缓存大量文本和音频数据的方法

时间:2010-07-13 14:50:00

标签: android caching

我们应该在我们的应用程序中缓存文本和音频数据 直到设备启动或最多两天,以发生者为准 早。要了解要缓存的数据,请注意我们是 存储大约200个文本标题,每个文本标题包含大约10个字段 长度为30个字节,大约有20个声音文件,每个长约一分钟。

我们通过解析XML获取文本数据然后保留它们 在ArrayLists中。声音文件直接写在应用程序内 使用文件I / O(而不是SD卡或应用程序缓存目录)存储。

此应用程序将在运行Android 1.5或更高版本的设备上运行。

我理解,如果我错了,请纠正我,我们可以缓存 SDcard或应用程序内部或内部的文件 应用程序缓存目录。

关于如何进行缓存,我有以下问题?

  1. 我们是否应该在应用程序SQLite数据库中保留文本数据 或者我们应该使用Java Serialization机制并持久化List 对象(构成Serializable组件)里面的 应用
  2. 我们应该在哪里写文本数据/声音文件 - 里面 应用程序,缓存还是SD卡?
  3. 可以将所有这些保存到应用程序缓存目录中吗?多大 缓存目录可以增长吗?
  4. 我们可以指定缓存所在的Android Runtime的时间跨度 保持?或者我们必须手动执行此操作吗?
  5. 请提供帮助和建议。

    感谢。 注意:还提出了这个问题here

1 个答案:

答案 0 :(得分:2)

  1. SQLite数据库。这样您就可以节省内存,并且可以使用CursorAdapter s。
  2. 将它们放在SD上,内部存储器非常有限
  3. 我完全避免使用app cache目录,#2
  4. 您必须自己将文件修改时间戳与当前时间戳进行比较。我在Application的{​​{1}}。
  5. 中执行此操作

    我正在使用

    • 自定义onCreate()接收器,用于在卡安装上初始化缓存目录
    • 用于缓存读取/写入/清理的帮助程序类,用于将android.intent.action.BOOT_COMPLETED保存/恢复为PNG的方法,为缓存的文件名创建MD5哈希。