Services running on Android device fall mainly in 3 categories. All of these can be viewed in WhatsRunning.
1. Init / Native Services
These services run as native Linux processes, managed by the grandparent process named init
.
vold
(Volume Daemon) manages SD cards and USB thumb drives. Another service zygote
starts and manages the (Java-like) Dalvik virtual machines for Android framework (system_server
) and all apps we use.thermal-engine
keep an eye on temperature of different components. ril-daemon
(Radio Interface Layer) facilitates communication with modem and SIM card.Most of these services keep running all the time with a few exceptions e.g. adbd
(ADB Daemon) runs only when you enable USB or Wireless Debugging in Developer Options.
2. Framework Services
These services make the core of the Android framework. Most of these services run in a single process named system_server
. 2 notable examples are Activity Manager and Package Manager to whom we interact with commandline tools am
and pm
to perform a lot of tasks related to apps.
Most of these services keep running all the time.
3. App Services
These services are hosted by apps - system and user. Some of them run permanently e.g. SystemUIService
(User Interface Service) which shows notifications, lock screen etc. and belongs to a system app named System UI (com.android.systemui
). But most of these apps run temporarily. They are either Background Services or Foreground Services.
Related: