Android和数据存储空间?
Posted
技术标签:
【中文标题】Android和数据存储空间?【英文标题】:Android and data storage space? 【发布时间】:2010-12-05 13:10:33 【问题描述】:我想知道我在 android 中的应用程序可以使用多少数据存储空间?
我需要缓存大量文件,并且我正在考虑将其存储在 sharedpreferences 中,这样如果应用程序被卸载,它就会被删除。毕竟它只是很多缓存文件。我想我也可以使用 SDCard,但我无法控制用户在应用程序之外执行的操作...
那么,我的应用程序在存储文件时可以从 SharedPreferences 中提取多少 MB?
【问题讨论】:
【参考方案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
不能放在您应用的首选项中。
这会给在那里保存文件带来问题。
【讨论】:
以上是关于Android和数据存储空间?的主要内容,如果未能解决你的问题,请参考以下文章
Android 文件管理分区存储 ( 修改与删除图片文件 )
Android 文件管理分区存储 ( 修改与删除图片文件 )
Android 文件管理分区存储 ( 分区存储机制 和 文件索引数据 )