安卓快取檔案

2021-07-30 14:44:18 字數 2492 閱讀 7259

首先我們要弄清楚幾個概念:

getcachedir()----------------------->

/data/data/

getfilesdir()----------------------->

/data/data/

一般來說,上面這兩個目錄是使用者不可見的,屬於應用內部,比如webview等一些快取就存放於getcachedir()。

******************************=我是分割線********************=

getexternalfilesdir()--------------->sdcard/android/data/包名/files/

getexternalcachedir()--------------->sdcard/android/data/包名/cache/

計算快取(部分**):

format = new decimalformat("######0.00");//保留兩位小數

tv_cache = (textview) findviewbyid(r.id.tv_cache);

tv_cache.setonclicklistener(this);

// 剛好,我們指定的快取目錄和安卓getexternalcachedir()是同乙個地方,如果我們在constants裡指定的快取目錄

// 是別的目錄,則可能還要把那個目錄算進去(如果是需要刪除的快取的話)。這裡我們算一次就行了。

long externalcachesize = filetool.calculatecachesize(getexternalcachedir());

long internalcachesize = filetool.calculatecachesize(getcachedir());

double totalcachesize = ((double)(externalcachesize + internalcachesize)) / 1024 / 1024;

tv_cache.settext(format.format(totalcachesize) + "mb");

/**

* 計算快取大小

*@param targetfile 目標資料夾

*@return 本應用的磁碟快取大小(單位:bit)

*/public

static

long

calculatecachesize(file targetfile) else }}

return size;

}

刪除快取:

filetool.deletepacketsbydirectory(getexternalcachedir());

filetool.deletepacketsbydirectory(getcachedir());

/**

* 刪除某資料夾下面所有的檔案

* *@param rootfile 根目錄

*/public

static

boolean

deletepacketsbydirectory(file rootfile)

} else

if (file.isdirectory()) }}

}return rootfile.delete();

}

附(android獲取預設路徑):

environment.getdatadirectory().getpath()--------------->/data

environment.getdownloadcachedirectory().getpath()------>/cache

environment.getexternalstoragedirectory().getpath()---->/mnt/sdcard

environment.getrootdirectory().getpath()--------------->/system

context.getcachedir().getpath() ----------------------->/data/data/包名/cache

context.getexternalcachedir().getpath()---------------->/mnt/sdcard/android/data/包名/cache

context.getfilesdir().getpath()------------------------>/data/data/包名/files

context.getobbdir().getpath()-------------------------->/mnt/sdcard/android/obb/包名

context.getpackagename()------------------------------->包名

安卓檔案讀寫

獲取各種路徑 內部儲存 外部儲存 例子 內部儲存 1.獲取快取路徑 主要時context物件。handler是做其他留下來的很本例程無關 public tcpview handler handler,context context 2.儲存 private file getfilefrombytes...

安卓硬碟快取最佳方案

部落格 郭神 簡單些一寫要記得東西。開啟快取 呼叫dislrucache 中的open方法 public獲取快取位址的方法 public file getdiskcachedir context context,string uniquename else return new file cache...

安卓客戶端快取機制

在手機客戶端的應用中,如果經常訪問伺服器,那麼不僅伺服器的壓力就會比較大,而且載入慢導致使用者體驗不是很好,現在快取可以解決這一問題,靈活的快取可以說不僅大大減輕了伺服器的壓力,而且因為更快速的使用者體驗而方便了使用者。採用快取,可以進一步大大緩解資料互動的壓力,我們簡略列舉一下快取管理的適用環境 ...