`
hsx9566
  • 浏览: 174236 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android 获取应用程序的大小,数据大小,缓存大小

阅读更多

以下方法支持Android1.1到2.3.3,即目前所有版本

需要两个aidl文件:

IPackageStatsObserver.aidl
PackageStats.aidl

 

//获取应用程序信息
public void getpkginfo(String pkg){
 PackageManager pm = getPackageManager();
 try {
  Method getPackageSizeInfo = pm.getClass()
  .getMethod("getPackageSizeInfo", String.class,
    IPackageStatsObserver.class);
  getPackageSizeInfo.invoke(pm, pkg,
  new PkgSizeObserver());
 } catch (Exception e) {
  // TODO: handle exception
 }
}
class PkgSizeObserver extends IPackageStatsObserver.Stub {
    public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) {
         System.out.println("应用程序大小: "+pStats.codeSize);
        
     }
 }

 

完整代码参考附件。

分享到:
评论
8 楼 androidli 2011-12-22  
相当的好啊!!!
7 楼 antoon.nee 2011-10-18  
楼主,请教一下,为什么直接用PackageStats.java无法获取到程序数据大小呢?
一定要写aidl吗?
6 楼 stdying 2011-10-17  
虽然不懂,还是看看吧。
5 楼 mochenyang 2011-09-28  
楼主,我做的是获取手机上所有安装软件的缓存,如果cacheSize大于0的我都获取出来,然后显示,但是有一个问题,就是扫描时不能把所有有缓存数据的都显示出来,比如有时显示2个,但重新扫描又变3个这样子,就是好像是丢失一样,怎么回事啊?能帮帮我吗?
4 楼 qinjuning 2011-09-23  
写的很好 ,看了源代码 收获很大。 就是本人对反射不是很了解  呵呵
3 楼 WinLi 2011-09-21  
谢谢分享,完美通过
2 楼 hsx9566 2011-08-16  
wxy5498 写道
怎么我在机器上获得的大小和其他应用程序的比较,都偏大,出现错误,是不是这种获取大小不准确,不知道博主有没有验证过

我发的都是试可以的,才发上来。
1 楼 wxy5498 2011-08-06  
怎么我在机器上获得的大小和其他应用程序的比较,都偏大,出现错误,是不是这种获取大小不准确,不知道博主有没有验证过

相关推荐

Global site tag (gtag.js) - Google Analytics