2013-02-01 51 views
12

我爲獲得所有應用運行應用程序 及其大小,使用率和CPU使用率實現Android應用程序。如何以編程方式檢索所有和正在運行的應用程序大小,CPU使用情況?

但是我只拿到了所有和運行的應用程序的圖標,標籤和Packegename無法 檢索大小,使用率和CPU使用率

我在GooglePlayStore中看到一個應用程序,它是Android系統信息。在該應用程序中給出的所有系統信息

我想以編程方式檢索該信息。

誰能請幫助我獲得整個系統的信息提前

感謝.................

這裏是我的代碼:

爲獲得所有應用程序:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
PackageManager pm = getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA); 
ApplicationInfo entry = (ApplicationInfo) mListAppInfo.get(position); 
ImageView ivAppIcon = (ImageView) v.findViewById(R.id.ivIcon); 
TextView tvAppName = (TextView) v.findViewById(R.id.tvName); 
TextView tvPkgName = (TextView) v.findViewById(R.id.tvPack); 

// set data to display 
ivAppIcon.setImageDrawable(entry.loadIcon(mPackManager)); 
tvAppName.setText(entry.loadLabel(mPackManager)); 
tvPkgName.setText(entry.packageName); 

對於獲取運行應用程序

ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
List<ActivityManager.RunningAppProcessInfo> runAppList = am.getRunningAppProcesses(); 
int listsize = runAppList.size(); 
Log.v("tag", "listsize..." + listsize); 

回答

1

爲此,您可以使用IPackageStatsObserver.aidl接口。創建包android.content.pm在你的應用程序的src目錄中並實現下面的代碼它將返回所有appliscation大小。

Method getPackageSizedInfo =pm.getClass().getMethod("getPackageSizeInfo",String.class,IPackageStatsObserver.class); 

getPackageSizedInfo.invoke(pm, pkgname,new IPackageStatsObserver.Stub() { 
@Override 
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)throws RemoteException {double size=(double)pStats.codeSize+pStats.cacheSize+pStats.dataSize;} 
}); 
+0

(codeSize +數據尺寸+ CACHESIZE)將其返回totalAppSize或只(codeSize +數據尺寸)將成功返回總應用面積 – user3233280

+1

IM尋找應用程序列表和每個應用程序的內存大小,但我怎麼能找到CPU使用率每個應用? – user3233280

相關問題