文档章节

Android客户端缓存机制(文字缓存跟多媒体文件缓存)

JayPark不作死
 JayPark不作死
发布于 2014/10/13 11:08
字数 1057
阅读 802
收藏 12

行业解决方案、产品招募中!想赚钱就来传!>>>

Android客户端缓存机制(文字缓存和多媒体文件缓存)

客户端缓存机制是android应用开发中非常重要的一项工作,使用缓存机制不仅仅可以为用户节省3G流量,同时在用户体验方面也是非常好的选择.

缓存机制分为两部分,一部分是文字缓存,另一部分是多媒体文件缓存.

 缓存文件保存策略:

1.       文字缓存:

文字缓存应该分为两种,一种是更新比较频繁的区域,一种是更新不频繁的区域.

根据两者的更新频率区分它们的过期时间.

更新比较频繁的区域,它的缓存过期时间应该为应用程序内(即应用程序从打开到关闭的这段时间).这种情况会有专门的缓存文件夹存放该类缓存文件,以及专门的缓存数据库表存放信息.每次应用程序启动的时候都会先将该类数据清空.

 另一种很少更新的区域,它的缓存不设置过期时间,而是提供一个按钮或者Menu可以让用户选择手动更新(如我的好友列表,我的订阅,我的分享.等等….)

 (1)通常情况下,我们与服务器交互都是采用JSON格式获取数据的,获取的JSON数据仅仅是一段字符串,我们可以考虑将这些字符串使用文件流写入一个TXT,保存到

SD卡中,在数据库添加该数据的记录.添加数据库记录时,提供两个关键字段,一个是

请求的URL,另一个则是本地保存后的文件地址.日后每次向服务器发起请求之前都会根据URL在数据库中检索.

该方法好处:降低系统数据库数据量,不会出现数据库满了的现象.

缺点:IO操作频繁,有时代码书写有误会造成内存泄露等状况.

 (2)将JSON数据解析后装入List<Map>对象中,然后遍历List,将数据统统写入相应的数据库表结构中,以后每次向服务器发起请求之前可以先在数据库中检索,如果有直接返回.

该方法好处:如果本地存在文字缓存,那么读取缓存速度快.

缺点:增加数据库数据量.

 2.       多媒体文件缓存

(1)    图片缓存

图片的缓存可以根据当前日期,时间为名字缓存到SD卡中的指定图片缓存目录,

同时数据库中做相应记录,记录办法可以采用两个关键字段控制,一个字段是该图片的URL地址,另一个字段是该图片的本机地址.取图片时根据URL在数据中检索,如果没有则连接服务器下载,下载之后再服务器中作出相应记录.

(2)    视频文件缓存

考虑到视频文件就是动画片,每一集的大小应该超过20MB,如果边播放边下载的话

用户的3G流量负担是很大的,而且用户看完一集动画片,基本上不会再去看第二遍.

从这个状况来看,建议不要对视频文件进行下载缓存.另外也能降低程序员的编码负担.

当然我们可以为一些动漫发烧友提供一个下载动画片的按钮,供他们下载喜欢的动画片,甚至也可以设置如果要下载动画片会付出一些代价等等.

 缓存文件删除策略:

1.       每一个模块在每次客户端自动或者用户手动更新的时候删除相应模块的缓存文件,并重新下载新的缓存文件.

2.       在设置界面中提供删除缓存的功能,点击后删除本机所有缓存.

 本地客户端与服务器交互流程图如下:


JayPark不作死
粉丝 15
博文 51
码字总数 13622
作品 0
苏州
程序员
私信 提问
加载中
请先登录后再评论。
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
590
1
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
5.3K
8
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.1K
1
表单验证插件--Jquery表单验证插件

目前支持对以下格式的值进行验证: cnum-(纯数字), char-(纯字母), zwen-(中文), bysc-(字母开头), mail(邮箱), yzbm(邮政编码) 其中的‘’表示长度,比如“zwen1-5”表示中文1-5位的长度。同...

huanganiu
2013/01/23
4.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

【c++灵魂科普】(1) 第一部分第一章-初识c++语言

今天带来一篇灵魂科普~ 主要是认识c++语言~话不多说 走起! 【全是干货!】 第一节 c++语言简介 信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力,选...

osc_facwbzof
6分钟前
0
0
谈谈AMD CPU购机心得 与 写代码的感受

序 之前用的是华硕飞行保垒。具体是几代忘记了。。I7 4代的标压CUP。 8G内存 换成了联想yoga 14s。 换电脑的原因 网卡问题,老旧的网卡争网络实在争不过别人。每次看别人网络很好,我却连不上...

osc_0m0d4mbq
7分钟前
0
0
springboot 定时任务

一、在 DemoApplycation.java 写入如下代码 package com.taven.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootA......

tavenpy
7分钟前
8
0
2020年8月中国编程语言排行榜

编程语言比例(市场份额) 工资 排名 编程语言 平均工资 中位数 最低()95% 最高(95%) 人数 百分比 1 julia 22539 22500 9000 37500 17 0.00% 2 rust 20987 18500 5371 45000 548 0.11% 3 scal...

osc_kvcz9ju6
8分钟前
0
0
北风在这里给大家拜年了!!!祝大家2020鼠年大吉!忠心祝愿❤在新的一年里:工作的朋友工作顺利,还在读书的童鞋硕果累累,学技术的伙伴技术更上一层楼!同时祝大家2020百毒不侵!😄最后:武汉...

本文分享自微信公众号 - 北风IT之路(beifengtz)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

beifengtz
01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部