獲取APP的緩存大小僻肖,清理緩存

1.文件位置

系統(tǒng)文件(注:這個是系統(tǒng)的文件系統(tǒng)肖爵,不允許修改的)

內(nèi)置SD卡(注:現(xiàn)在的手機基本上都有,就是我們所謂的ROM臀脏,是不可以移除的劝堪,RAM是我們手機的運行內(nèi)存)

外置SD卡(注:這個就是我們的SD卡了,可以移除)

2.文件儲存類型

file-普通的文件存儲

database-數(shù)據(jù)庫文件(.db文件)

sharedPreference-配置數(shù)據(jù)(.xml文件)

cache-圖片緩存文件

3.應用內(nèi)數(shù)據(jù)的所有路徑:

/data/data/com.xxx.xxx/cache - 應用內(nèi)緩存(注:對應方法getCacheDir())

/data/data/com.xxx.xxx/databases - 應用內(nèi)數(shù)據(jù)庫

/data/data/com.xxx.xxx/shared_prefs - 應用內(nèi)配置文件

/data/data/com.xxx.xxx/files - 應用內(nèi)文件(注:對應方法getFilesDir())

4.獲取文件路徑:

獲取SD卡根目錄:Environment.getExternalStorageDirectory().getAbsolutePath();

獲取外部Cache路徑:/mnt/sdcard/android/data/com.xxx.xxx/cache 一般存儲緩存數(shù)據(jù)(注:通過getExternalCacheDir()獲热嘀伞)

獲取外部File路徑:/mnt/sdcard/android/data/com.xxx.xxx/files 存儲長時間存在的數(shù)據(jù) (注:通過getExternalFilesDir(String type)獲取秒啦, type為特定類型,可以是以下任何一種

Environment.DIRECTORY_MUSIC,?

Environment.DIRECTORY_PODCASTS,?

Environment.DIRECTORY_RINGTONES,

?Environment.DIRECTORY_ALARMS,

?Environment.DIRECTORY_NOTIFICATIONS,?

Environment.DIRECTORY_PICTURES,?

?Environment.DIRECTORY_MOVIES. )

5.工具類:(使用時直接調(diào)用對應方法即可)

/*??*?文?件?名:??DataCleanManager.java??

?*?*?描????述:??主要功能有清除內(nèi)/外緩存搀玖,清除數(shù)據(jù)庫余境,清除sharedPreference,清除files和清除自定義目錄??

?*?*/??


import?java.io.File;??

import?java.math.BigDecimal; ?

import?android.content.Context;??

import?android.os.Environment;??

import?android.text.TextUtils; ?


/**?*?本應用數(shù)據(jù)清除管理器?*/??

