`
zhtch_123
  • 浏览: 85110 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

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.       在设置界面中提供删除缓存的功能,点击后删除本机所有缓存.

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

   

Android客户端缓存机制(文字缓存和多媒体文件缓存) - zhou_411424 - 惜世缺麟的博客
分享到:
评论

相关推荐

    andorid客户端缓存方案

    这篇文章将详细介绍 Android 客户端缓存机制的设计方案,包括文字缓存和多媒体文件缓存。 一、文字缓存 文字缓存是 Android 客户端缓存机制的重要组成部分。它可以将服务器返回的 JSON 数据保存到本地,以便快速...

    QQ_Music android客户端

    3. **本地存储与缓存管理**: 用户可以下载音乐到本地,这需要对Android的文件系统有深入理解,以及高效的缓存策略,如使用SQLite数据库存储歌曲信息,文件系统存储音频文件。 4. **UI/UX设计**: QQ_Music界面美观且...

    android版的腾讯微博客户端源码

    腾讯微博作为中国社交媒体的重要组成部分,其Android客户端源码对于学习和研究移动社交应用的开发具有极大的价值。这份源码资源提供了深入理解腾讯微博客户端如何实现的关键机会,尤其是对那些希望在自己的应用中...

    球类直播项目Android客户端

    【球类直播项目Android客户端】是一个专为Android平台设计的真实商业级应用,旨在提供流畅、互动的体育赛事直播体验。这个项目是Android开发者提升技能、深入理解Android开发实践的绝佳案例。通过研究此项目,我们...

    基于Android微博客户端的设计与实现

    这需要处理多媒体文件上传,同时支持富文本编辑。分享功能则需要集成社交平台的SDK,实现内容的跨平台传播。 9. **通知与推送**:为了及时提醒用户新消息或热门动态,应用可能使用GCM(Google Cloud Messaging)或...

    Android仿QQ邮箱客户端源码.zip

    对于附件,客户端需要支持下载和预览,这涉及文件操作和多媒体处理技术。 5. **推送通知**:为了实时提醒新邮件,客户端通常会实现推送通知功能。Android的GCM(Google Cloud Messaging)或FCM(Firebase Cloud ...

    android新浪微博客户端源码

    2. 微博发布与浏览:客户端需要支持文本、图片、视频等多种形式的微博发布,这涉及到多媒体处理和上传功能。同时,展示微博流需要对数据进行解析和适配,可能使用RecyclerView或ListView进行列表渲染。 3. 关注与...

    新浪微博android客户端视频教程36源码

    本教程主要围绕“新浪微博Android客户端”的源码展开,旨在帮助开发者深入理解微博应用在Android平台上的实现机制。通过学习此教程,你可以了解到如何构建一个功能完善的社交应用,并从中获取到实际开发中的宝贵经验...

    安卓直播视频播放流媒体IPCameraRTSPDLNA相关-视频缩略图和显示的缓存异步机制.zip

    本资料中提到的"视频缩略图和显示的缓存异步机制"是安卓直播应用中不可或缺的部分,它们确保了用户界面的流畅性和高效性。 首先,IPCamera(网络摄像机)是通过网络进行视频传输的设备,通常使用HTTP、RTSP或ONVIF...

    android 豆瓣客户端

    总的来说,开发豆瓣Android客户端是一项综合性的工程,涉及到网络通信、数据解析、UI设计、多媒体处理、数据库操作等多个方面。理解并熟练掌握这些技术,对于提升Android开发能力具有重要的实践意义。

    Android新浪微博客户端

    通过分析这个“kdwb.apk”文件,可以深入了解Android应用的打包结构,包括资源文件、.dex字节码、AndroidManifest.xml配置文件等,从而学习到更多关于Android应用构建和打包的知识。同时,这个客户端的源码对于...

    Android 仿Bilibili客户端代码

    总的来说,这个"Android 仿Bilibili客户端代码"项目涵盖了Android开发的多个重要领域,包括UI设计、网络编程、数据解析、多媒体处理、本地存储和用户认证,对于想要提升Android开发技能或者了解Bilibili应用工作原理...

    Android项目源码 studio和eclipse双版本仿bilibili客户端.rar

    - OkHttp作为网络通信底层库,提供高效的网络连接和缓存机制。 6. **多媒体播放**: - 使用ExoPlayer或MediaPlayer库进行视频播放,支持多种格式和自定义控制。 - 实现直播、弹幕显示等功能。 7. **权限管理**...

    android 视频客户端

    五、缓存机制 为了优化用户体验,视频客户端通常会将视频数据缓存到本地。这需要实现一个高效的缓存策略,比如LRU(Least Recently Used)算法,当存储空间有限时,优先移除最近最少使用的数据。同时,还可以利用...

    Android高仿网易新闻客户端

    8. ** Picasso/ Glide**:图片加载库,用于加载新闻文章中的图片,支持缓存和占位符,优化用户体验。 9. **Fragment**:在大屏幕设备上,可使用Fragment组合多个视图,实现类似平板电脑的多面板布局。同时,...

    基于Android平台的实时监控系统客户端设计.pdf

    1. **Android客户端开发**:利用Android SDK进行应用程序开发,基于Java编程语言构建用户界面和后台逻辑。由于Android系统底层基于Linux,因此开发者可以利用丰富的系统API和库资源。 2. **FFmpeg解码方案**:...

    基于Android的日程管理软件开发.pdf

    Android客户端应用开发涉及到多方面的技术,包括界面设计、数据存储、网络通信、多媒体处理等。 Android客户端应用开发的主要组件包括Activity、Service、BroadcastReceiver、ContentProvider等。 在基于Android的...

    基于SIP的Android视频问诊客户端的设计与实现.pdf

    **Android客户端设计** 1. **架构设计**:通常,Android视频问诊客户端会采用MVC(Model-View-Controller)或MVVM(Model-View-ViewModel)架构,以实现良好的代码组织和解耦。模型层负责数据处理,视图层负责用户...

    Android应用源码仿暴风影音安卓客户端源码

    4. **视频缓存机制**:为了提高用户体验,视频播放器通常会实现缓存功能。源码中可能会有文件操作、数据库存储(SQLite)等相关代码,用于管理和优化缓存策略。 5. **播放器控制逻辑**:包括播放、暂停、快进、快退...

Global site tag (gtag.js) - Google Analytics