ASimpleCache缓存框架之简单使用

ASimpleCache是一款专为Android设计的轻量级缓存框架,仅包含一个Java文件,支持多种数据类型缓存,如字符串、JSON对象、Bitmap等。本文详细介绍其使用方法,包括缓存配置、数据存储与读取等。

http://blog.csdn.net/dayongxin/article/details/47011683

0简述

简述为ASimpleCache官网( 点击打开链接)对其介绍,ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。

0.1ASimpleCache可以缓存什么

普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 byte数据。

0.2ASimpleCache有什么特色

(1)轻:轻到只有一个JAVA文件;
(2)可配置:可以配置缓存路径,缓存大小,缓存数量等;
(3)可以设置缓存超时时间,缓存超时自动失效,并被删除;
(4)支持多进程。

0.3ASimpleCache在Android中的使用场景

(1)替换SharePreference当做配置文件;
(2)可以缓存网络请求数据,可以作为app数据( 字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 byte数据)的缓存工具;
(3)可以作为预加载数据的缓存库;

1ASimpleCache的使用

ASimpleCache使用起来太简单了,尤其是使用过SharePreference。

1.1缓存字符串

首先,创建 ASimpleCache对象:
[java]  view plain  copy
  1. //缓存  
  2. private ACache mACache;  
  3.   
  4. mACache = ACache.get(this);  
其次,存储数据:
[java]  view plain  copy
  1. mACache.put(Constants.KEY_STRING, result);  
还有,获取缓存数据:
[java]  view plain  copy
  1. String result = mACache.getAsString(Constants.KEY_STRING);  
最后,清除缓存:
[java]  view plain  copy
  1. mACache.remove(Constants.KEY_STRING);  

1.2缓存JsonObject

首先,创建ASimpleCache对象:
[java]  view plain  copy
  1. //缓存  
  2. private ACache mACache;  
  3.   
  4. mACache = ACache.get(this);  
其次,存储数据:
[java]  view plain  copy
  1. mACache.put(Constants.KEY_JSONOBJECT, jsonObject);  
还有,获取缓存数据:
[java]  view plain  copy
  1. JSONObject result = mACache.getAsJSONObject(Constants.KEY_JSONOBJECT);  
最后,清除缓存:
[java]  view plain  copy
  1. mACache.remove(Constants.KEY_JSONOBJECT);  

1.3缓存JsonArray

首先,创建ASimpleCache对象:
[java]  view plain  copy
  1. //缓存  
  2. private ACache mACache;  
  3.   
  4. mACache = ACache.get(this);  
其次,存储数据:
[java]  view plain  copy
  1. mACache.put(Constants.KEY_JSONARRAY, jsonArray);  
还有,获取缓存数据:
[java]  view plain  copy
  1. JSONArray result = mACache.getAsJSONArray(Constants.KEY_JSONARRAY);  
最后,清除缓存:
[java]  view plain  copy
  1. mACache.remove(Constants.KEY_JSONARRAY);  

1.4缓存Bitmap

首先,创建ASimpleCache对象:
[java]  view plain  copy
  1. //缓存  
  2. private ACache mACache;  
  3.   
  4. mACache = ACache.get(this);  
其次,存储数据:
[java]  view plain  copy
  1. Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);  
  2.         mACache.put(Constants.KEY_BITMAP, bitmap);  
还有,获取缓存数据:
[java]  view plain  copy
  1. Bitmap bitmap = mACache.getAsBitmap(Constants.KEY_BITMAP);  
最后,清除缓存:
[java]  view plain  copy
  1. mACache.remove(Constants.KEY_BITMAP);  

1.5缓存Drawable

首先,创建ASimpleCache对象:
[java]  view plain  copy
  1. //缓存  
  2. private ACache mACache;  
  3.   
  4. mACache = ACache.get(this);  
其次,存储数据:
[java]  view plain  copy
  1. Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);  
  2.         mACache.put(Constants.KEY_DRAWABLE, drawable);  
还有,获取缓存数据:
[java]  view plain  copy
  1. Drawable bitmap = mACache.getAsDrawable(Constants.KEY_DRAWABLE);  
最后,清除缓存:
[java]  view plain  copy
  1. mACache.remove(Constants.KEY_DRAWABLE);  

1.6缓存序列化的java对象

首先,创建ASimpleCache对象:
[java]  view plain  copy
  1. //缓存  
  2. private ACache mACache;  
  3.   
  4. mACache = ACache.get(this);  