public?class?DataCleanManager?{??

/**

?????*?*?清除本應用內(nèi)部緩存(/data/data/com.xxx.xxx/cache)?*?*

?????*?

?????*?@param?context

?????*/??

public?static?void?cleanInternalCache(Context?context)?{??

????????deleteFilesByDirectory(context.getCacheDir());??

????}??


/**

?????*?*?清除本應用所有數(shù)據(jù)庫(/data/data/com.xxx.xxx/databases)?*?*

?????*?

?????*?@param?context

?????*/??

public?static?void?cleanDatabases(Context?context)?{??

deleteFilesByDirectory(new?File("/data/data/"??

+?context.getPackageName()?+"/databases"));??

????}??


/**

?????*?*?清除本應用SharedPreference(/data/data/com.xxx.xxx/shared_prefs)?*

?????*?

?????*?@param?context

?????*/??

public?static?void?cleanSharedPreference(Context?context)?{??

deleteFilesByDirectory(new?File("/data/data/"??

+?context.getPackageName()?+"/shared_prefs"));??

????}??


/**

?????*?*?按名字清除本應用數(shù)據(jù)庫?*?*

?????*?

?????*?@param?context

?????*?@param?dbName

?????*/??

public?static?void?cleanDatabaseByName(Context?context,?String?dbName)?{??

????????context.deleteDatabase(dbName);??

????}??


/**

?????*?*?清除/data/data/com.xxx.xxx/files下的內(nèi)容?*?*

?????*?

?????*?@param?context

?????*/??

public?static?void?cleanFiles(Context?context)?{??

????????deleteFilesByDirectory(context.getFilesDir());??

????}??


/**

?????*?*?清除外部cache下的內(nèi)容(/mnt/sdcard/android/data/com.xxx.xxx/cache)

?????*?

?????*?@param?context

?????*/??

public?static?void?cleanExternalCache(Context?context)?{??

if?(Environment.getExternalStorageState().equals(??

????????????????Environment.MEDIA_MOUNTED))?{??

????????????deleteFilesByDirectory(context.getExternalCacheDir());??

????????}??

????}??

/**

?????*?*?清除自定義路徑下的文件灌诅,使用需小心芳来,請不要誤刪。而且只支持目錄下的文件刪除?*?*

?????*?

?????*?@param?filePath

?????*?*/??

public?static?void?cleanCustomCache(String?filePath)?{??

deleteFilesByDirectory(new?File(filePath));??

????}??


/**

?????*?*?清除本應用所有的數(shù)據(jù)?*?*

?????*?

?????*?@param?context

?????*?@param?filepath

?????*/??

public?static?void?cleanApplicationData(Context?context,?String...?filepath)?{??

????????cleanInternalCache(context);??

????????cleanExternalCache(context);??

????????cleanDatabases(context);??

????????cleanSharedPreference(context);??

????????cleanFiles(context);??

if?(filepath?==?null)?{??

return;??

????????}??

for?(String?filePath?:?filepath)?{??

????????????cleanCustomCache(filePath);??

????????}??

????}??


/**

?????*?*?刪除方法?這里只會刪除某個文件夾下的文件猜拾,如果傳入的directory是個文件即舌,將不做處理?*?*

?????*?

?????*?@param?directory

?????*/??

private?static?void?deleteFilesByDirectory(File?directory)?{??

if?(directory?!=?null?&&?directory.exists()?&&?directory.isDirectory())?{??

for?(File?item?:?directory.listFiles())?{??

????????????????item.delete();??

????????????}??

????????}??

????}??


//?獲取文件??

//Context.getExternalFilesDir()?-->?SDCard/Android/data/你的應用的包名/files/?目錄,一般放一些長時間保存的數(shù)據(jù)??

//Context.getExternalCacheDir()?-->?SDCard/Android/data/你的應用包名/cache/目錄挎袜,一般存放臨時緩存數(shù)據(jù)??

public?static?long?getFolderSize(File?file)?throws?Exception?{??

long?size?=?0;??

try?{??

????????????File[]?fileList?=?file.listFiles();??

for?(int?i?=?0;?i?<?fileList.length;?i++)?{??

//?如果下面還有文件??

if?(fileList[i].isDirectory())?{??

????????????????????size?=?size?+?getFolderSize(fileList[i]);??

}else?{??

????????????????????size?=?size?+?fileList[i].length();??

????????????????}??

????????????}??

}catch?(Exception?e)?{??

????????????e.printStackTrace();??

????????}??

return?size;??

????}??


/**

?????*?刪除指定目錄下文件及目錄

?????*?

?????*?@param?deleteThisPath

?????*?@param?filepath

?????*?@return

?????*/??

public?static?void?deleteFolderFile(String?filePath,?boolean?deleteThisPath)?{??

if?(!TextUtils.isEmpty(filePath))?{??

try?{??

File?file?=new?File(filePath);??

if?(file.isDirectory())?{//?如果下面還有文件??

????????????????????File?files[]?=?file.listFiles();??

for?(int?i?=?0;?i?<?files.length;?i++)?{??

deleteFolderFile(files[i].getAbsolutePath(),true);??

????????????????????}??

????????????????}??

if?(deleteThisPath)?{??

if?(!file.isDirectory())?{//?如果是文件顽聂,刪除??

????????????????????????file.delete();??

}else?{//?目錄??

if?(file.listFiles().length?==?0)?{//?目錄下沒有文件或者目錄肥惭,刪除??

????????????????????????????file.delete();??

????????????????????????}??

????????????????????}??

????????????????}??

}catch?(Exception?e)?{??

//?TODO?Auto-generated?catch?block??

????????????????e.printStackTrace();??

????????????}??

????????}??

????}??


/**

?????*?格式化單位

?????*?

?????*?@param?size

?????*?@return

?????*/??

public?static?String?getFormatSize(double?size)?{??

double?kiloByte?=?size?/?1024;??

if?(kiloByte?<?1)?{??

return?size?+?"Byte";??

????????}??


double?megaByte?=?kiloByte?/?1024;??

if?(megaByte?<?1)?{??

BigDecimal?result1?=new?BigDecimal(Double.toString(kiloByte));??

return?result1.setScale(2,?BigDecimal.ROUND_HALF_UP)??

.toPlainString()?+"KB";??

????????}??


double?gigaByte?=?megaByte?/?1024;??

if?(gigaByte?<?1)?{??

BigDecimal?result2?=new?BigDecimal(Double.toString(megaByte));??

return?result2.setScale(2,?BigDecimal.ROUND_HALF_UP)??

.toPlainString()?+"MB";??

????????}??


double?teraBytes?=?gigaByte?/?1024;??

if?(teraBytes?<?1)?{??

BigDecimal?result3?=new?BigDecimal(Double.toString(gigaByte));??

return?result3.setScale(2,?BigDecimal.ROUND_HALF_UP)??

.toPlainString()?+"GB";??

????????}??

BigDecimal?result4?=new?BigDecimal(teraBytes);??

return?result4.setScale(2,?BigDecimal.ROUND_HALF_UP).toPlainString()??

+"TB";??

????} ?

/**

? ? *獲取文件大小

*/

public?static?String?getCacheSize(File?file)?throws?Exception?{??

return?getFormatSize(getFolderSize(file));??

????} ?

} ?

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市紊搪,隨后出現(xiàn)的幾起案子务豺,更是在濱河造成了極大的恐慌,老刑警劉巖嗦明,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笼沥,死亡現(xiàn)場離奇詭異,居然都是意外死亡娶牌,警方通過查閱死者的電腦和手機奔浅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诗良,“玉大人汹桦,你說我怎么就攤上這事〖” “怎么了舞骆?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長径荔。 經(jīng)常有香客問我督禽,道長,這世上最難降的妖魔是什么总处? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任狈惫,我火速辦了婚禮,結果婚禮上鹦马,老公的妹妹穿的比我還像新娘胧谈。我一直安慰自己,他們只是感情好荸频,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布菱肖。 她就那樣靜靜地躺著,像睡著了一般旭从。 火紅的嫁衣襯著肌膚如雪稳强。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天遇绞,我揣著相機與錄音键袱,去河邊找鬼。 笑死摹闽,一個胖子當著我的面吹牛蹄咖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播付鹿,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼澜汤,長吁一口氣:“原來是場噩夢啊……” “哼蚜迅!你這毒婦竟也來了?” 一聲冷哼從身側響起俊抵,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谁不,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后徽诲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刹帕,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年谎替,在試婚紗的時候發(fā)現(xiàn)自己被綠了偷溺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡钱贯,死狀恐怖挫掏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秩命,我是刑警寧澤尉共,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站弃锐,受9級特大地震影響袄友,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拿愧,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一杠河、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浇辜,春花似錦、人聲如沸唾戚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹坦。三九已至熊镣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間募书,已是汗流浹背绪囱。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留莹捡,地道東北人鬼吵。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像篮赢,于是被迫代替她去往敵國和親齿椅。 傳聞我的和親對象是個殘疾皇子琉挖,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一示辈、對新生事物反應遲鈍的人 任何一個新生事物的誕生都與巨大的商機掛鉤。任何一個新生事物的誕生遣蚀,又都在一片反對懷疑拒...
    孫秀萍閱讀 322評論 0 0
  • 阿伊屋閱讀 166評論 0 0
  • 一包 一相機 一個人 包裝著獨自行走的勇氣 相機記錄沿途美景 人感受著生命樂章 我喜歡這種背包客的感覺 有種游走...
    一小王爺一閱讀 174評論 0 0
  • 前幾天在做社會調(diào)查時矾麻,遇到一個人,我們一起談到了團隊這個話題芭梯,他說團隊對外要表現(xiàn)出整體性射富,團結一致,但內(nèi)部討...
    老周國學堂閱讀 592評論 0 3
  • ①我們 15天可以干什么? 我讀了15本書芒涡,寫下15篇讀書分享柴灯,每篇10則閱讀感悟。 第16天费尽,我完成了人生第一次...
    鯊魚小姐閱讀 671評論 37 26