如何在Android 6.0中mysql清除数据库缓存应用缓存和数据

如何在Android 6.0中清除应用缓存和数据
[摘要]部分的应用提供了一键清除数据的功能,不过可能清理之后应用的运行速度也不会有太大的变化。手动清除数据更加具有针对性。
腾讯数码讯(编译:Hamish)几个月之前谷歌发布了Android 6.0系统来代替Android 5.0系统,新版系统中对清除应用缓存和数据的按键进行了调整。缓存保存的是应用或网站的一些元素内容,当用户打开它们的时候,就可以更快地加载。在谷歌地图和Chrome浏览器这样的应用中,缓存总会占据大量的手机空间。应用数据则同时包含了缓存和其他被应用保存的信息,这些信息包括登录信息和偏好设置。假如你想让设备空间和应用设置回到默认状态,可以尝试以下做法:第一步:进入“设置”菜单。可以通过下拉呼出通知中心,点击齿轮图标进入。第二步:在“应用”中找到你想清楚缓存或数据的应用。第三步:点击“存储”按键之后,就可以选择清除缓存还是数据。部分Google Play上的应用提供了一键清除数据的功能,不过可能清理之后应用的运行速度也不会有太大的变化。手动清除数据更加具有针对性,你可以选择清除缓存,而不改变应用的设置。来源:
[责任编辑:yannwang]
还能输入140字
Copyright & 1998 - 2017 Tencent. All Rights Reserved博客分类:
在项目中这样的需求,在用户触发重置的时候需要清除自身APP中的数据,APP自身的数据存储在/data/data/packagename/目录下,如下图:
lib目录下存储so库文件,不能清除,需清除其他目录下的文件;
* 清除APP数据
private void clearData() {
final String path = "/data/data/" + getPackageName().toString();
final String path = getFilesDir().getParent();
//清空配置文件目录shared_prefs;
File file_xml = new File(path + "/shared_prefs");
if (file_xml.exists()) {
File[] files = file_xml.listFiles();
for (int i = 0; i & files. i++) {
files[i].delete();
//清空缓存目录;
File file_cache = getCacheDir();
if (file_cache.exists()) {
File[] files = file_cache.listFiles();
for (int i = 0; i & files. i++) {
files[i].delete();
//清空file目录;
File file_file = new File(path + "/files");;
if (file_file.exists()) {
File[] files = file_file.listFiles();
for (int i = 0; i & files. i++) {
files[i].delete();
//清空数据库目录;
File file_db = new File(path + "/databases");
if (file_db.exists()) {
File[] files = file_db.listFiles();
for (int i = 0; i & files. i++) {
files[i].delete();
//这里可以重启你的应用程序,我的app中有service,所以我只要杀死进程就自动重启了。
android.os.Process.killProcess(android.os.Process.myPid());
注意:上述方法要配合自己的其他代码进行,不然可能会出现因文件删除而找不到文件的错误;
浏览 19404
需要手机ROOT才能用吧.清除自己APP的数据不需要root权限,如果要清楚系统中其他应用data目录下的数据,需要root。
浏览: 919860 次
来自: 深圳
你那个Jni库是自己编译的还是有现成的呢?
一个带人脸识别的智能照相机demohttp://blog.cs ...
咋用啊,搞不懂
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'如何在Android 6.0中清除应用缓存和数据
[摘要]部分的应用提供了一键清除数据的功能,不过可能清理之后应用的运行速度也不会有太大的变化。手动清除数据更加具有针对性。几个月之前谷歌发布了Android 6.0系统来代替Android 5.0系统,新版系统中对清除应用缓存和数据的按键进行了调整。缓存保存的是应用或网站的一些元素内容,当用户打开它们的时候,就可以更快地加载。在谷歌地图和Chrome浏览器这样的应用中,缓存总会占据大量的手机空间。应用数据则同时包含了缓存和其他被应用保存的信息,这些信息包括登录信息和偏好设置。假如你想让设备空间和应用设置回到默认状态,可以尝试以下做法:第一步:进入“设置”菜单。可以通过下拉呼出通知中心,点击齿轮图标进入。第二步:在“应用”中找到你想清楚缓存或数据的应用。第三步:点击“存储”按键之后,就可以选择清除缓存还是数据。部分Google Play上的应用提供了一键清除数据的功能,不过可能清理之后应用的运行速度也不会有太大的变化。手动清除数据更加具有针对性,你可以选择清除缓存,而不改变应用的设置。
正文已结束,您可以按alt+4进行评论
相关搜索:
===================================我是分界线===================================
企鹅社区()
孕育百科 名医在线 萌娃秀 福利活动
社区热帖推荐↓↓↓
看过本文的人还看了
最爱南京,最懂生活
苏州中心官方微信,
把吃喝玩乐装进爪机
江苏省人民政府新闻办公室官方微信
提供报警求助、政策咨询办事办证等警务服务
江苏女性温暖贴心的移动家园
同名查询、自助移车,关注南京公安官方微信
热门搜索:
由沿江八市组成的扬子江城市群,是江苏确立的“1+3”重点功能区战略中的“1”,一直备受关注。近日,江苏省委、省政府公布了《关于加快建设扬子江城市群的意见》(简称“意见”),描绘了未来扬子江城市群的发展蓝图。这一蓝图与你我的生活息息相关,比如“0.5-1小时城市通勤圈”“1小时城际交通圈”等,令人期待。见习记
近年来,糖尿病逐渐朝着年轻化的方向发展,“糖宝宝”越来越多,到底“糖宝宝”有多“年轻”?南京市儿童医院内分泌科顾威主任医师告诉记者,近日,她便收治了一名3个月零3天的患儿,是目前该科室年龄最小的糖尿病患者。饭都没吃过,就得了糖尿病“小糖宝”名叫丽丽,来自安徽芜湖,因气促、呻吟,并伴有发热就诊于当地医
不幸!一家四口,三人身患重病感人!继子省吃俭用每月寄回4000元养家编号:232姓名:傅根林年龄:56住址:金坛区金城镇前庄村村委会傅家村7号家庭情况:从2014年开始,傅根林就一直在和病魔作斗争。开始是肠癌,后来又患上了肌肉萎缩和糖尿病等多种疾病。今年开始,他病情加重,卧床不起,连生活都不能自理。傅根林的爱人
一条短信和一个电话,声称有面容姣好的美女,可以上门来提供“特殊服务”,有些人为此起了色心。年轻的邹某夫妻就抓住这一点,利用色情短信和电话,实施诈骗。一些男子禁不住诱惑,想入非非,结果却是撩妹不成,反而被骗。11月2日,这个招嫖诈骗团伙被常州市钟楼区法院判刑。经认定,邹某等人作案17起,诈骗金额21万多元。
对一般人而言,携带着大笔现金外出,肯定是瞻前顾后、小心谨慎,然而市区有这么一对“土豪”夫妇,竟然将30万元现金裹入纸袋,直接放在电瓶车的踏板上就骑车出了门,没曾想,一路晃晃悠悠之下,20万现金先后颠出了袋子,等到夫妻两发现时,还有近10万元下落不明。10月31日下午4点半,在市区一菜场做生意的李勇、王桂兰夫妇
Copyright & 1998 - 2017 Tencent. All Rights Reserved首先关于缓存清理,网上已经有太多的工具类,但是遗憾的是,基本上都不完善,或者说根本就不能用,而项目中又要求实现这个烂东西(其实这玩意真没一点屁用,毕竟第三方清理/杀毒软件都带这么一个功能),但是只好硬着头皮搞搞.. 随记录如下:
当点击清理缓存 这个LinearLayout 弹出对话框,
case R.id.rl_clean_cache://清理缓存
onClickCleanCache();
//------****** 缓存相关****----------
private final int CLEAN_SUC=1001;
private final int CLEAN_FAIL=1002;
private void onClickCleanCache() {
getConfirmDialog(getActivity(), "是否清空缓存?", new DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i) {
clearAppCache();
tvCache.setText("0KB");
}).show();
public static AlertDialog.Builder getConfirmDialog(Context context, String message, DialogInterface.OnClickListener onClickListener) {
AlertDialog.Builder builder = getDialog(context);
builder.setMessage(Html.fromHtml(message));
builder.setPositiveButton("确定", onClickListener);
builder.setNegativeButton("取消", null);
public static AlertDialog.Builder getDialog(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
* 计算缓存的大小
private void caculateCacheSize() {
long fileSize = 0;
String cacheSize = "0KB";
File filesDir = getActivity().getFilesDir();
File cacheDir = getActivity().getCacheDir();
fileSize += FileUtil.getDirSize(filesDir);
fileSize += FileUtil.getDirSize(cacheDir);
// 2.2版本才有将应用缓存转移到sd卡的功能
if (isMethodsCompat(android.os.Build.VERSION_CODES.FROYO)) {
File externalCacheDir = MethodsCompat
.getExternalCacheDir(getActivity());
fileSize += FileUtil.getDirSize(externalCacheDir);
fileSize += FileUtil.getDirSize(new File(
org.kymjs.kjframe.utils.FileUtils.getSDCardPath()
+ File.separator + "KJLibrary/cache"));
if (fileSize & 0)
cacheSize = FileUtil.formatFileSize(fileSize);
tvCache.setText(cacheSize);
public static boolean isMethodsCompat(int VersionCode) {
int currentVersion = android.os.Build.VERSION.SDK_INT;
return currentVersion &= VersionC
* 清除app缓存
public void myclearaAppCache() {
DataCleanManager.cleanDatabases(getActivity());
// 清除数据缓存
DataCleanManager.cleanInternalCache(getActivity());
// 2.2版本才有将应用缓存转移到sd卡的功能
if (isMethodsCompat(android.os.Build.VERSION_CODES.FROYO)) {
DataCleanManager.cleanCustomCache(MethodsCompat
.getExternalCacheDir(getActivity()));
// 清除编辑器保存的临时内容
Properties props = getProperties();
for (Object key : props.keySet()) {
String _key = key.toString();
if (_key.startsWith("temp"))
removeProperty(_key);
Core.getKJBitmap().cleanCache();
* 清除保存的缓存
public Properties getProperties() {
return AppConfig.getAppConfig(getActivity()).get();
public void removeProperty(String... key) {
AppConfig.getAppConfig(getActivity()).remove(key);
* 清除app缓存
public void clearAppCache() {
new Thread() {
public void run() {
Message msg = new Message();
myclearaAppCache();
msg.what = CLEAN_SUC;
} catch (Exception e) {
e.printStackTrace();
msg.what = CLEAN_FAIL;
handler.sendMessage(msg);
}.start();
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case CLEAN_FAIL:
ToastUtils.show(SxApplication.getInstance(),"清除失败");
case CLEAN_SUC:
ToastUtils.show(SxApplication.getInstance(),"清除成功");
以上代码位于一个 fragment中,代码中用到了2个工具如下所示:
* 应用程序配置类:用于保存用户相关信息及设置
public class AppConfig {
private final static String APP_CONFIG = "config";
private Context mC
private static AppConfig appC
public static AppConfig getAppConfig(Context context) {
if (appConfig == null) {
appConfig = new AppConfig();
appConfig.mContext =
return appC
public String get(String key) {
Properties props = get();
return (props != null) ? props.getProperty(key) : null;
public Properties get() {
FileInputStream fis = null;
Properties props = new Properties();
// 读取files目录下的config
// fis = activity.openFileInput(APP_CONFIG);
// 读取app_config目录下的config
File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
fis = new FileInputStream(dirConf.getPath() + File.separator
+ APP_CONFIG);
props.load(fis);
} catch (Exception e) {
} finally {
fis.close();
} catch (Exception e) {
private void setProps(Properties p) {
FileOutputStream fos = null;
// 把config建在files目录下
// fos = activity.openFileOutput(APP_CONFIG, Context.MODE_PRIVATE);
// 把config建在(自定义)app_config的目录下
File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
File conf = new File(dirConf, APP_CONFIG);
fos = new FileOutputStream(conf);
p.store(fos, null);
fos.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
fos.close();
} catch (Exception e) {
public void set(Properties ps) {
Properties props = get();
props.putAll(ps);
setProps(props);
public void set(String key, String value) {
Properties props = get();
props.setProperty(key, value);
setProps(props);
public void remove(String... key) {
Properties props = get();
for (String k : key)
props.remove(k);
setProps(props);
* Android各版本的兼容方法
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 extCacheD
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);
还有FileUtil类
public class FileUtil {
* 获取目录文件大小
* @param dir
public static long getDirSize(File dir) {
if (dir == null) {
if (!dir.isDirectory()) {
long dirSize = 0;
File[] files = dir.listFiles();
for (File file : files) {
if (file.isFile()) {
dirSize += file.length();
} else if (file.isDirectory()) {
dirSize += file.length();
dirSize += getDirSize(file); // 递归调用继续统计
return dirS
* 转换文件大小
* @param fileS
* @return B/KB/MB/GB
public static String formatFileSize(long fileS) {
java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");
String fileSizeString = "";
if (fileS & 1024) {
fileSizeString = df.format((double) fileS) + "B";
} else if (fileS & 1048576) {
fileSizeString = df.format((double) fileS / 1024) + "KB";
} else if (fileS & ) {
fileSizeString = df.format((double) fileS / 1048576) + "MB";
fileSizeString = df.format((double) fileS / ) + "G";
return fileSizeS
以上就是缓存清理了,完美搞定!
阅读(...) 评论()Android清除数据、清除缓存、一键清理的区别 - 简书
Android清除数据、清除缓存、一键清理的区别
在Android设备中,我们经常会看到与系统或者应用相关的清除功能有:清除数据、清除缓存、一键清理,这么多清除功能对于一个程序猿就够难理解了,偏偏很多安卓设备上都有这些功能,对于用户来说就更难理解,趁着在把玩手机的时候想到了这一点,索引追根究底了解他们的具体区别。
清除数据和清除缓存
清除数据、清除缓存、一键清理的区别
清除数据主要是清除用户配置,比如SharedPreferences、数据库等等,这些数据都是在程序运行过程中保存的用户配置信息,清除数据后,下次进入程序就和第一次进入程序时一样;
缓存是程序运行时的临时存储空间,它可以存放从网络下载的临时图片,从用户的角度出发清除缓存对用户并没有太大的影响,但是清除缓存后用户再次使用该APP时,由于本地缓存已经被清理,所有的数据需要重新从网络上获取,注意:为了在清除缓存的时候能够正常清除与应用相关的缓存,请将缓存文件存放在getCacheDir()或者 getExternalCacheDir()路径下。比如对微信清除缓存,则聊天记录、朋友圈缓存的用户头像、图片、文字等信息都会被清除掉,清除缓存后再次进入微信时你会发现消息记录被清空了,朋友圈的图片和用户头像需要加载一会才能正常显示。
一键清理是系统级别的功能,它主要是杀后台进程,以达到释放内存的目的,但杀掉哪些进程和清理时设置的重要值阈值有关,重要值越大说明进程重要程度越低,如果在清理时某个进程的重要值大于该阈值,该进程就会被杀掉。比如微信等应用在后台,一件清理后会将微信和与之相关的服务都杀掉(有的服务做了特殊处理,杀不死!!!)。
为了让程序被卸载后不在文件系统中留下毫无关联的无用文件,建议将应用相关的配置和缓存文件存放在程序被卸载时会删掉的文件夹下面(音乐文件、视频文件、图片、电子书这种适合多个应用阅读和浏览的文件除外),具体路径有:
/data/data/package/
getFilesDir()
getCacheDir()
getExternalCacheDir()(是否能够在程序被卸载时被删除与API的等级有关)
getExternalFilesDir()(是否能够在程序被卸载时被删除与API的等级有关)
博客:http://zmywly8866.github.io/
Github:/zmywly8866
知乎:/people/zhang-ming-yun-97

我要回帖

更多关于 清除手机缓存数据 的文章

 

随机推荐