其次,存储数据:
[java]  view plain  copy
  1. mACache.put(Constants.KEY_JAVA_BEAN, mWeather);  
还有,获取缓存数据:
[java]  view plain  copy
  1. Weather result = (Weather) mACache.getAsObject(Constants.KEY_JAVA_BEAN);  
最后,清除缓存:
[java]  view plain  copy
  1. mACache.remove(Constants.KEY_JAVA_BEAN);  

1.7缓存byte数据

首先,创建ASimpleCache对象:
[java]  view plain  copy
  1. private ACache mACache;  
  2.   
  3. mACache = ACache.get(this);  
其次,存储数据:
[java]  view plain  copy
  1. private void saveByte() {  
  2.         OutputStream ostream = null;  
  3.         try {  
  4.             ostream = mACache.put(Constants.KEY_BYTE);  
  5.         } catch (FileNotFoundException e) {  
  6.             e.printStackTrace();  
  7.         }  
  8.         if (ostream == null) {  
  9.             ToastUtil.simpleToast(this"Open stream error!");  
  10.             return;  
  11.         }  
  12.         try {  
  13.             URL u = new URL(Constants.downloadUrl);  
  14.             HttpURLConnection conn = (HttpURLConnection) u.openConnection();  
  15.             conn.connect();  
  16.             InputStream stream = conn.getInputStream();  
  17.             byte[] buff = new byte[1024];  
  18.             int counter;  
  19.             while ((counter = stream.read(buff)) > 0) {  
  20.                 ostream.write(buff, 0, counter);  
  21.             }  
  22.         } catch (IOException e) {  
  23.             e.printStackTrace();  
  24.         } finally {  
  25.             try {  
  26.                 // cache update  
  27.                 ostream.close();  
  28.             } catch (IOException e) {  
  29.                 e.printStackTrace();  
  30.             }  
  31.             runOnUiThread(new Runnable() {  
  32.                 @Override  
  33.                 public void run() {  
  34.                     showTv.setText("done...");  
  35.                 }  
  36.             });  
  37.         }  
  38.     }  
还有,获取缓存数据:
[java]  view plain  copy
  1. private void getsByte() {  
  2.         InputStream stream = null;  
  3.         try {  
  4.             stream = mACache.get(Constants.KEY_BYTE);  
  5.         } catch (FileNotFoundException e) {  
  6.             e.printStackTrace();  
  7.         }  
  8.         if (stream == null) {  
  9.             ToastUtil.simpleToast(this"Bitmap cache is null ...");  
  10.             showTv.setText("file not found");  
  11.             return;  
  12.         }  
  13.         try {  
  14.             showTv.setText("file size: " + stream.available());  
  15.         } catch (IOException e) {  
  16.             showTv.setText("error " + e.getMessage());  
  17.         }  
  18.     }  
最后,清除缓存:
[java]  view plain  copy
  1. mACache.remove(Constants.KEY_BYTE);  
渭河流域位于中国黄河中游地区,是黄河的重要一级支流流域,地理范围主要涵盖陕西省中部、甘肃东部和宁夏部分地区。该流域自西向东延伸,总长约818公里,流域面积广阔,人口密集,是我国重要的农业与工业带,同时也是西北地区经济、文化与生态发展的核心区域之一。渭河流域水系发育完善,除干流外,还包括泾河、洛河、沣河、滈河等多条支流,构成了完整的河网体系,对黄河流域的水资源调配与生态安全具有重要意义。 本数据集提供了渭河流域矢量边界及河流分布的标准化shp文件,包含以下文件: (1)可编辑MXD文件:可直接在 ArcGIS 中打开,用户可进行二次编辑、专题制图及空间分析,方便科研、教学与管理应用。 (2)标准SHP文件:包含渭河流域边界矢量数据以及干流与主要支流的矢量化河流线条,属性表中附带河流名称、流域隶属等信息,便于查询与叠加分析。 (3)标准成图TIF文件:输出高清、规范的地图成果,能够直观展示渭河流域整体边界与内部河流分布格局,可用于汇报、展示与出版。 本资源可广泛应用于流域水资源管理、生态环境保护、土地利用研究、洪涝灾害评估等领域,同时也能为流域综合治理、生态修复规划、水文模拟与地理建模提供基础支撑。通过与其他数据(如DEM、土地覆盖、气象数据)叠加使用,还能开展更加深入的多源数据分析,为黄河流域高质量发展与区域生态安全提供科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值