[转] 大神真面目
稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!
编辑推荐:
做Android应用开发的同学们相信对“缓存”这个词不陌生,缓存可能有多方面的概念,这里大概列举下程序开发的缓存大概有哪些:
1.服务端控制缓存
如volley请求库,便是通过服务端的“Cache-Control”和“max-age”来告诉客户端有没有缓存以及缓存的时间,也是推荐的使用方式,但是需要服务端配合,比较灵活。
2.客户端直接控制缓存
有些时候不需要服务端来支持的话,客户端可以直接做一层缓存,思路就是请求之后把数据缓存在本地,最常见的是直接以文件缓存在本地就好了,当然你可以缓存在本地的sqlite,以sqlite文件的形式缓存数据处理更灵活点,然后客户端自己处理缓存的时间,过期则直接清除数据。对于一些不太经常变化的页面,采用这种缓存可以减少客户端流量,同时减少服务器并发量。
对于一些新闻类或者timeline这种,数据变化是非常频繁的,针对这种情况可能就不太适合设置缓存时间,这种情况可以考虑让页面每次进来都会自动刷新一次以获取最新数据,如果网络不好或者断开时可以直接读取本地缓存,增加用户体验。当然如果想要更复杂的处理可以配合时间来判断当前页面要不要刷新。
今天就介绍一种简易的缓存框架,使用起来非常简单。
ASimpleCache
ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。
它可以缓存什么东西?
普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 byte数据。
如何使用 ASimpleCache?
1
2
3
4
|
ACache mCache = ACache.get( this );
mCache.put( "test_key1" , "test value" );
mCache.put( "test_key2" , "test value" , 10); //保存10秒,如果超过10秒去获取这个key,将为null
mCache.put( "test_key3" , "test value" , 2 * ACache.TIME_DAY); //保存两天,如果超过两天去获取这个key,将为null
|
获取数据
1
2
|
ACache mCache = ACache.get( this );
String value = mCache.getAsString( "test_key1" );
|
最后此项目的开源地址: ASimpleCache
Android轻量缓存框架--ASimpleCache的更多相关文章
-
【Android开源项目分析】android轻量级开源缓存框架——ASimpleCache(ACache)源代码分析
转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46379055 ASimpleCache框架源代码链接 https://github ...
-
使用ConcurrentDictionary实现轻量缓存
项目中需要用到一个轻量缓存,存储重复使用的数据.在设计中需要考虑:1.做成通用组件,为未来其他模块方法操作结果做准备.2.缓存模块需要接口化,为未来替换使用外部缓存做准备.3.使用默认缓存过期时间,单 ...
-
Android轻量级的开源缓存框架ASimpleCache
点击查看原文 先上方法调用,写最经常使用的.其它不一一写 保存数据: ACache mACache=ACache.get(this); mACache.put("数据名称", js ...
-
Cardinal:一个用于移动项目开发的轻量 CSS 框架
Cardinal 是一个适用于移动项目的 CSS 框架,包含很多有用的默认样式.矢量字体.可重用的模块以及一个简单的响应式模块系统.Cardinal 提供了一种在多种移动设备上实现可伸缩的字体和布局的 ...
-
Android图片载入缓存框架Glide
Glide开源框架是Google推荐的图片载入和缓框架,其在Github上的开源地址是:https://github.com/bumptech/glide 当然一个Google推荐的框架肯定就是Vol ...
-
Spring Boot &; Cloud 轻量替代框架 Solon 1.3.37 发布
Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更*的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...
-
Python轻量Web框架Flask使用
http://blog.csdn.net/jacman/article/details/49098819 目录(?)[+] Flask安装 Python开发工具EclipsePyDev准备 Flask ...
-
轻量jquery框架之--组件交互基础设计
概要 组件交互基础,即考虑在JQUERY对象下($)下扩展所有组件都需要用到的通用api,如ajax入口.对表单的操作.html片段加载.通用的配合datagrid通用的curd客户端对象等. 扩展a ...
-
基于.netcore 开发的轻量Rpc框架
Rpc原理详解 博客上已经有人解释的很详细了,我就不在解释了.传送门 项目简介 项目是依赖于.net core2.0版本,内部都是依靠IOC来实现的,方便做自定义扩展.底层的通信是采用socket,s ...
随机推荐
-
Robotlegs2 学习笔记 -- SwiftSuspenders 2.x (2)
Swiftsuspenders2简介 Swiftsuspenders2是一个基于元数据(metadata)的IOC(控制反转,inversion of control)的AS3的解决方案.(对于元数据 ...
-
about the pageload and page init event
Page_Init The Page_Init event is the first to occur when an ASP.NET page is executed. This is where ...
-
$q -- AngularJS中的服务
此 承诺/延迟(promise/deferred)实现 的灵感来自于 Kris Kowal's QCommonJS Promise建议文档 将承诺(promise) 作为和 异步执行操作(action ...
-
插件GsonFormat快速实现JavaBean
转自:http://blog.csdn.net/dakaring/article/details/46300963#comments 安装方法 方法一: 1.Android studio File-& ...
-
Gradle+Jetty实现静态资源的热部署
本文转自http://www.cnblogs.com/huang0925/p/3302487.html --------------------------------------- 通过Gradle ...
-
path sum i
Problem Statement: Path sum i Given a binary tree and a sum, determine if the tree has a root-to-le ...
-
Scala开发入门指南
作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.下载Scala 当前Scala的最新版本为2.10.2版,Windows有两种发布包: 1)Windo ...
-
HDU 1208 Pascal's Travels 经典 跳格子的方案数 (dp或者记忆化搜索)
Pascal's Travels Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
-
react native android模拟机调试
模拟机调试首先要确认你的环境变量的path中是不是有adb的路径,adb一般在android的adk目录下的platform-tools下,android目录默认是在c盘user/administra ...
-
[转] Ext Grid (ExtJs)上的单击以及双击事件
例1: 1.双击 var cb = new Ext.grid.RowSelectionModel({ singleSelect:true //如果值是false,表明可以选择多行:否则只能选择一行 } ...