当前位置: 首页 > 面试题库 >

Android对象缓存

邓星光
2023-03-14
问题内容

寻找一个适用于Android(SDK 7+)类的简单开源非copyleft缓存

目的主要是Bitmap异步存储所获取的s(因此,我不需要将此功能包含在缓存类中)。

我为此目的使用了weakList,这自然是一个糟糕的解决方案,使用Guava缓存会更好一些,但仍然不够好。

最好是,缓存能够存储任何可序列化的对象Object,而不仅仅是a Bitmap,并且当对象添加到缓存中时,我可以轻松清除对象中使用的某些标记。

最好的选择是获取文件系统缓存,例如包装sqlite数据库。如果缓存将被清除,那就太好了Settings >Manage Application > Clear Cache


问题答案:

上面建议的普通LruCache是​​内存中缓存。从您的问题看来,您正在寻找磁盘缓存解决方案。

阅读缓存位图android培训文档的磁盘缓存。

然后看看以下线程上讨论的DiskLruCache实现: 在android4.0中使用DiskLruCache不提供openCache方法

您可以在GitHub上获取DiskLruCache源。



 类似资料:
  • 有时缓存代码中的单个对象会很有用,比如有些需要很大开销获取的数据或者一些结果集不怎么变化的数据库查询。你可以使用一些缓存软件将这些数据存放在内存中以便下次高速获取。如果你获得数据后把他们存起来,下次请求直接从缓存里面获取数据,在减少数据库负载的同时能极大提高性能。 许多流行的字节码缓存方案也能缓存定制化的数据,所以更有理由好好使用它们了。APCu、XCache 以及 WinCache 都提供了 A

  • 我读到“因此当使用Integer.ValueOf创建对象或直接为-128到127范围内的整数赋值时,将返回相同的对象。” 但这里的输出是“not” 有人能解释一下吗?

  • 我正在用本机线程(pthreads)编写一个C应用程序,我需要调用一些Java方法等。我不确定哪些JNI对象可以安全地缓存在我的C对象中,以便以后使用,可能/可能由另一个线程使用。我确实知道,如果我的类的方法可以被不同的线程调用,我不能缓存JNIEnv,而是缓存JavaVM并通过附加当前线程获得JNIEnv。但这是否也意味着我无法缓存从JNIEnv获得的任何内容?我需要使用通过以下JNIEnv方法

  • 我有以下代码: 现在我使我的存储库成为反应性的。我的问题是如何使缓存存储现在单声道和通量。 我遇到了以下Mono和Flux缓存,但这只是为了查找,因为我也是反应式编程的初学者。

  • 问题内容: 我想将-object 保存到Android存储中的某个位置以快速检索并在其中显示数据。 这可能吗?如果可以,那么SQLite或外部存储适合哪种技术? 问题答案: 例。 并从活动中致电 不要忘记在清单文件中使用write_external_storage权限。

  • 在Android上,我试图对相机帧执行一些OpenGL处理,在相机预览中显示这些帧,然后将这些帧编码为视频文件。我试图用OpenGL做这件事,使用GLSurfaceView和GLSurfaceView。渲染器和FFMPEG用于视频编码。 我已经使用着色器成功地处理了图像帧。现在我需要将处理后的帧编码为视频。这是一个表面视图。渲染器提供onDrawFrame(GL10..)方法正是在这种方法中,我尝