Android开发之三级缓存含义实例演示

 时间:2024-10-12 02:29:22

Android项目开发经常需要使用到网络访问数据,将获取到的数据保存到本地,本地数据使用时写入到内存,再次访问的时候从内存获取数据,这就是平时说的三级缓存,三级缓存听起来很“高大上”,其实集合了网络访问数据/本地访问数据/缓存访问数据三个级别,按理说不是什么困难的事情,前提是你对数据操作的的三种方式都熟悉。

Android开发之三级缓存含义实例演示

工具/原料

Android开发工具:Android Studio或Eclipse

Android测试工具:虚拟设备或测试手机

一、三级缓存实例

1、网络勃谧锵疙访问数据。Android提供网络访问数据的类是:HttpURLConnection(最基础的访问方式),在实际开发中,Tea艘早祓胂chCourse一直使用的第三方的开发框架:android-async-http-0.4.5.jar,它的特点是:1. UI线程中调用,异步执行;2.实现接口AsyncHttpResponseHandler回调方法;3.涉及的类AsyncHttpClient/RequestParams/AsyncHttpResponseHandler,简单的例子:

Android开发之三级缓存含义实例演示

2、更加详细的使用说明,可以参考TeachCourse《Android开发之数据存储的四种方式之一:Network存储》,网络存储数据的方式,将需要存储的数据通过Request请求的方式发送到后台URL中,然后后台读取数据并将用户名、密码按照指定格式存储。

Android开发之三级缓存含义实例演示

3、本地访问数据。将数据保存到本地,可以文件流方式写入sdcard的文件中,也可以通过SharedPreferences方式保台仵瑕噤存键值对,SharedPreferences是一种比较简单的保存数据的方式,封装成了SharedPreferencesUtils类,更加详细的使用说明,可以参考TeachCourse《Android开发之数据存储的四种方式:SharedPreferences》,这里主要使用文件流的方式将新闻数据写入到sdcard的文件中。开发步骤:1、封装FileManager工具类;2、封装HttURLConnection工具类;3、访问服务器,将新闻数据写入文件;

Android开发之三级缓存含义实例演示
Android开发之三级缓存含义实例演示

4、HttpURLConnection工具类。流分为:字节流/字符流/文件流/数组流/缓冲流等,字节流是流操作的最小单位,字符流以字符为单位,文件流是特定对文件操作的一种流,对于其他的流操作也是字节流/字符流的直接或间接子类,比如:DataInputStream/DataOutputStream是InputStream/OutputStream的子类,操作方法是对底层流的“包装”,代码如下:

Android开发之三级缓存含义实例演示
Android开发之三级缓存含义实例演示

5、MainActivity获取数据。调用HttpURLConn中的get方法访问服务器,获取返回的json数据,然后o把json写入本地sdcard文件,再从sdcard的文件中读取数据在ListView中展示,具体代码如下:

Android开发之三级缓存含义实例演示
Android开发之三级缓存含义实例演示
Android开发之三级缓存含义实例演示

6、解析JSON格式数据使用JSONArray和JSONObject,数学将:{}称为大括号,将:[]称为中括号,在返回的JSON字符串中,大括号使用JSONObject转换成对象,中括号使用JSONArray转换成对象,例如对面的字符串json,转换代码如下:

Android开发之三级缓存含义实例演示

7、内存读写数据。内存读写数据的位置在:/data/data/<package name>/file,相醑穿哩侬对本地文件存储/网络存储,内存存储数据的读写速度是最快的,在Android开发中,能够做到三级缓存的APP,使用起来更加顺畅,因为内存保存数据的位置与当前的包名相关,所以需要Context的openFileInput()/openFileOutput()方法获取输入/输出流,而sdcard读取数据使用的是FileInputStream/FileOutputStream类获取输入/输出流,这是他们两者之间的区别。具体代码,如下:

Android开发之三级缓存含义实例演示
Android开发之三级缓存含义实例演示

8、可以将上面新闻中的数据同时保存到内存/sdcard,当启动APP时,首先从内存读取,如果内存的数据不存在,再从sdcard中读取,最后从网络加载,这是三级缓存的开发思路,结合上面的Demo,完成新闻列表的展示。下一篇文章TeachCourse将介绍《如何读写sqlite数据库中的新闻数据》

  • Android程序开发实践教程:[3]SDK更新失败
  • 百度小程序开发服务器端接口配置
  • Android开发之Github版本控制工具管理项目演示
  • 图解Android开发第一个HelloWorld程序
  • 热门搜索
    运动与健康手抄报 孝敬老人的手抄报 圣诞节手抄报图片 三节三爱手抄报内容 食品药品安全手抄报 读书月手抄报 爱护地球手抄报 有关动物的手抄报 数学手抄报初一 放飞梦想手抄报资料