android.app.ActivityManager#getRunningAppProcesses ( )源码实例Demo

下面列出了android.app.ActivityManager#getRunningAppProcesses ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: DroidPlugin   文件: IPluginManagerImpl.java
@Override
public boolean killBackgroundProcesses(String pluginPackageName) throws RemoteException {
    ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> infos = am.getRunningAppProcesses();
    boolean success = false;
    for (RunningAppProcessInfo info : infos) {
        if (info.pkgList != null) {
            String[] pkgListCopy = Arrays.copyOf(info.pkgList, info.pkgList.length);
            Arrays.sort(pkgListCopy);
            if (Arrays.binarySearch(pkgListCopy, pluginPackageName) >= 0 && info.pid != android.os.Process.myPid()) {
                Log.i(TAG, "killBackgroundProcesses(%s),pkgList=%s,pid=%s", pluginPackageName, Arrays.toString(info.pkgList), info.pid);
                android.os.Process.killProcess(info.pid);
                success = true;
            }
        }
    }
    return success;
}
 
源代码2 项目: SimpleProject   文件: AppUtil.java
/**
 * 获取APP的进程名
 * @param context
 * @return
 */
public static String getProcessName(Context context) {
	int pid = Process.myPid();
	ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
	if (am == null) {
		return null;
	}

	for (ActivityManager.RunningAppProcessInfo process : am.getRunningAppProcesses()) {
		if (process.pid == pid) {
			return process.processName;
		}
	}

	return null;
}
 
源代码3 项目: nono-android   文件: SystemProcessor.java
/**
 * 获得当前进程的名字
 *
 * @param context
 * @return 进程号
 */
public static String getCurProcessName(Context context) {

    int pid = android.os.Process.myPid();

    ActivityManager activityManager = (ActivityManager) context
            .getSystemService(Context.ACTIVITY_SERVICE);

    for (ActivityManager.RunningAppProcessInfo appProcess : activityManager
            .getRunningAppProcesses()) {

        if (appProcess.pid == pid) {
            return appProcess.processName;
        }
    }
    return null;
}
 
源代码4 项目: firebase-android-sdk   文件: CommonUtils.java
/**
 * Returns the RunningAppProcessInfo object for the given package, or null if it cannot be found.
 */
public static ActivityManager.RunningAppProcessInfo getAppProcessInfo(
    String packageName, Context context) {
  final ActivityManager actman =
      (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
  final List<ActivityManager.RunningAppProcessInfo> processes = actman.getRunningAppProcesses();
  ActivityManager.RunningAppProcessInfo procInfo = null;
  // According to docs, the result of getRunningAppProcesses can be null instead of empty.
  // Yay.
  if (processes != null) {
    for (ActivityManager.RunningAppProcessInfo info : processes) {
      if (info.processName.equals(packageName)) {
        procInfo = info;
        break;
      }
    }
  }
  return procInfo;
}
 
源代码5 项目: school_shop   文件: HXSDKHelper.java
/**
 * check the application process name if process name is not qualified, then we think it is a service process and we will not init SDK
 * @param pID
 * @return
 */
private String getAppName(int pID) {
    String processName = null;
    ActivityManager am = (ActivityManager) appContext.getSystemService(Context.ACTIVITY_SERVICE);
    List l = am.getRunningAppProcesses();
    Iterator i = l.iterator();
    PackageManager pm = appContext.getPackageManager();
    while (i.hasNext()) {
        ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next());
        try {
            if (info.pid == pID) {
                CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
                // Log.d("Process", "Id: "+ info.pid +" ProcessName: "+
                // info.processName +"  Label: "+c.toString());
                // processName = c.toString();
                processName = info.processName;
                return processName;
            }
        } catch (Exception e) {
            // Log.d("Process", "Error>> :"+ e.toString());
        }
    }
    return processName;
}
 
源代码6 项目: KUtils   文件: Utils.java
/**
 * whether this process is named with processName
 *
 * @param context     上下文
 * @param processName 进程名
 * @return 是否含有当前的进程
 */
public static boolean isNamedProcess(Context context, String processName) {
    if (context == null || TextUtils.isEmpty(processName)) {
        return false;
    }

    int pid = android.os.Process.myPid();
    ActivityManager manager = (ActivityManager) context.getSystemService(
            Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> processInfoList
            = manager.getRunningAppProcesses();
    if (processInfoList == null) {
        return true;
    }

    for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) {
        if (processInfo.pid == pid &&
                processName.equalsIgnoreCase(processInfo.processName)) {
            return true;
        }
    }
    return false;
}
 
