android系统的大小,android获取系统应用大小的方法

List packages = getPackageManager().getInstalledPackages(0);public PkgSizeObserver pkgsizeobserver = new PkgSizeObserver();try {

Method method;

method = this.getPackageManager().getClass().getMethod("getPackageSizeInfo",

new Class[] { String.class,

IPackageStatsObserver.class });

method.invoke(this.getPackageManager(),packageInfo.packageName, pkgsizeobserver);

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InvocationTargetException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

synchronized (pkgsizeobserver) {

try {

pkgsizeobserver.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

totalApp = pkgsizeobserver.cachesize + pkgsizeobserver.codesize

+ pkgsizeobserver.datasize;//PkgSizeObserver.class//aidl文件形成的Bindler机制服务类

public class PkgSizeObserver extends IPackageStatsObserver.Stub {

public long cachesize = 0;

public long datasize = 0;

public long codesize = 0;

/***

* 回调函数,

*

* @param pStatus

* ,返回数据封装在PackageStats对象中

* @param succeeded

* 代表回调成功

*/

@Override

public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)

throws RemoteException {

// TODO Auto-generated method stub

if(succeeded)

{

cachesize = pStats.cacheSize; // 缓存大小

datasize = pStats.dataSize; // 数据大小

codesize = pStats.codeSize; // 应用程序大小

synchronized (this) {

this.notifyAll();

}

}

}

}

原文:http://blog.youkuaiyun.com/woyaochenggong774/article/details/46679881

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值