Skip to content

YkSix/AndroidProcesses

 
 

Repository files navigation

AndroidProcesses

Maven Central License API

A small library to get the current running processes on Android


Why would I need this?

As of Android 5.0, it has become increasingly difficult to get a list of running apps. getRunningTasks(int) is now deprecated. Android 5.1.1+ killed getRunningAppProcesses() (as of Android 5.1.1+ it only returns your app). The documentation hasn't changed and Google is ignoring requests to either update the documentation or restore the original implementation.

Using UsageStatsManager, it is possible to get a list of running apps. However, this requires the user to grant your application special permissions in Settings. It has been reported that some OEMs have removed this setting.

This library gets a list of running apps and doesn't require any permissions. See the sample application for details. Download the sample APK.

Usage

Get a list of RunningAppProcessInfo:

List<ActivityManager.RunningAppProcessInfo> appProcesses = ProcessManager.getRunningAppProcessInfo(context);

Check if your app is in the foreground:

if (ProcessManager.isMyProcessInTheForeground()) {
  // do stuff
}

Get running apps and some information about them:

List<AndroidAppProcess> processes = ProcessManager.getRunningAppProcesses();
for (AndroidAppProcess process : processes) {
  String processName = process.name;
  
  Stat stat = process.stat();
  int pid = stat.getPid();
  int parentProcessId = stat.ppid();
  long startTime = stat.stime();
  int policy = stat.policy();
  char state = stat.state();

  Statm statm = process.statm();
  long totalSizeOfProcess = statm.getSize();
  long residentSetSize = statm.getResidentSetSize();
}

Download

Download the latest AAR or grab via Gradle:

compile 'com.jaredrummler:android-processes:1.0.2'

or Maven:

<dependency>
  <groupId>com.jaredrummler</groupId>
  <artifactId>android-processes</artifactId>
  <version>1.0.2</version>
  <type>aar</type>
</dependency>

License

Copyright (C) 2015, Jared Rummler

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

A small library to get the current running processes on Android

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%