banner
 en  ru

Contents


More FAQs

What does WhatsRunning do?


WhatsRunning shows you what's running on your device, which includes:

Also see Github README.

Process Details


Android process detail
  1. Process name (commandline)
  2. PID
  3. UID / GID
  4. CPU usage
  5. RAM / swap usage
  6. Android app packages count
  7. App tasks (activities) count
  8. App services count
  9. Process age

For more verbose details, please see screenshots.

More Details


Memory Info

Please see the details here.


App Services

App services detail
  1. App name
  2. Service name
  3. Service type: background, foreground, system, persistent etc.
  4. No. of client apps bound to the service
  5. When the service was started
  6. When the service was last active
  7. App UID
  8. App state: running or stopped

Active Apps

Active apps detail
  1. App name
  2. Count of activities (screens) and services running in the app
  3. App importance
  4. When the app started
  5. When the app was last active
  6. App UID
  7. App state: very active, less active, or inactive
  8. Kill score - chances of the app being killed when the device needs to spare RAM

App State Log

App state log detail
  1. App name
  2. Timestamp - when the app changed its state
  3. New state (of app package)
  4. New state (of app UID)
  5. App UID
  6. App process PID

Summary view

Summary view shows how many times the app has switched to a state since the App State Log was enabled.

App state log summary
  1. App name
  2. New state
  3. App UID
  4. Count

The screenshot shows that the Telegram app has switched to "Foreground Service" state 41 times while the Firefox was opened (switched to "Foreground" state) 35 times.


Alarms

Android alarm detail
  1. App name
  2. If the alarm will wake up the device
  3. When will alarm fire

Scheduled Jobs

Android scheduled job
  1. App name
  2. UID
  3. Job service name
  4. Conditions which must meet before the job is run

Auto-Starting Apps

Android auto start app
  1. App name
  2. Broadcast receiver(s) name
  3. UID

Wake Locks

Android wake lock Android kernel wake lock
  1. App name
  2. UID
  3. Wake lock name
  4. Duration (for how long the lock was held)
  5. Count (how many times the lock was held)

Wakeup Calls

Android wakeup call
  1. App name
  2. UID
  3. Alarm name which woke up the device
  4. App package name
  5. Wakeup count

Battery Hogs

Android battery hogs
  1. App name
  2. UID
  3. CPU and network usage
  4. App's active usage duration
  5. App's foreground (high priority) and background (low priority) activity duration
  6. Started services total duration
  7. Started services count
  8. Started service (shown only if enabled in drop-down menu)
  9. App name
  10. Service name
  11. Started service duration
  12. Service start count

Battery Watcher service shows a persistent notification with battery stats:

Android battery watcher
  1. Battery drain or charge rate; temperature; level; and estimated time (to fully drained or fully charged)
  2. How long the device has run on battery out of total time
  3. Battery time when display was on; percentage battery drop per hour
  4. Battery time when display was off; percentage battery drop per hour
  5. Battery time when device was dozing
  6. Average battery time per percentage battery drop
  7. Average network usage per percentage battery drop

Battery stats can be reset from the top right menu of Battery Hogs screen.


You can filter out the processes and apps you are not interested in.

WhatsRunning process filter

There's a long list of keywords you can use to search the specific things in the process list you are concerned about.

WhatsRunning search

And an even longer list of parameters you can apply to sort the process list.

WhatsRunning sort process

Process Watcher


Did you ever wonder:

Process Watcher is a single and simple answer to all of these questions. It keeps running in the background with your consent, watching processes continuously. A notification is persistently showing a brief summary of the processes life and death.

Android Process Watcher

You tap on the notification or "Show watcher data" menu item to see which processes have started and stopped since the watcher was started. Simple!

WhatsRunning menu

Use the menu items to see the list of all processes or those with some change in their state.

WhatsRunning menu WhatsRunning menu

PID field shows how many times the process has been recreated since the watcher started.

Android recreated processes

In this mode an average consumption of resources (CPU, RAM etc.) is shown for every process instead of the instantaneous values.


Please note that due to the limitations of common Android devices, Process Watcher is not a realtime Linux process tracker. So it can miss very short-lived processes. If you are interested in the technical details, please read this great article: The Difficulties of Tracking Running Processes on Linux.

Integration with PMX


WhatsRunning is integrated with PMX so you can open one from the other.

WhatsRunning PMX integration WhatsRunning PMX integration

So from WhatsRunning you can switch to PMX to find out what permissions a running (or dead) app is granted.

Similarly, from PMX you can switch to WhatsRunning to find out if an app with restricted permissions is still running. If yes, in what state it is and how much resources it is using.

This is particularly helpful when analyzing the effect of permissions like RUN_IN_BACKGROUND.

Using WhatsRunning with ADB


Limitations of ADB

ADB is not as powerful as root is. In our case, for instance, WhatsRunning takes more time to build the list of processes when it's running with ADB.

Additionally, on some OEM ROMs the ADB functionality might be crippled due to lacking permissions or other restrictions. You can check the current status of what ADB can do in About -> Privileges (menu item):

WhatsRunning privileges

Unfortunately we cannot do anything about it. And therefore some features are available only on rooted devices.

Specifically the following information is available only on rooted devices:

However some OEMs add extra settings to control ADB's privileges. For instance "Disable Permission Monitoring" on Oppo phones and "Allow granting permissions" in Security Settings on Xiaomi phones. See this question for more details.

The following instructions apply to near-AOSP ROMs. Customized ROMs might have different or missing settings.


Android 10 and below

So here we start how you can make WhatsRunning work with ADB.

If your device is not rooted, you need to turn Wireless ADB on before using WhatsRunning. Some devices have ADB over Network or Wireless Debugging setting available in Developer options:

