【问题标题】:Android and data storage space?Android和数据存储空间?
【发布时间】:2010-12-05 13:10:33
【问题描述】:

我想知道我在 android 中的应用程序可以使用多少数据存储空间?

我需要缓存大量文件,并且我正在考虑将其存储在 sharedpreferences 中,这样如果应用程序被卸载,它就会被删除。毕竟它只是很多缓存文件。我想我也可以使用 SDCard,但我无法控制用户在应用程序之外执行的操作...

那么,我的应用程序在存储文件时可以从 SharedPreferences 中提取多少 MB?

【问题讨论】:

    标签: android diskspace


    【解决方案1】:

    如果您打算存储 MB 的数据,请尝试使用 sdcard 以避免填充手机内置的通常有限的存储空间,尤其是在 G1 上。

    如果你确实在手机上存储数据,每个应用程序都有自己的存储区域,卸载应用程序时也会删除。

    http://d.android.com/reference/android/content/Context.html#getDir(java.lang.String, int)

    对于缓存文件,您可以使用 文件缓存目录 = getCacheDir(); 它返回文件系统上应用程序特定缓存目录的路径。当设备存储空间不足时,这些文件将首先被删除。

    更多信息请见http://d.android.com/reference/android/content/Context.html#getCacheDir()

    【讨论】:

    • 我最终将下载的 jpg 存储在 sdcard 上……但我可能会考虑在我的下一个版本中使用 getCacheDir()。谢谢
    【解决方案2】:

    什么您要实现的缓存的目的是什么?

    如果您想避免多次从 Internet 下载文件,SDCard 或SQLiteDatabase 应该是不错的选择,具体取决于您正在使用的文件类型。 如果您想将文件保留在内存中(例如,您想在堆中保留一些解码的位图),最好实现自己的 Cache 类。

    SharedPreferences 只能用于一些基本类型 (boolean, int, String, long, float) - 所以Parcelable 不能放在您应用的首选项中。

    这会给在那里保存文件带来问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      • 2013-09-04
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      相关资源
      最近更新 更多