源代码7 项目: StartUp-Protector   文件: ProtectorUtils.java
/**
 * is main process
 *
 * @param context
 * @return
 */
public static boolean isMainProcess(Context context) {
    try {
        ActivityManager am = ((ActivityManager) context
                .getSystemService(Context.ACTIVITY_SERVICE));
        List<ActivityManager.RunningAppProcessInfo> processInfo = am.getRunningAppProcesses();
        String mainProcessName = context.getPackageName();
        int myPid = android.os.Process.myPid();
        for (ActivityManager.RunningAppProcessInfo info : processInfo) {
            if (info.pid == myPid && mainProcessName.equals(info.processName)) {
                return true;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
 
源代码8 项目: Tpay   文件: HKApplication.java
/**
 * 获取APP的进程名
 *
 * @param pID
 * @return
 */
private String getAppName(int pID) {
    String processName = null;
    ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    List l = am.getRunningAppProcesses();
    Iterator i = l.iterator();
    PackageManager pm = this.getPackageManager();
    while (i.hasNext()) {
        ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next());
        try {
            if (info.pid == pID) {
                processName = info.processName;
                return processName;
            }
        } catch (Exception e) {
            // Log.d("Process", "Error>> :"+ e.toString());
        }
    }
    return processName;
}
 
public int getApplicationImportance(ReactApplicationContext context) {
    ActivityManager activityManager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
    if (activityManager == null) {
        return 0;
    }
    List<ActivityManager.RunningAppProcessInfo> processInfos = activityManager.getRunningAppProcesses();
    if (processInfos == null) {
        return 0;
    }

    for (ActivityManager.RunningAppProcessInfo processInfo : processInfos) {
        if (processInfo.processName.equals(context.getApplicationInfo().packageName)) {
            return processInfo.importance;
        }
    }
    return 0;
}
 
源代码10 项目: DroidPlugin   文件: Utils.java
public static String getProcessName(Context context, int pid) {
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> raps = am.getRunningAppProcesses();
    for (ActivityManager.RunningAppProcessInfo rap : raps) {
        if (rap != null && rap.pid == pid) {
            return rap.processName;
        }
    }
    return null;
}
 
源代码11 项目: My-MVP   文件: MyApplication.java
/**
 * is main process
 */
private static boolean isMainProcess(Application application) {
    int pid = android.os.Process.myPid();
    String processName = "";
    ActivityManager manager = (ActivityManager) application.getSystemService
            (Context.ACTIVITY_SERVICE);
    for (ActivityManager.RunningAppProcessInfo process : manager.getRunningAppProcesses()) {
        if (process.pid == pid) {
            processName = process.processName;
        }
    }
    return application.getPackageName().equals(processName);
}
 
源代码12 项目: RunMap   文件: SystemUtils.java
public static String getProcessName(Context context) {
    int pid = android.os.Process.myPid();//获取进程pid
    String processName = "";
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);//获取系统的ActivityManager服务
    for (ActivityManager.RunningAppProcessInfo appProcess : am.getRunningAppProcesses()) {
        if (appProcess.pid == pid) {
            processName = appProcess.processName;
            return processName;
        }
    }
    return processName;
}
 
源代码13 项目: ConfessTalkKiller   文件: HookHelper.java
public static String getProcessName(Context context) {
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
    if (runningApps == null) {
        return null;
    }
    for (ActivityManager.RunningAppProcessInfo proInfo : runningApps) {
        if (proInfo.pid == android.os.Process.myPid()) {
            if (proInfo.processName != null) {
                return proInfo.processName;
            }
        }
    }
    return null;
}
 
源代码14 项目: Android-UtilCode   文件: AppUtils.java
/**
 * 判断App是否处于前台
 *
 * @return {@code true}: 是<br>{@code false}: 否
 */
public static boolean isAppForeground() {
    ActivityManager manager = (ActivityManager) Utils.getContext().getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> info = manager.getRunningAppProcesses();
    if (info == null || info.size() == 0) return false;
    for (ActivityManager.RunningAppProcessInfo aInfo : info) {
        if (aInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
            return aInfo.processName.equals(Utils.getContext().getPackageName());
        }
    }
    return false;
}
 
源代码15 项目: FileDownloader   文件: FileDownloadUtils.java
private static boolean isAppOnForeground(Context context) {
    ActivityManager activityManager = (ActivityManager) context.getApplicationContext()
            .getSystemService(Context.ACTIVITY_SERVICE);
    if (activityManager == null) return false;

    List<ActivityManager.RunningAppProcessInfo> appProcesses =
            activityManager.getRunningAppProcesses();
    if (appProcesses == null) return false;

    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    if (pm == null) return false;
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
        if (!pm.isInteractive()) return false;
    } else {
        if (!pm.isScreenOn()) return false;
    }

    String packageName = context.getApplicationContext().getPackageName();
    for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
        // The name of the process that this object is associated with.
        if (appProcess.processName.equals(packageName) && appProcess.importance
                == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
            return true;
        }

    }
    return false;
}
 
