July 5, 2012

プロセス情報を取得する

システム上で動作しているプロセス情報を取得する方法です。

デバッグなどでバックグラウンドで存在しているプロセスを調べるのに利用できます。

例)プロセス情報をすべて取得し、プロセスID、パッケージ名を表示します。

ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appList = manager.getRunningAppProcesses();
Log.i(TAB, "Total apps:" + appList.size());
for (RunningAppProcessInfo info:appList) {
    Log.i(TAB,"PID:" + info.pid + " Name:" + info.processName);
}

プロセス情報を取得するにはパーミッションの設定が必要です。

<uses-permission android:name="android.permission.GET_TASKS"/>

実行すると下記のように表示されます。


ちなみにプロセスを停止させる場合は、ActivityManagerのkillBackgroundProcesses(パッケージ名)を使います。停止させる場合もパーミッションの設定が必要です。

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

参考:Android Developers:ActivityManager

No comments:

Post a Comment