ADB developer options

If you don't have this setting on your device, you need to connect the device to a USB host like PC once after every reboot.

Unhide Developer options screen:

  1. Go to Settings -> About and tap Build number five to seven times.

    Developer options should appear directly under Settings or in Settings -> System at the bottom.

Enable wireless debugging:

  1. Enable Android debugging in Developer options.

  2. Connect the device to the PC with a USB cable.

  3. On PC open a terminal window (or command prompt on Windows) and run:

    adb tcpip 5555

    You must have adb executable available on your PC to run the above command. If not, here's the download link.

Optional steps for verification:

  1. Disconnect the USB cable from the device.

  2. Connect your device and PC to a common Wi-Fi network.

  3. Get the IP address of the device (usually in Wi-Fi settings or in Settings -> About), say it's 192.168.1.1.

  4. On PC run:

    adb connect 192.168.1.1

  5. Run again:

    adb shell id -u

    It should print 2000 (or 0).

Connect WhatsRunning to ADB:

  1. Run WhatsRunning app and check ADB Shell in drawer. Enter port 5555 and tap connect.

    ADB developer options
  2. Allow USB Debugging if asked.

    ADB developer options

Leave the Android debugging enabled.

For more details see this.


Android 11 and above

On Android 11 and above, it's possible to turn on Wireless Debugging without connecting to a PC.

  1. Connect your device to a Wi-Fi network.

  2. Open WhatsRunning and Developer Options in Split-Screen mode. See instructions above how to unhide Developer Options.

  3. Enable Wireless debugging and Disable ADB authorization timeout in Developer Options. The latter ensures that you don't have to repeat the next two steps (pairing) again and again.

    Android 11 wireless ADB
  4. Open Wireless debugging and tap on "Pair device with pairing code". Note the pairing code and port number.

  5. In WhatsRunning check ADB Shell in drawer, enter both parameters in the shown fields, and tap pair.

    Android 11 wireless ADB
  6. After successful pairing now it's time to connect. Enter the new port number from Wireless debugging in the shown field and tap connect.

    Android 11 wireless ADB

Now you can leave the Wireless debugging enabled. Or better disable it and leave the USB debugging enabled.

If you entirely turn off the debugging in Developer options, or after every reboot, you need to repeat the last step.

For more details see this.


Here's a 1 minute video guide:

WhatsRunning Versions


WhatsRunning is available in two variants: Free and Pro. Both flavors are available as Play Store and GitHub / Telegram releases. All four variants have different package names, so can be installed simultaneously.

See screenshots for more details.

FAQs


Why WhatsRunning requires root or ADB access?

Android won't allow a normal user app to read the process information of other apps, even not completely of its own.

That's why we run a separate process with high privileges to circumvent the restrictions.

By default, the background process (daemon) is run with ADB UID (2000) or (if rooted) System UID (1000). On rooted devices UID can be changed in Advanced Settings.


My device isn't rooted. How can I use WhatsRunning?

Use with ADB. Please do read the note at the start. There are some limitations; more on some devices, less on others.


Why WhatsRunning requires INTERNET permission?

The standalone Pro version requires internet connection for license verification. The other versions - Free and Play Store Pro - can work completely offline. Though Play Store app needs internet connection for license verification.

Optional use of android.permission.INTERNET permission:

Local (on-device) use of android.permission.INTERNET permission:

Android does not allow apps to create network sockets without having the INTERNET permission even if they are meant to be used only locally and not for an internet connection. WhatsRunning has two uses of local (on-device) connections (the ability to create localhost sockets at 127.0.0.1) for Inter Process Communication (IPC):

So if the app is unable to create or use local network sockets, it will fail. And if you want to stop WhatsRunning from using internet, it must not stop the app from talking to on-device processes over loopback interface for IPC. This is usually the case with iptables-based firewalls like AFWall+ and VPN based firewalls like NetGuard. But some ROMs have a built-in feature to disallow network access:

Allow network access

This not only prevents the app from using internet but also disables its ability to create loopback sockets for IPC. So WhatsRunning won't be able to get root / ADB privileges if this permission is denied.


How much privacy friendly WhatsRunning is?

We are not interested in you or your device at all. We do not spy on you. We do not collect your data in any way, not even the crash logs. We believe in our users being educated, well-informed, and in-charge of their privacy. WhatsRunning strengthens you to protect your privacy.

You may also want to see our Privacy Policy.


What are "Orphan Activities / Services"?

When an app is running in background and is not in active usage, the Android operating system may kill its native process at any stage e.g. to spare RAM or to preserve other resources. But its Activities (the visible part) and Services may still be kept in record so that to resume at a later stage. Such components are labeled as "orphan" in WhatsRunning.


What's the difference between "CPU Usage" and "CPU Impact" in sorting?

CPU Impact is simply the time a process spends while using the CPU. CPU Usage is the ratio of CPU time to the age of process.

For details see utime, stime and starttime fields under /proc/[PID]/stat in proc(5).

WhatsRunning menu

So the processes with high CPU Usage and long life, or the processes with high CPU impact and short life should be considered battery hogs.

These are just two different ways to analyze and identify the culprits.


In process detail, what does Input/Output figures show?

App IO usage

Please see Which Android app is killing the flash storage?


Why do I see "Process does not exist" toast?

WhatsRunning killed process warning

It means that the process, or the app, or its component that you have tapped is not currently running, or is filtered out (in Process Filter).

Downloads / Screenshots

Please visit Github README.


Ratings / Reviews / Comments / Upvotes / Stars

Play Store Pro versionFree version

APKPureUpToDownXDAProductHunt

GithubAndroidForumsHackerNews


Have more questions?

Please check More FAQs. Or contact us via email or Telegram.