利用反射机制清除数据:设置->应用程序->应用名->
准备条件:
IPackageDataObserver.aidl
IPackageStatsObserver.aidl
PackageStats.aidl
清除数据:
ActivityManager am = (ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE); am.clearApplicationUserData(packageName, mClearDataObserver);
清除缓存:
扫描二维码关注公众号,回复:
412614 查看本文章
Method getPackageSizeInfo = pm.getClass().getMethod("getPackageSizeInfo", String.class, IPackageStatsObserver.class); List<ApplicationInfo> application = new ArrayList(); application = pm.getInstalledApplications(0); for(int i=0;i<application.size();i++) { ApplicationInfo app = application.get(i); getPackageSizeInfo.invoke(pm, app.packageName, new IPackageStatsObserver.Stub() { @Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { if(pStats.cacheSize != 0) { cacheSize += pStats.cacheSize; Log.e(TAG, "cacheSize: " + pStats.packageName + " ;" + pStats.cacheSize); } } }); }