当前位置:编程学习 > wap >>

高手请进!android文件清理

我正在做一个文件管理类似的软件,里面有一个功能:清理应用缓存。但是我怎么判断一个文件是否是有用。我试着用cache、temp、tmp、log一些关键词去查找,但是我感觉这样并不可靠。有没有大神曾经做过这种功能。求指点一二! --------------------编程问答-------------------- 这个同求,我也有这个问题 --------------------编程问答-------------------- 一个文件是否有用是什么意思? 还在使用?如果是,可以用引用计数 --------------------编程问答-------------------- 缓存都是存放在data/包名/cache文件夹下的,你只要把每个应用程序的这个文件夹下的文件全部删除就行了,不需要判断有没有用,因为是缓存,这只是在应用程序要用的时候显示的更快一些,删掉了也可以,只是需要多等一会而已 --------------------编程问答-------------------- 但是这个文件夹第三方应用部能访问啊 --------------------编程问答-------------------- 應用有root權限嗎? --------------------编程问答-------------------- 缓存无所谓有用没用,都是可以删掉的,不会出问题
具体删除缓存可以参考:http://bbs.csdn.net/topics/390573573 --------------------编程问答-------------------- Method getPackageSizeInfo = pm.getClass().getDeclaredMethod("getPackageSizeInfo", String.class,IPackageStatsObserver.class);  
这样通过反射机制调用获取缓存。然后再进行删除。实际上是获取是调用的getPackageSizeInfo,删除是调用的deleteApplicationCacheFiles方法。最后删除cache文件夹。

只是因为你没有root权限,所以要调用发射机制去获取里面的方法。

反射机制的使用可以参考:Android中获取应用程序(包)的大小-----PackageManager的使用(二) --------------------编程问答-------------------- 一般根据关键词可以区分,不过我觉得也不太可靠,如果有奇葩程序员,不根据命名来存放文件,可能删了就会出问题。 --------------------编程问答-------------------- 下午试着写一个程序去调用deleteApplicationCacheFiles删除缓存,但是出现无权限的问题。
加上android.permission.DELETE_CACHE_FILES也会报没有这个权限。这个应该是更高级别的权限。
但是你加上android:sharedUserId="android.uid.system"之后,又会告诉你没有签名。
不知道360是怎么做到的??求高手指点. --------------------编程问答-------------------- 相关链接:
Android获取其他包的Context实例然后干坏事
Android获取应用程序的大小
利用java反射机制调用android隐藏的api时没有相关权限
 错误 -- Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE --------------------编程问答-------------------- 如果我想对整个SD文件进行垃圾清理又该如何? --------------------编程问答-------------------- 大神帮帮忙,问个问题:android4.0当弹出dialog时会有半透明阴影,想问下这个阴影是在源码里哪实现的,这个阴影是怎么画出来的,如果我想在framework里改他的大小,怎么改?如能解决,感激不尽啊。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,