Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android獲取系統應用大小的方法

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();
			}
		}
	}
}


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved