/** * 数据删除工具类 * @author FireAnt(http://my.oschina.net/LittleDY) * @version 创建时间:2014年10月27日 上午10:18:22 * */ public class DataCleanManager { /** * 清除本应用内部缓存 * (/data/data/com.xxx.xxx/cache) * @param context */ public static void cleanInternalCache(Context context) { deleteFilesByDirectory(context.getCacheDir()); deleteFilesByDirectory(context.getFilesDir()); } /** * 清楚本应用所有数据库 * (/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")); } /** * 按名字清除本应用数据库 * @param context * @param dbName */ public static void cleanDatabaseByName(Context context, String dbName) { context.deleteDatabase(dbName); } /** * 清除/data/data/com.xxx.xxx/files下的内容 * @param context */ public static void cleanFiles(Context context) { deleteFilesByDirectory(context.getFilesDir()); } /** * 清除外部cache下的内容(/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)); } /** * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 * @param filePath */ public static void cleanCustomCache(File file) { deleteFilesByDirectory(file); } /** * 清除本应用所有的数据 * @param context * @param filepath */ public static void cleanApplicationData(Context context, String... filepath) { cleanInternalCache(context); cleanExternalCache(context); cleanDatabases(context); cleanSharedPreference(context); cleanFiles(context); for (String filePath : filepath) { cleanCustomCache(filePath); } } /** * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * @param directory */ private static void deleteFilesByDirectory(File directory) { if (directory != null && directory.exists() && directory.isDirectory()) { for (File child : directory.listFiles()) { if (child.isDirectory()) { deleteFilesByDirectory(child); } child.delete(); } } } }
/** * Android各版本的兼容方法 * @author liux (http://my.oschina.net/liux) * @version 1.0 * @created 2012-8-6 */ public class MethodsCompat { @TargetApi(5) public static void overridePendingTransition(Activity activity, int enter_anim, int exit_anim) { activity.overridePendingTransition(enter_anim, exit_anim); } @TargetApi(7) public static Bitmap getThumbnail(ContentResolver cr, long origId, int kind, Options options) { return MediaStore.Images.Thumbnails.getThumbnail(cr,origId,kind, options); } @TargetApi(8) public static File getExternalCacheDir(Context context) { // // return context.getExternalCacheDir(); API level 8 // // // e.g. "<sdcard>/Android/data/<package_name>/cache/" // final File extCacheDir = new File(Environment.getExternalStorageDirectory(), // "/Android/data/" + context.getApplicationInfo().packageName + "/cache/"); // extCacheDir.mkdirs(); // return extCacheDir; return context.getExternalCacheDir(); } @TargetApi(11) public static void recreate(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { activity.recreate(); } } @TargetApi(11) public static void setLayerType(View view, int layerType, Paint paint) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { view.setLayerType(layerType, paint); } } @TargetApi(14) public static void setUiOptions(Window window, int uiOptions) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { window.setUiOptions(uiOptions); } } }
public void setProperties(Properties ps) { AppConfig.getAppConfig(this).set(ps); } public Properties getProperties() { return AppConfig.getAppConfig(this).get(); } public void setProperty(String key, String value) { AppConfig.getAppConfig(this).set(key, value); }
/** * 清除app缓存 */ public void clearAppCache() { DataCleanManager.cleanDatabases(this); // 清除数据缓存 DataCleanManager.cleanInternalCache(this); // 2.2版本才有将应用缓存转移到sd卡的功能 if (isMethodsCompat(android.os.Build.VERSION_CODES.FROYO)) { DataCleanManager.cleanCustomCache(MethodsCompat .getExternalCacheDir(this)); } // 清除编辑器保存的临时内容 Properties props = getProperties(); for (Object key : props.keySet()) { String _key = key.toString(); if (_key.startsWith("temp")) removeProperty(_key); } new KJBitmap().cleanCache(); } /** * 判断当前版本是否兼容目标版本的方法 * * @param VersionCode * @return */ public static boolean isMethodsCompat(int VersionCode) { int currentVersion = android.os.Build.VERSION.SDK_INT; return currentVersion >= VersionCode; }
/** * 获取cookie时传AppConfig.CONF_COOKIE * * @param key * @return */ public String getProperty(String key) { String res = AppConfig.getAppConfig(this).get(key); return res; } public void removeProperty(String... key) { AppConfig.getAppConfig(this).remove(key); }
public static AppConfig getAppConfig(Context context) { if (appConfig == null) { appConfig = new AppConfig(); appConfig.mContext = context; } return appConfig; } /** * 获取Preference设置 */ public static SharedPreferences getSharedPreferences(Context context) { return PreferenceManager.getDefaultSharedPreferences(context); }
相关推荐
Android app缓存清理通常包括以下几个关键步骤: 1. **确定缓存路径**:Android提供了多种类型的缓存,如内部存储的`getCacheDir()`和外部存储的`getExternalCacheDir()`。你需要确定你的应用使用的缓存目录,然后...
在实际操作中,我们可以创建一个名为“tableView缓存demo”的示例项目,展示如何在UITableView中加载并缓存数据,以及如何在用户选择清除缓存时进行清理操作。这个示例可能包括以下步骤: 1. 数据获取:从服务器...
**********************关于应用清理缓存的工具类************************************
html+app、mui+app等html移动端开发、计算当前APP缓存的数据大小和清除当前APP缓存等常用函数,为了解决html移动端开发因图片缓存或数据缓存到最后内存过大后导致app程序卡顿。
首先,我们需要了解APP缓存的工作机制。当一个APP首次打开或访问某个网页时,它会下载并存储一些关键信息,如图片、HTML代码、JavaScript等,这些就是缓存。下次再次访问时,APP可以直接从本地缓存读取数据,而无需...
描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录
appCache: true, // 清除App Cache fileSystem: true, // 清除文件系统 indexedDB: true, // 清除IndexedDB local storage: true, // 清除localStorage plugins: true, // 清除插件数据 serviceWorkers: true,...
除了手动清理,还可以利用iOS的系统服务,比如App Transport Security(ATS)和HTTP响应缓存策略,来控制网络请求的缓存行为。ATS可以配置为限制应用接收不安全的网络数据,而HTTP响应缓存可以通过设置`NSURLRequest...
用于android清除缓存功能
README Author E-mail ...支持 iOS Android 清理app缓存 安装使用 npm install --save react-native-clear-app-cache Then link with: react-native link react-native-clear-app-cache 运行示例
本篇将详细介绍如何在Windows系统中清除DNS缓存,以及在Chrome浏览器中清除DNS缓存和Socket缓存。 **一、清除Windows DNS缓存** Windows操作系统会自动存储DNS查询结果以提高后续访问的速度,但这些缓存可能过时,...
因此,适时地清除缓存至关重要。`CleanMessageUtil.java` 文件很可能包含一个用于清理Android应用缓存的工具类。现在,我们来详细探讨Android缓存的类型、清理方法以及如何编写这样的清理工具。 1. **缓存类型:** ...
通过反射机制调用系统隐藏的API清除手机所有的app缓存.关键方法freeStorageAndNotify。前提添加AIDL文件.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
- 手动清理:进入设置 > 应用管理 > 选择应用 > 存储 > 清除缓存。 - 自动清理:可以编写一个简单的Android应用,获取应用列表并遍历,调用`Context.deleteDatabase()`或`Context.deleteCacheDir()`方法清理缓存。...
其中,Cache目录通常用于存储非关键性的临时数据,这些数据可以在系统需要时被清除,以释放存储空间。 **获取缓存大小的步骤:** 1. **遍历Cache目录**:首先,我们需要获取到应用的Cache目录路径。可以使用`...
6. **Web App Manifest**:在创建Web应用程序时,manifest文件可以指示哪些资源应该被缓存,哪些资源需要在线使用。更新manifest文件也能触发Service Worker的更新,进而更新缓存。 7. **前端构建工具**:像Webpack...
此外,开发者还应遵循Google的Best Practices,如在应用卸载或更新时清除缓存,以避免数据残留。 总之,Android应用缓存机制涉及多方面,合理的缓存策略能够显著提升应用性能,降低数据传输成本,同时需要注意内存...
然而,有时为了释放存储空间或者确保数据的更新,我们需要清除应用的缓存。Swift作为iOS开发的主要编程语言,提供了多种方式来管理并清除缓存。本文将深入探讨在Swift中如何有效地进行缓存清理。 首先,我们了解...
1. **前进刷新**:在原生APP中,前进操作通常意味着新页面的加载,这可能会清除之前页面的状态。在Vue.js中,通过监听路由变化并手动更新`keep-alive`内的组件状态,可以模拟这个行为。例如,在`beforeRouteEnter`...
APP清除缓存功能的具体实现-附件资源