Android中的效率数据存储

时间:2012-11-02 11:45:16

标签: android database caching storage

我需要存储来自网络的本地化数据,该数据来自JSON字符串。到目前为止,我有一个DataAdapter,它期望JSONObject中的数据并收集数据以进行可视化。但现在我根本没有缓存。

我想存储上次调用的数据,包括Etag以观察更改。因此,我想首先显示缓存的数据,并在网络上查看是否存在一些更改,并在可用的范围内显示它们。我看到有三种选择:

我不确定哪种方式效率最高......我还想存储/缓存图像。顺便说一句,我还希望数据加密到目前为止,存储系统不能直接在闪存上写入任何数据,等待几秒后再出现另一个数据绑定。而且我也想省电。

哪种能源效率最高的存储数据方式? 哪种方法可以存储数据?

2 个答案:

答案 0 :(得分:0)

对于小型网络服务请求,您可以使用ResponseCache。处理较大的对象时,您可能希望创建自己的缓存。

你也可以:

  • 序列化数据并将其保存到本地文件
  • 对于基本数据,如果要存储较长时间,可将其保存在SharedPreferences
  • 如果您有大量数据并且需要对其执行关系操作,请使用sqlite。

对于图像缓存,请参阅:

Android image caching

Android: Image cache strategy and memory cache size

答案 1 :(得分:0)

我的解决方案是扩展LruCache我覆盖sizeOf函数以获得实际大小。

对于Drawable我使用此代码:

if(rawdata  instanceof BitmapDrawable) {
    Bitmap bmp = ((BitmapDrawable)rawdata).getBitmap();
    mem += bmp.getRowBytes() * bmp.getHeight();
}