如何以编程方式检索所有和运行应用程序大小,CPU使用情况?

Har*_*esh 12 storage android cpu-usage usage-statistics

我正在实现Android应用程序以获取所有应用程序和运行应用程序 及其大小,使用率和CPU使用率.

但我只得到所有正在运行的应用程序Icon,Label和Packegename无法检索大小,用法和CPU使用情况.

我在GooglePlayStore中看到了一个AndroidSystem Info的应用程序.在该应用程序中给出所有系统信息.

我想以编程方式检索该信息.

谁能帮助我获取全部系统信息

提前致谢.................

这是我的代码:

获取所有应用程序:

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);
Run Code Online (Sandbox Code Playgroud)

用于运行应用程序

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

Jay*_*iya 1

您可以使用IPackageStatsObserver.aidl接口来执行此操作。在您的应用程序 src 目录中创建包android.content.pm并执行以下代码它将返回所有应用程序大小。

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;}
});
Run Code Online (Sandbox Code Playgroud)