13

すべてのアプリケーション実行中のアプリケーション 、およびそれらのサイズ、使用状況、CPU 使用状況を取得するための Android アプリケーションを実装しています。

しかし、私はすべてを取得し、実行中のアプリケーションのアイコン、ラベル、およびパッケージ名を取得できず、サイズ、使用状況、および CPU 使用率を取得できません。

AndroidSystem Infoである GooglePlayStore のアプリケーションを見ました。そのアプリでは、すべてのシステム情報が提供されます。

その情報をプログラムで取得したい。

誰でもシステム全体の情報を取得するのを手伝ってくれますか

前もって感謝します.................

これが私のコードです:

すべてのアプリケーションを取得する場合:

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);
4

1 に答える 1

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;}
});
于 2014-05-09T06:53:34.010 に答える