缓存都是存放在data/包名/cache文件夹下的,你只要把每个应用程序的这个文件夹下的文件全部删除就行了,不需要判断有没有用,因为是缓存,这只是在应用程序要用的时候显示的更快一些,删掉了也可以,只是需要多等一会而已

解决方案 »

  1.   

    缓存无所谓有用没用,都是可以删掉的,不会出问题
    具体删除缓存可以参考:http://bbs.csdn.net/topics/390573573
      

  2.   

    Method getPackageSizeInfo = pm.getClass().getDeclaredMethod("getPackageSizeInfo", String.class,IPackageStatsObserver.class);  
    这样通过反射机制调用获取缓存。然后再进行删除。实际上是获取是调用的getPackageSizeInfo,删除是调用的deleteApplicationCacheFiles方法。最后删除cache文件夹。只是因为你没有root权限,所以要调用发射机制去获取里面的方法。反射机制的使用可以参考:Android中获取应用程序(包)的大小-----PackageManager的使用(二)
      

  3.   

    下午试着写一个程序去调用deleteApplicationCacheFiles删除缓存,但是出现无权限的问题。
    加上android.permission.DELETE_CACHE_FILES也会报没有这个权限。这个应该是更高级别的权限。
    但是你加上android:sharedUserId="android.uid.system"之后,又会告诉你没有签名。
    不知道360是怎么做到的??求高手指点.
      

  4.   

    相关链接:
    Android获取其他包的Context实例然后干坏事
    Android获取应用程序的大小
    利用java反射机制调用android隐藏的api时没有相关权限
     错误 -- Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
      

  5.   

    大神帮帮忙,问个问题:android4.0当弹出dialog时会有半透明阴影,想问下这个阴影是在源码里哪实现的,这个阴影是怎么画出来的,如果我想在framework里改他的大小,怎么改?如能解决,感激不尽啊。