源代码16 项目: BaseProject   文件: AppInfoUtil.java
/**
 * 获取当前运行的所有进程名
 */
public static List<String> getProcessName(@NonNull Context context, @NonNull String packageName) {
    List<String> list = new ArrayList<>();
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    if (null == activityManager) {
        return null;
    }
    for (ActivityManager.RunningAppProcessInfo appProcess : activityManager.getRunningAppProcesses()) {
        if (appProcess.processName.startsWith(packageName)) {
            list.add(appProcess.processName);
        }
    }
    return list;
}
 
源代码17 项目: Android_framework   文件: CommonUtils.java
/**
 * 获取进程名
 */
public static String getCurrentProcessName(Context context){
    String currentProcessName = "";
    int pid = android.os.Process.myPid();
    ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses())
    {
        if (processInfo.pid == pid)
        {
            currentProcessName = processInfo.processName;
            break;
        }
    }
    return currentProcessName;
}
 
源代码18 项目: Hook   文件: AliPlugin.java
public String getProcessName(Context context) {
    int pid = android.os.Process.myPid();
    ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) {
        if (processInfo.pid == pid) {
            return processInfo.processName;
        }
    }
    return null;
}
 
源代码19 项目: AndroidProcess   文件: BackgroundUtil.java
/**
 * 方法2:通过getRunningAppProcesses的IMPORTANCE_FOREGROUND属性判断是否位于前台,当service需要常驻后台时候,此方法失效,
 * 在小米 Note上此方法无效,在Nexus上正常
 *
 * @param context     上下文参数
 * @param packageName 需要检查是否位于栈顶的App的包名
 * @return
 */
public static boolean getRunningAppProcesses(Context context, String packageName) {
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    if (appProcesses == null) {
        return false;
    }
    for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
        if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) {
            return true;
        }
    }
    return false;
}
 
public void onCreate() {
	if (!AppInfo.usingApkSplits) {
		MonkeyPatcher.monkeyPatchApplication(this, this,
				this.realApplication, this.externalResourcePath);

		MonkeyPatcher.monkeyPatchExistingResources(this,
				this.externalResourcePath, null);
	} else {
		MonkeyPatcher.monkeyPatchApplication(this, this,
				this.realApplication, null);
	}
	super.onCreate();
	if (AppInfo.applicationId != null) {
		try {
			boolean foundPackage = false;
			int pid = Process.myPid();
			ActivityManager manager = (ActivityManager) getSystemService("activity");

			List<ActivityManager.RunningAppProcessInfo> processes = manager
					.getRunningAppProcesses();
			boolean startServer = false;
			if ((processes != null) && (processes.size() > 1)) {
				for (ActivityManager.RunningAppProcessInfo processInfo : processes) {
					if (AppInfo.applicationId
							.equals(processInfo.processName)) {
						foundPackage = true;
						if (processInfo.pid == pid) {
							startServer = true;
							break;
						}
					}
				}
				if ((!startServer) && (!foundPackage)) {
					startServer = true;
					if (Log.isLoggable("InstantRun", 2)) {
						Log.v("InstantRun",
								"Multiprocess but didn't find process with package: starting server anyway");
					}
				}
			} else {
				startServer = true;
			}
			if (startServer) {
				Server.create(AppInfo.applicationId, this);
			}
		} catch (Throwable t) {
			if (Log.isLoggable("InstantRun", 2)) {
				Log.v("InstantRun", "Failed during multi process check", t);
			}
			Server.create(AppInfo.applicationId, this);
		}
	}
	if (this.realApplication != null) {
		this.realApplication.onCreate();
	}
}