在Eclipse中显示应用程序大小

时间:2015-05-27 08:36:29

标签: android eclipse

我需要显示手机中安装的每个应用程序的大小!我怎样才能做到这一点?我试过这个:

PackageStats ps = new PackageStats(packageInfo.packageName);
int size = ps.codeSize; 

我每次都得到0值。请帮帮我

1 个答案:

答案 0 :(得分:0)

来自Getting installed app size

  

不幸的是,目前还没有正式的方法可以做到这一点。然而,   你可以调用PackageManager的隐藏getPackageSize方法   将PackageStats和IPackageStatsObserver AIDL导入我们的   项目并生成存根。然后,您可以使用反射来调用   getPackageSize:

PackageManager pm = getPackageManager();

Method getPackageSizeInfo = pm.getClass().getMethod(
    "getPackageSizeInfo", String.class, IPackageStatsObserver.class);

getPackageSizeInfo.invoke(pm, "com.android.mms",
    new IPackageStatsObserver.Stub() {

        @Override
        public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)
            throws RemoteException {

            Log.i(TAG, "codeSize: " + pStats.codeSize);
        }
    });
     

这显然是一个大黑客,不应该用于公众   应用

     

Android包大小使用AIDL与Eclipse和ADT APK盗版:使用   私人代码& Android中的资源

然后,您需要遍历每个应用程序并将包名称放在invoke(...)方法中。