我正在实施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);
获取正在运行的应用程序
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runAppList = am.getRunningAppProcesses();
int listsize = runAppList.size();
Log.v("tag", "listsize..." + listsize);
答案 0 :(得分:1)
您可以使用 IPackageStatsObserver.aidl 界面执行此操作。在你的app src目录中创建包 android.content.pm ,并在代码下面实现它将返回所有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;}
});