Android获取获取程序的大小,缓存的大小

来源:互联网 发布:淘宝开网店的保证金 编辑:程序博客网 时间:2024/06/02 14:56

在安卓开发中要想获得一个应用的大小,即将它所产生的数据的大小,和缓存的大小,需要用到android.content.pm. IPackageStatsObserver.aidlandroid.content.pm.PackageStats.aidl这两aidl,引入这两aidl之后,就可以定义如下方法得到缓存,程序的大小了(参数pkg为应用的包名):

 

//获取程序大小 ,缓存大小,

         publicvoid getpkginfo(String pkg) {

                   PackageManagerpm = context.getPackageManager();

                   try{

                            //通过反射技术得到私有方法:getPackageSizeInfo

                           MethodgetPackageSizeInfo =

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

                            getPackageSizeInfo.invoke(pm,pkg, new PkgSizeObserver());

                   }catch (Exception e) {

                   }

         }

 

         classPkgSizeObserver extends IPackageStatsObserver.Stub {

                   @Override

                   publicvoid onGetStatsCompleted(PackageStats pStats, boolean succeeded) {

                            Log.i(TAG,"程序大小为"+pStats.codeSize);

                            Log.i(TAG,"程序数据为"+pStats.dataSize);

                            Log.i(TAG,"程序缓存为"+pStats.cacheSize);

                   }

         }

原创粉丝点击