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. 在設置界面中提供刪除緩存的功能,點擊後刪除本機全部緩存.
本地客戶端與服務器交互流程圖以下: