当前位置: 首页 > 软件库 > 程序开发 > 缓存系统 >

RxCache

用于 Android 和 Java 的响应式缓存库
授权协议 Apache 2.0
开发语言 Java
所属分类 程序开发、 缓存系统
软件类型 开源软件
地区 不详
投 递 者 昌学
操作系统 Android
开源组织
适用人群 未知
 软件概览

RxCache 是一个用于 Android 和 Java 的响应式缓存库,可将缓存需求转换为一个接口进行配置。

RxCache 的灵感来源于 Retrofit ,目标是像 Picasso 缓存图片一样,毫不费力缓存数据对象。

当提供一个 observable、 single、 maybe 或 flowable 这些由耗时操作提供的数据时,RxCache 会确定是否需要 subscribe ,或覆盖先前缓存的数据。此决定是基于 RxCache 的 Providers 进行配置的。

架构图:


Usage

使用尽可能多的方法定义 interface 来创建 Provider 以缓存数据:

interface Providers {

        @ProviderKey("mocks")
        Observable<List<Mock>> getMocks(Observable<List<Mock>> oMocks);
    
        @ProviderKey("mocks-5-minute-ttl")
        @LifeCache(duration = 5, timeUnit = TimeUnit.MINUTES)
        Observable<List<Mock>> getMocksWith5MinutesLifeTime(Observable<List<Mock>> oMocks);
    
        @ProviderKey("mocks-evict-provider")
        Observable<List<Mock>> getMocksEvictProvider(Observable<List<Mock>> oMocks, EvictProvider evictProvider);
    
        @ProviderKey("mocks-paginate")
        Observable<List<Mock>> getMocksPaginate(Observable<List<Mock>> oMocks, DynamicKey page);
    
        @ProviderKey("mocks-paginate-evict-per-page")
        Observable<List<Mock>> getMocksPaginateEvictingPerPage(Observable<List<Mock>> oMocks, DynamicKey page, EvictDynamicKey evictPage);
        
