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

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

客户端缓存机制是android应用开发中很是重要的一项工做,使用缓存机制不单单能够为用户节省3G流量,同时在用户体验方面也是很是好的选择.程序员

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

 缓存文件保存策略:缓存

1.       文字缓存:服务器

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

根据二者的更新频率区分它们的过时时间.编码

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

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

 (1)一般状况下,咱们与服务器交互都是采用JSON格式获取数据的,获取的JSON数据仅仅是一段字符串,咱们能够考虑将这些字符串使用文件流写入一个TXT,保存到对象

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

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

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

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

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

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

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

 2.       多媒体文件缓存

(1)    图片缓存

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

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

(2)    视频文件缓存

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

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

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

固然咱们能够为一些动漫发烧友提供一个下载动画片的按钮,供他们下载喜欢的动画片,甚至也能够设置若是要下载动画片会付出一些代价等等.

 缓存文件删除策略:

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

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

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

相关文章
相关标签/搜索