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)