Android應(yīng)用的清除數(shù)據(jù)和清除緩存

**[我的博客](https://zhaozhenye.github.io/)**

大家在用Android手機(jī)的時(shí)候肯定都遇到過內(nèi)存剩余空間越來越小的情況;內(nèi)存小的手機(jī),如果安裝新應(yīng)用的時(shí)候,系統(tǒng)有時(shí)候甚至?xí)崾灸阆螺d軟件再安裝;這時(shí)候我們可以打開手機(jī)應(yīng)用管,進(jìn)入軟件管理,我們能看到清除數(shù)據(jù)和清除緩存的選項(xiàng),通過這種方式我們可以釋放不必要的內(nèi)存空間,加速手機(jī)的運(yùn)行速度,開辟新的使用空間;我們今天就看看我們點(diǎn)擊的清除數(shù)據(jù)和清除緩存到底是清除了哪些文件?

為了看的更加具體,我們分兩種情況看:sd卡正常掛載和sd不正常的情況(沒有SD卡或者SD卡掛載不正常)

首先我們先看一下Android手機(jī)應(yīng)用緩存和數(shù)據(jù)存儲(chǔ)的位置:

//sd卡的路徑

Log.i(TAG,"getExternalStorageDirectory: "+ Environment.getExternalStorageDirectory().getAbsolutePath());

//SD卡加載狀態(tài)

Log.i(TAG,"getExternalStorageState: "+ Environment.getExternalStorageState());

//有SD卡的情況:應(yīng)用的緩存目錄

Log.i(TAG,"getExternalCacheDir: "+this.getExternalCacheDir().getAbsolutePath());

//無SD卡的情況:應(yīng)用的緩存目錄

Log.i(TAG,"getCacheDir: "+this.getCacheDir().getAbsolutePath());

//有SD卡的情況:應(yīng)用的存儲(chǔ)目錄

Log.i(TAG,"getExternalFilesDir: "+this.getExternalFilesDir("test").getAbsolutePath());

//無SD卡的情況:應(yīng)用的存儲(chǔ)目錄

Log.i(TAG,"getFilesDir: "+this.getFilesDir().getAbsolutePath());

接下來我們看log打印的結(jié)果:

我的測(cè)試應(yīng)用包名是:com.zzy

根據(jù)日志信息我們能夠清楚地看到:

SD的路徑:/storage/emulated/0?

SD卡的掛載狀態(tài):mounted-->正常加載的狀態(tài)值

有SD卡的情況:緩存路徑:/storage/emulated/0/Android/data/com.zzy/cache

無SD卡的情況:緩存路徑:/data/data/com.zzy/cache

有SD卡的情況 :下載路徑:/storage/emulated/0/Android/data/com.zzy/files/test

無SD卡的情況:下載路徑:getFilesDir: /data/data/com.zzy/files

現(xiàn)在我們已經(jīng)能夠清楚知道我們清楚數(shù)據(jù)和清除緩存的具體位置了;

當(dāng)我們卸載應(yīng)用的時(shí)候,系統(tǒng)會(huì)把data/應(yīng)用包名 ?下面的files目錄和cahe目錄全部自動(dòng)刪除掉。但是如果我們把文件下載在SD卡的根路徑,系統(tǒng)不會(huì)幫我們回收,需要用戶手動(dòng)刪除,因此,優(yōu)秀的程序員都應(yīng)考慮良好的用戶體驗(yàn),即使由于某種原因卸載了我們的應(yīng)用,我們還是應(yīng)該在對(duì)應(yīng)用數(shù)據(jù)位置進(jìn)行最優(yōu)的存儲(chǔ):臨時(shí)數(shù)據(jù)存放在cache目錄下,持久化的數(shù)據(jù)存儲(chǔ)在files;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 紙上得來終覺淺,絕知此事要躬行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,954評(píng)論 25 709
  • permissionn.允許;批準(zhǔn),正式認(rèn)可,認(rèn)可user permission 使用權(quán)限permission D...
    lengol閱讀 1,100評(píng)論 0 51
  • 在周五說一下自己投資方面的認(rèn)知吧。李笑來本周更新了三張投資的表格。那么今天就圍繞著三張表格展開我的升級(jí)之路吧! 第...
    yichen大刀閱讀 231評(píng)論 0 0
  • getClientRects 獲取元素占據(jù)頁面的所有矩形區(qū)域 getBoundingClientRect 獲得頁面...
    smallseed閱讀 1,348評(píng)論 0 1

友情鏈接更多精彩內(nèi)容