問(wèn)答思考:如何設計APP清理緩存功能?
更新時(shí)間:2026-05-05 00:09:14
前些天,問(wèn)答在天天問(wèn)里面看到有個(gè)關(guān)于如何設計&ld??q??u┐(′д`)┌o;清理緩存”的??思考功能,(′-ι_-`)然后思考了一下的何設緩存確很多APP上都有清理緩存的功能,但是清理也(ye)有少部分APP上沒(méi)有清理緩存的功能,那么問(wèn)題來(lái)了,問(wèn)答??緩存是思ヽ(′ー`)ノ考什么?有什么價(jià)值???又要如何設計ヽ(′▽?zhuān)?ノ清理緩存功能呢?于是乎,就有了今天的何設緩存這篇文章。
一、清理什么是問(wèn)答緩存?
緩存就是數據交換的緩沖區,當某一硬件要讀取數據時(shí),思考會(huì )首先從緩存中查找需要的何設緩存數據,(′?`)如果找到了則直接執行,清理找不到的問(wèn)答話(huà)則從內存中找。由于緩存的思考運行速度比內存快得多,故緩存的何設緩存作用就是幫助硬件更快地運行。簡(jiǎn)(╯°□°)╯單的理解就是把用戶(hù)訪(fǎng)問(wèn)的數據存在???本地,當用戶(hù)在某些情況下需要使用時(shí),直接在本地調取緩存的數據,這樣效率較高。
二、有哪些APP緩存方式?按需??緩存,是把從服務(wù)器獲取的內容以某種格式存放在本地文件系統,之后對于每次??請求,檢查緩存中是否存在這塊數(shu)據,只有當??數據不存在(或者過(guò)期)的情況下才從服務(wù)器獲取。這樣的話(huà),獲取數??據的效率就明顯提(ti)高了。預緩存,是把內容放在本地以備將來(lái)訪(fǎng)問(wèn),另外就是在本地緩存無(wú)需重新連接服務(wù)器時(shí)可被編輯。編輯可能??是用戶(hù)進(jìn)行&ldq(′?ω?`)uo;標記記錄ヽ(′▽?zhuān)?ノ為已讀&rdq(◎_◎;)uo;或“加入收藏”,或其他類(lèi)似的操作。三、為什么要有緩存?
A場(chǎng)景
用戶(hù)首次打開(kāi)資訊類(lèi)APP首頁(yè),loading了5秒鐘首頁(yè)資訊信息才全部展現出來(lái),然后點(diǎn)擊某一條資訊,瀏覽該咨詢(xún)的詳細信ヽ(′▽?zhuān)?ノ息,瀏覽完再返還到首頁(yè)瀏覽其他資訊,這時(shí)候首頁(yè)加載多久才能顯示出所有資訊信息?如果還是要loaヽ(′▽?zhuān)?ノding5秒鐘的( ?ω?)話(huà),那么用戶(hù)反┐(′?`)┌復的進(jìn)入下一頁(yè)和返還首頁(yè)的過(guò)??程中,會(huì )明顯感覺(jué)到首頁(yè)總是在loading,從而消耗了用戶(hù)時(shí)間(jian),也降低了用戶(hù)體驗。
緩存價(jià)值:提高APP性能和頁(yè)面加載效率,??第一次將頁(yè)面資(zi)訊信息進(jìn)行緩存到本地,后續在未刷新情況下直接調(diao)用本地數據而不是訪(fǎng)問(wèn)服務(wù)器數據,來(lái)提高數據獲取的效率。
B場(chǎng)景
用戶(hù)在有網(wǎng)絡(luò )的情況下,使用閱讀類(lèi)APP點(diǎn)(dian)擊查看了一本小說(shuō),而后出門(mén)??在地鐵上無(wú)聊想看這本小說(shuō),但這時(shí)??候地鐵內無(wú)信號,如果僅僅因為沒(méi)有信號的原因,用戶(hù)打開(kāi)APP映入眼簾的就是帶有網(wǎng)絡(luò )異常的警示頁(yè)和他無(wú)法閱讀之前中意的小說(shuō)的(de)結局(′▽?zhuān)?嗎?
緩存價(jià)值:支持離線(xiàn)訪(fǎng)問(wèn),用戶(hù)在A(yíng)PP離線(xiàn)無(wú)網(wǎng)絡(luò )的情況下,仍可以閱讀之前緩存到本地的小說(shuō)內容,即解決用戶(hù)離線(xiàn)訪(fǎng)問(wèn)的需求,又提高了離線(xiàn)情況下APP的視覺(jué)友好度。
C場(chǎng)景
用戶(hù)在使用(yong)社交APP時(shí),因為外界因素導致長(cháng)時(shí)(shi)間處于無(wú)網(wǎng)絡(luò )的情況下,這時(shí)候他想刪除某一條聊天( ?▽?)記錄,或者是收藏一篇美文,亦或者是給ヾ(?■_■)ノ好友的動(dòng)態(tài)進(jìn)行點(diǎn)贊。那結果會(huì )是因??為APP離線(xiàn)的情況下,用戶(hù)無(wú)法進(jìn)行以上(′ω`*)的操作嘛?
緩存價(jià)值:支持用戶(hù)離線(xiàn)操作,對于將之前用戶(hù)瀏覽的信息緩存到本地后,用戶(hù)仍可在離線(xiàn)狀態(tài)下,對信息進(jìn)行輔助性操作??,比如點(diǎn)贊??、收藏、標記等。這樣能提高用戶(hù)的滿(mǎn)意度。
D場(chǎng)景
用戶(hù)(╯‵□′)╯使用短視頻APP查看了一部20M的短視頻( ???),花費了20M流量。當用戶(hù)觀(guān)看完就關(guān)閉APP了。那么當用戶(hù)覺(jué)得之前觀(guān)看的短視頻很精彩,想再次觀(guān)看這部短視頻的時(shí)候,還需要花費20M流量嗎?
緩存價(jià)值:減少用戶(hù)流量損耗,當用戶(hù)第一次觀(guān)看短視頻時(shí),已經(jīng)花費一定的流量將其緩存到本地,后續還需要觀(guān)看此短視頻,則無(wú)(wu)需花費流量來(lái)從服務(wù)器端獲取此短視頻,可直接在0流量情況(等同于離線(xiàn))下直接觀(guān)看此短視頻。
四、如何設計清理緩存功能???
上述主要介紹假設的四種用(′?ω?`)戶(hù)場(chǎng)景及對應體現出的緩存價(jià)值,可以肯定的是APP的緩存功能是有一定的必要性。那么手機緩存只有優(yōu)點(diǎn)沒(méi)有缺點(diǎn)嘛?答案顯而易見(jiàn)是NO。毋容置疑的是APP的緩存會(huì )一ヽ(′▽?zhuān)?ノ定程??度上影響到用戶(hù)手機的儲存空間,所以需要設計一個(gè)清理緩存的功能,以便于用戶(hù)有效的使用被釋放的存儲空間。那么接下來(lái)談?wù)撊绾蝸?lái)設計清理緩存(cun)功能呢?
是否需要用戶(hù)清理(╬?益?)緩存
1、不需要
2、需要
多數常見(jiàn)于IM類(lèi)、電商類(lèi)、資訊類(lèi)、閱讀類(lèi)、視頻類(lèi)等APP需要單獨設置清理緩存的功能,因為這類(lèi)APP會(huì )因為用戶(hù)頻繁的使用緩存較多的數據在本地,??可能會(huì )占用手機較多的儲存空間,這類(lèi)APP會(huì )把是否清理緩存的權限交由用戶(hù)自己決定。(另外還有少部分APP,用戶(hù)可自定義設置緩存的上限,這樣用戶(hù)不僅有清理緩存的權限,還有設置緩存上限的權限。比如網(wǎng)易云??音樂(lè ),用戶(hù)可勾選緩存的上限值是多少,按理超過(guò)的上限的緩存是不被存放到本地來(lái)占用手機儲存空間的,一旦達到緩存上限時(shí),APP是不會(huì )進(jìn)??行超過(guò)緩存上限的提醒,主要是為了不干擾用戶(hù)正常操作。)
用戶(hù)清除緩存的細節
1、顯示緩存大小
這是最基本、也是不能忽略的一點(diǎn)就是(shi)顯示緩??存的大小,以便于用戶(hù)根據緩存大小來(lái)判斷(╬?益?)是否要清理這些緩存。
2、顯示當前APP緩存占用手機儲存空間的比例
顯示當前緩ヽ(′▽?zhuān)?ノ存占用手機存儲空間的比例,以及可用的手機儲存空??間有多大,為用(°o°)戶(hù)選擇是否清理緩存提供了兩種方式的比較,提高用戶(hù)清理緩存的參考度。
3、顯示緩存分類(lèi)
將APP緩存進(jìn)行分類(lèi),一般分類(lèi)有兩種維度,一種是時(shí)間維度??,另外一種是內容維度。
(1)時(shí)間維度
主要是可清理某一時(shí)間段的手機緩存。比如飛豬顯示3天之內、3~7天、7天之外各階段緩存大小,用戶(hù)可自由選擇清理哪一時(shí)間段或多個(gè)時(shí)間段的緩存。這樣在用戶(hù)手機儲存空間不足,但又不想清(╯°□°)╯︵ ┻━┻理最近(′?_?`)使用APP留??下的緩存情況下,給用??戶(hù)提供了一個(gè)不錯的選擇。
(2)內容維度
按照緩存內容進(jìn)(jin)行分類(lèi)顯示緩存大小并支持單獨清理某一類(lèi)緩存。比如same緩存分為清除圖片緩存、清除語(yǔ)音緩存、清除數(′ω`)據緩存、草稿文件緩存、貼紙圖片緩存及各自緩存大小,這樣當用戶(hù)需要在A(yíng)PP緩存和手機儲存空??間??之間進(jìn)行權衡(???)時(shí),可選擇對用戶(hù)損害最小的一類(lèi)緩存(cun)進(jìn)行清除。這不僅能滿(mǎn)足用戶(hù)釋放手機儲存空間的需求,又提高(╯°□°)╯了用戶(hù)體驗。
4、清理緩存的交互顯示
(1)是否需要清理緩存
當用戶(hù)點(diǎn)擊進(jìn)行緩存清理時(shí),彈出彈框提示用戶(hù)是否需要清理,一方(fang)面告知用戶(hù)清理緩存需要一定的時(shí)間,減少等到緩存被清理過(guò)程中的焦慮感;另外一方面,避免用戶(hù)手誤錯點(diǎn)到??清理緩存,使得用戶(hù)能慎重決定。
(2)緩存是否成功清理
當系統清理??完緩存時(shí),希望用戶(hù)能得到緩存是否清理成功的反饋,可以是緩存大小變?yōu)?,也可以是一句“緩存清理成功”。
五、總結
最后,至??于大家如何設計各自APP清理緩存的功能,那就需要大家考慮各自APP所??屬類(lèi)型,不同類(lèi)型的APP清理緩存??的側重點(diǎn)和復雜度也不同,若是低頻率且緩存較小的APP可考慮系統自動(dòng)清理緩存,而不用花費精力設計獨立清理緩存的功能供用戶(hù)操作;??另外就是考慮目前產(chǎn)(′;д;`)品所屬階段,如果是產(chǎn)品上線(xiàn)初期,應該把精力花在強需求、高頻次的功能上,而不是低頻率的清理緩存上。
以上種種只是我(wo)的個(gè)人想法,大家有沒(méi)有什么更好的想法呢?歡迎來(lái)一起思考討論。

