109_利用反射调用隐藏api获取应用程序的缓存大小

来源:互联网 发布:mesh网络 编辑:程序博客网 时间:2024/05/17 02:21

一、拷贝aidl文件

/mobilesafe/src/android/content/pm/IPackageStatsObserver.aidl

/mobilesafe/src/android/content/pm/PackageStats.aidl


二、Activities中


Method method = PackageManager.class.getDeclaredMethod("getPackageSizeInfo", new Class[] {String.class,IPackageStatsObserver.class });
method.invoke(pm, new Object[] { packname,new MyObserver(packname) });



private class MyObserver extends IPackageStatsObserver.Stub {
private String packname;

public MyObserver(String packname) {
this.packname = packname;
}

public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)
throws RemoteException {
long cache = pStats.cacheSize;   //获取缓存大小
long code = pStats.codeSize;    //获取代码大小
long data = pStats.dataSize;     //获取总大小
if (cache > 0) {
cacheInfo.put(packname, cache);
}
}
}

0 0
原创粉丝点击