package com.elphin.framework.util; import android.app.ActivityManager; import android.content.Context; import java.util.LinkedList; import java.util.List; /** * Created with IntelliJ IDEA. * User: guangongbo * Date: 13-7-8 * Time: 下午8:24 */ public final class ProcessUtil { /** * 判断当前进程是否为主进程 * * @param context * @return */ public static boolean isMainProcess(Context context) { return getProcessName(context, android.os.Process.myPid()).equals(context.getPackageName()); } /** * 根据 pid 获取进程名称 * * @param context * @param pid * @return */ public static String getProcessName(Context context, int pid) { final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); final List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.getRunningAppProcesses(); try { for (ActivityManager.RunningAppProcessInfo info : runningAppProcesses) { if (info.pid == pid) { return info.processName; } } } catch (Exception e) { } return ""; } /** * 获取当前程序的所有进程 pid * @param context * @return */ public static int[] getPids(Context context) { final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); final List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.getRunningAppProcesses(); try { final LinkedList<Integer> cachePids = new LinkedList<Integer>(); for (ActivityManager.RunningAppProcessInfo info : runningAppProcesses) { if (info.uid == android.os.Process.myUid()) { cachePids.add(info.pid); } } final int[] pids = new int[cachePids.size()]; for (int i = 0, len = pids.length; i < len; ++i) { pids[i] = cachePids.get(i); } return pids; } catch (Exception e) { } return new int[0]; } }