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

Posted yutingliuyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android获取系统应用大小的方法相关的知识,希望对你有一定的参考价值。

<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;"></span></span><pre name="code" class="java">List<PackageInfo> 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;}



<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">
</span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">
</span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">PkgSizeObserver.class</span></span>
<span style="font-size:18px;">//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();
			}
		}
	}
}</span>






以上是关于android获取系统应用大小的方法的主要内容,如果未能解决你的问题,请参考以下文章

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

Android 使用两个不同的代码片段获取当前位置 NULL

Android系统修改默认声音及大小

Android系统修改默认声音及大小