本文将带你了解Android应用开发Android应用清除缓存一般清理目录和代码的教程,希望本文对大家学Android有所帮助。
一个应用安装完成,会有缓存,缓存一般分为内部存储的和外置的,内存中路径为/data/data/pacgage_name/文件,先来看看一般缓存会存在哪些文件中:
(1)缓存文件夹:
/data/data/com.xx/cache
(2)sharePreferance文件夹:
/data/data/com.xx/shared_prefs
(3)DB数据库文件夹:
/data/data/com.xx/databases
(4)files文件夹:(指向同一文件夹)
context.getFilesDir()
/data/data/com.xx/files
(5)外置缓存文件夹:context.getExternalCacheDir()
(6)lib文件夹,一般可以不清理该文件夹:
"/data/data/com.gtafe.zhpj/lib"
一般一个应用的缓存都存在这些文件夹中,接下直接上代码吧,把计算缓存和清除缓存都用一个类封装(带弹框):
[java] view plain copy
/**
* Created by lan.zheng on 2016/9/1.
*/
public class CacheUtil {
private static final String CACHE_DATA_DB = "/data/data/com.gtafe.zhpj/databases";
private static final String CACHE_DATA_SF = "/data/data/com.gtafe.zhpj/shared_prefs";
private static final String CACHE_DATA_CACHE = "/data/data/com.gtafe.zhpj/cache";
private static File lFileDB;
private static File lFileSF;
private static File lFileC;
/**
* 获取所有缓存
* @param context
* @return
* @throws Exception
*/
public static String getTotalCacheSize(Context context) throws Exception {
lFileDB = new File(CACHE_DATA_DB);
lFileSF = new File(CACHE_DATA_SF);
lFileC = new File(CACHE_DATA_CACHE);
//内存缓存DB和SF,cache,files文件
long cacheSizeDB = getFolderSize(lFileDB);
long cacheSizeSF = getFolderSize(lFileSF);
long cacheSizeC = getFolderSize(lFileC);
long cacheSize = cacheSizeDB + cacheSizeSF + cacheSizeC + getFolderSize(context.getFilesDir()); //context.getFilesDir()或者像上面一样直接用路径
//fresco产生的cache,如果需要就加入下面这行代码
//lo