Android中获取应用程序(包)的大小(2)

package android.content.pm;      import android.content.pm.PackageStats;   /**   * API for package data change related callbacks from the Package Manager.   * Some usage scenarios include deletion of cache directory, generate   * statistics related to code, data, cache usage(TODO)   * {@hide}   */   oneway interface IPackageStatsObserver {              void onGetStatsCompleted(in PackageStats pStats, boolean succeeded);   }  

PackageStats.aidl文件

[java]

package android.content.pm;      parcelable PackageStats;  

     第三步、  创建一个类继承至IPackageStatsObserver.Stub (桩,)它本质上实现了Binder机制。当我们把该类的一个实例通过getPackageSizeInfo()调用时,并该函数继而启动了启动中间流程去获取相关包得信息大小,当扫描完成后,最后将查询信息回调至该类的onGetStatsCompleted(in PackageStats pStats, boolean succeeded)方法,信息大小封装在此实例上。例如:

[java]

//aidl文件形成的Bindler机制服务类       public class PkgSizeObserver extends IPackageStatsObserver.Stub{          /*** 回调函数,          * @param pStatus ,返回数据封装在PackageStats对象中          * @param succeeded  代表回调成功          */    @Override   public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)           throws RemoteException {      // TODO Auto-generated method stub       cachesize = pStats.cacheSize  ; //缓存大小              datasize = pStats.codeSize  ;  //数据大小               codesize =    pStats.codeSize  ;  //应用程序大小         }     }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wygjfz.html