国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

三方網(wǎng)絡(luò)框架的緩存策略

2019-11-09 17:59:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Android中網(wǎng)絡(luò)框架和圖片加載框架的選擇(參考了“這么多開(kāi)源框架,該用哪個(gè)好”:http://www.jianshu.com/p/f3227c7008d4)本文不會(huì)在每個(gè)三方框架的基礎(chǔ)上展開(kāi)每個(gè)框架的詳細(xì)使用方法,而是根據(jù)最近我遇到的問(wèn)題從問(wèn)題的角度出發(fā)總結(jié)比如網(wǎng)絡(luò)框架的選擇,我因?yàn)榫彺娴膯?wèn)題研究各個(gè)框架的優(yōu)缺點(diǎn),從而下面從緩存的角度來(lái)比較各個(gè)框架的異同:一,比較市面上幾種三方網(wǎng)絡(luò)框架的緩存策略1概述1.1在項(xiàng)目中用到緩存目的:1.1.1.為了有網(wǎng)的時(shí)候提供更好更快的用戶體驗(yàn);1.1.2.在沒(méi)有網(wǎng)的時(shí)候保證app仍然能用;1.2緩存分類:1.2.1 sqlite,file,內(nèi)存緩存等。1.2.2 當(dāng)然又可以分為自己進(jìn)行的緩存和網(wǎng)絡(luò)框架自帶的緩存(這里根據(jù)需求來(lái)分的);小說(shuō)等就要加載到本地來(lái)看用sqlite加file多。我們做的廣播類的也是這種情況,再比如音樂(lè)播放器也是這種情況(其實(shí)兩者屬于一類);普通的應(yīng)用大多只是為了提高加載的速度,提高應(yīng)用的用戶體驗(yàn),比如:QQ空間和微信的朋友圈,微信。這里我感覺(jué)使用的封裝在網(wǎng)絡(luò)加載工具中和圖片,視頻加載工具中的緩存(磁盤(pán)+內(nèi)存)。2.幾種三方網(wǎng)絡(luò)記載工具的比較2.1.Retrofit沒(méi)有緩存,但是可以通過(guò)Retrofit+OkHttp實(shí)現(xiàn)(OkHttp是有緩存策略的,參見(jiàn)http://blog.csdn.net/jabony/article/details/52814022)Retrofit+OkHttp的緩存機(jī)制:在響應(yīng)請(qǐng)求之后在 data/data/<包名>/cache 下建立一個(gè)response 文件夾,保持緩存數(shù)據(jù)。這樣我們就可以在請(qǐng)求的時(shí)候,如果判斷到?jīng)]有網(wǎng)絡(luò),自動(dòng)讀取緩存的數(shù)據(jù)。同樣這也可以實(shí)現(xiàn),在我們沒(méi)有網(wǎng)絡(luò)的情況下,重新打開(kāi)App可以瀏覽的之前顯示過(guò)的內(nèi)容。也就是:判斷網(wǎng)絡(luò),有網(wǎng)絡(luò),則從網(wǎng)絡(luò)獲取,并保存到緩存中,無(wú)網(wǎng)絡(luò),則從緩存中獲取。同時(shí)上面的緩存策略也是目前最流行的比如qq和微信的朋友圈都是(在我們沒(méi)有網(wǎng)絡(luò)的情況下,重新打開(kāi)App可以瀏覽的之前顯示過(guò)的內(nèi)容)2.2.xutils中可以設(shè)置緩存參見(jiàn)(http://blog.csdn.net/smartbetter/article/details/51866792)2.3.Volley中可以緩存圖片也可以緩存json數(shù)據(jù),但是平時(shí)很少使用她來(lái)來(lái)做圖片的加載因?yàn)槠洳贿m合大文件的下載和上傳,原因:volley里網(wǎng)絡(luò)通信時(shí)android2.3以上用的HttpUrlConnection,2.3以下用的HttpClient,HttpUrlConnection默認(rèn)傳輸數(shù)據(jù)是將數(shù)據(jù)全部寫(xiě)到內(nèi)存中再發(fā)送到服務(wù)端,Volley就是采用默認(rèn)的方式,這樣在上傳大文件時(shí)很容易就oom;有一種解決辦法是設(shè)置每次傳輸流的大小,想要改造volley使其支持大文件上傳下載參考比較不錯(cuò)的文章http://blog.csdn.net/s569646547/article/details/48346969;還有其內(nèi)部在數(shù)據(jù)為json數(shù)據(jù)時(shí)候默認(rèn)將緩存功能去掉,其實(shí)默認(rèn)啟動(dòng)了緩存策略但是緩存的時(shí)間默認(rèn)為0所以還是沒(méi)有緩存,想要緩存json數(shù)據(jù)需要我們自己來(lái)實(shí)現(xiàn)也就是要去修改volley的源碼或者自己多封裝一層在其基礎(chǔ)上;參見(jiàn):http://blog.csdn.net/linmiansheng/article/details/23023573)volley介紹的很好的文章:http://blog.csdn.net/jxxfzgy/article/details/440882992.4.自己對(duì)okhttp的封裝(參照了鴻神的),OkHttp是有緩存策略的,所以自己可以封裝okhttp來(lái)達(dá)到使用的目的
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 合肥市| 昌吉市| 淄博市| 永善县| 宣化县| 济宁市| 凤阳县| 沅陵县| 绍兴市| 霍城县| 宣化县| 杭州市| 怀集县| 南丹县| 康乐县| 泰兴市| 二连浩特市| 徐汇区| 九江县| 宁晋县| 华亭县| 宁陕县| 桐梓县| 闸北区| 赣州市| 靖边县| 双鸭山市| 博湖县| 崇仁县| 辽中县| 金沙县| 喀什市| 石柱| 正蓝旗| 哈尔滨市| 敖汉旗| 大渡口区| 平原县| 红桥区| 蒙城县| 宾阳县|