无需root,清除清理安卓,android的cache,缓存
来源:互联网 发布:php csrf漏洞 编辑:程序博客网 时间:2024/05/28 22:13
package com.agj.test;import java.io.File;import java.lang.reflect.Method;import android.content.Context;import android.content.pm.IPackageDataObserver;import android.content.pm.PackageManager;import android.os.Environment;import android.os.RemoteException;import android.os.StatFs;/** * 1.功能相当于,点击了 应用程序信息 里面的 清楚缓存按钮,而非 清除数据 * * 2.功能相当于,删除了/data/data/packageName/cache 文件夹里面所有的东西 * * 3.需要权限 <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> */public class CacheClearHelper {public static void clearCache(Context context) {try {PackageManager packageManager = context.getPackageManager();Method localMethod = packageManager.getClass().getMethod("freeStorageAndNotify", Long.TYPE,IPackageDataObserver.class);Long localLong = Long.valueOf(getEnvironmentSize() - 1L);Object[] arrayOfObject = new Object[2];arrayOfObject[0] = localLong;localMethod.invoke(packageManager, localLong, new IPackageDataObserver.Stub() {@Overridepublic void onRemoveCompleted(String packageName, boolean succeeded) throws RemoteException {}});} catch (Exception e) {e.printStackTrace();}}private static long getEnvironmentSize() {File localFile = Environment.getDataDirectory();long l1;if (localFile == null)l1 = 0L;while (true) {String str = localFile.getPath();StatFs localStatFs = new StatFs(str);long l2 = localStatFs.getBlockSize();l1 = localStatFs.getBlockCount() * l2;return l1;}}}
另外,IPackageDataObserver这个类找不到的话,那么就自己新建一个,建成如下的样子:
IPackageDataObserver.aidl的内容是:
/*
**
** Copyright 2007, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
package android.content.pm;
/**
* API for package data change related callbacks from the Package Manager.
* Some usage scenarios include deletion of cache directory, generate
* statistics related to code, data, cache usage(TODO)
* {@hide}
*/
oneway interface IPackageDataObserver {
void onRemoveCompleted(in String packageName, boolean succeeded);
}
- 无需root,清除清理安卓,android的cache,缓存
- 无需root,清除清理安卓,android的cache,缓存
- 无需root,清除清理安卓,android的cache,缓存
- 无需root,清除清理安卓,android的c…
- Android清除数据、清除缓存、一键清理的区别
- 安卓清除缓存
- Android缓存处理和清除数据、清除缓存、一键清理的区别
- Android缓存处理和清除数据、清除缓存、一键清理的区别
- 安卓应用清除缓存一般清理目录和代码(带弹框)
- 安卓开发root之后清理正在运行的APP
- 清理mem cache缓存
- WebView Cache 缓存清除
- WebView Cache 缓存清除
- WebView Cache 缓存清除
- 清除Cache缓存
- WebView Cache 缓存清除
- Cache清除缓存数据
- cache清除缓存!!!
- 搭建odoo开发调试环境
- 单链表反转的非递归与递归算法
- Aspose word导出照片代码实现
- Android中级教程之----Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!
- mybatis里面的时间段写法
- 无需root,清除清理安卓,android的cache,缓存
- 将文件复制到SD卡根目录下
- linux内核自旋锁API
- [BZOJ1040] [ZJOI2008] 骑士 - 基环外向树 + 树形DP
- Android动画之图片循环动画
- Percent百分比布局用法
- IOS SCNetworkReachability和Reachability监测网络连接状态
- 关于Xib使用AutoLayout动态设置cell高度
- 下载编译nexus设备映像