        @ProviderKey("mocks-paginate-evict-per-filter")
        Observable<List<Mock>> getMocksPaginateWithFiltersEvictingPerFilter(Observable<List<Mock>> oMocks, DynamicKeyGroup filterPage, EvictDynamicKey evictFilter);
}
  • RxCache要点解读(四) RxCache好难呀。 1.导入依赖包 添加JitPack仓库在你的build.gradle文件 (项目根目录下): allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } } 添加依赖库,在项目模块中 dependencie

  • RxCache官方文档翻译 本文翻译自:RxCache官方GitHub地址 版本号:RxCache 1.8.1-2.x 欢迎转载,转发请注明文章来源 http://write.blog.csdn.net/mdeditor#!postId=78056742 @却把清梅嗅 中文文档已发布GitHub,详情请点击 RxCache基本使用方法、Demo请参阅笔者的相关文章: Android RxCache

  • RxCache官方文档翻译 本文翻译自:RxCache官方GitHub地址 版本号:RxCache 1.8.1-2.x RxCache基本使用方法、Demo请参阅笔者的相关文章: 概述 本库的 目标 很简单: 就像Picasso 缓存您的图片一样,毫不费力缓存您的数据对象。 每个Android Application都是一个客户端应用程序,这意味着仅仅为缓存数据创建数据库并进行维护毫无意义。 事实

  • 确认需求 打开App,请求数据时先检查缓存数据是否需要迁移,如果有缓存数据升级,那么就删除原有的缓存数据。 如果有缓存数据,判断数据是否过期,如果过期则网络请求,如果没有过期,则返回缓存数据。 如果网络请求成功,返回数据,同时更新缓存信息 如果网络请求失败,返回缓存信息。 如果网络失败,缓存为空,则返回空数据或者抛出异常信息 改动点 每次读取数据之后都会处理过期数据,不满足要求4 先读缓存,再网络

  • 请求网络数据是在安卓开发中使用最频繁的一个功能,网络请求的体验决定了用户对整个APP的感觉,因此合理地使用缓存对网络请求的数据进行处理极为重要。合理的进行缓存和网络请求,可以为APP带来更优秀的体验。图片的缓存有Picasso、Glide、Fresco等非常著名的框架,它们极为成熟并且使用广泛,程序员应该做的是使用轮子而非重复造轮子。但对于网络数据的缓存,大多都是自用自封装,每个人都需要进行繁琐的

  • 续接上一篇,来讲一下ProcessorProvidersBehaviour的process方法,代码如下: @Override public <T> Observable<T> process(final io.rx_cache2.ConfigProvider configProvider) { return Observable.defer(new Callable<Observab

  • 前言 我为什么使用这个库? 事实上Android开发中缓存功能的实现选择有很多种,File缓存,SP缓存,或者数据库缓存,当然还有一些简单的库/工具类,比如github上的这个: 【ASimpleCache】:a simple cache for android and java 但是都不是很好用(虽然可能学习成本比较低,因为它使用起来相对简单),我可能需要很多的静态常量来作为key存储缓存数据v

  • 场景 一个需求,构建UI数据时,需要组装数据,我们将数据分为两类,一类为配置数据、一类为UI框架数据。框架数据依赖配置数据进行数据组装,配置数据特性为长期保持不变。针对这个特性,我们可以将配置数据json保存到本地,设置超期时间,不用频繁的进行网络访问。 对此,我们进行RxCache库的使用,该库通过注解的设置可以网络数据保存到制定文件目录下。具体的使用方法可以参考《Android RxCache

  • RxCache创建缓存接口的核心代码是下面这一段 mCacheProviders = new RxCache.Builder() .persistence(cacheDirectory,new GsonSpeaker()) .using(CacheProviders.class); 创建RxCache的内部类Builder。这里可以选

  • 以简单快捷的方式实现Android app实现网络数据缓存并不是一件容易的事 就像Sina微博Android客户端实现数据缓存离线阅读微博那样 这是一个基于 Retrofit的Reactive缓存库,可用于Android 和Java。能够将你的缓存成需求转成一个接口 配置 添加JitPack仓库在你的build.gradle文件 (项目根目录下): allprojects { reposi

  • RxCache RxCache 是一款支持 Java 和 Android 的 Local Cache 。目前,支持堆内存、堆外内存(off-heap memory)、磁盘缓存。 github地址:github.com/fengzhizi71… 堆外内存(off-heap memory) 对象可以存储在 堆内存、堆外内存、磁盘缓存甚至是分布式缓存。 在 Java 中,与堆外内存相对的是堆内存。堆内存

  • 1 相关依赖: compile "com.github.VictorAlbertos.RxCache:runtime:1.8.3-2.x" compile "io.reactivex.rxjava2:rxjava:2.1.6" implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' compile 'com.git

  • 一. ReentrantReadWriteLock读写锁 Lock 是相当于 synchronized 更面向对象的同步方式,ReentrantLock 是 Lock 的实现。 本文要介绍的 ReentrantReadWriteLock 跟 ReentrantLock 并没有直接的关系,因为它们之间没有继承和实现的关系。 但是 ReentrantReadWriteLock 拥有读锁(ReadLoc

 相关资料
  • 本文向大家介绍浅谈Android轻量级的数据缓存框架RxCache,包括了浅谈Android轻量级的数据缓存框架RxCache的使用技巧和注意事项,需要的朋友参考一下 请求网络数据是在安卓开发中使用最频繁的一个功能,网络请求的体验决定了用户对整个APP的感觉,因此合理地使用缓存对网络请求的数据进行处理极为重要。合理的进行缓存和网络请求,可以为APP带来更优秀的体验。图片的缓存有Picasso、Gl

  • 问题内容: 我想确保浏览器永远不会缓存服务器的响应,这样即使发出两个相同的请求(相隔一纳秒),也始终会与服务器联系。这是实现此目标的正确方法: 谢谢唐 问题答案: 不,那不是正确的方法。这是正确的方法: 您可能会看到其他人在建议其他条目/属性,但是当至少提及上述内容时,它们是完全不相关的。 更改后,请不要忘记在测试之前清除浏览器缓存。 也可以看看: 网站站长缓存教程

  • 问题内容: 我使用一些GeoIP服务在页面上放置国家/地区标记,具体取决于国家/地区IP。我需要为网站上的所有页面缓存JSON响应。 将此代码放入: 是否可以将其缓存?-似乎不起作用。 或者使用HTML5 localStorage可能更好,但是我不确定该怎么做。 我也尝试了JSONCache插件,但是对我来说不起作用。 问题答案: 您可以这样使用localStorage: 演示 因此,在您的特定情

  • 我们看到一些行为,我们没有在OkHttp中缓存响应,最终每次都访问服务器。但是,响应在将来会有一个过期时间,所以理想情况下它将被缓存。 从我对CacheStrategy的观察来看,问题是它将日期+年龄加在一起,以查看它是否超过了过期时间。在本例中,,因此它最终不会被添加到缓存中。 因此,我认为理想情况下,要么响应日期等于last-modified(在本例中,时间为2021年1月16日00:40:3

  • 本文向大家介绍基于Android RxCache使用方法详解,包括了基于Android RxCache使用方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 我为什么使用这个库? 事实上Android开发中缓存功能的实现选择有很多种,File缓存,SP缓存,或者数据库缓存,当然还有一些简单的库/工具类,比如github上的这个: 【ASimpleCache】:a simple cache fo

  • 问题内容: 我正在使用以下代码从服务器提取简单的JSON提要: 有用。但是,在更改JSON文件并验证是否在浏览器中进行了更改之后,当我再次运行该应用程序时,仍会得到先前的响应。 看来AFNetworking正在某种程度上缓存旧的响应。我不要这种行为。我想下载当前的提要。是否需要某种类型的设置或参数来关闭缓存? 问题答案: 简而言之,只需定义您的AFNetworking经理即可: 请享用!

  • 我要和服务人员一起建立我的preactjs网站。 使用Sw precache插件 我只是查看它存储在缓存存储中的缓存项,我期望的条目都在那里,但它们有一个空响应。 我与服务人员检查了其他一些网站,并注意到他们的条目有“OK”的响应。 只是想知道是什么触发了缓存响应说“OK”而不是空白。 我发现的另一个例子是,有些人返回OK,其他人返回空白

  • 我调用服务器数据通过使用ajax在index.html.它是完美的获取这些数据。现在,我正在和服务人员一起工作。我可以缓存所有的静态资产(图像,js,css),并在Chrome开发工具的应用程序选项卡中的缓存存储中检查这些缓存的资产。我可以在网络选项卡中看到这些资产也被缓存(磁盘缓存)。 现在,我想使用ServiceWorker缓存这些ajax响应(图像文件数组)。在“网络”选项卡中,我可以看到它