Android Services and Daemons

This topic was published by and viewed 4632 times since "". The last page revision was "".

Viewing 1 post (of 1 total)
  • Author
    Posts

  • DevynCJohnson
    Keymaster
    • Topics - 437
    • @devyncjohnson

    The Android operating system has many services and other software that run in the background. What are these services and processes and why are they needed?

    In this article, "GNU/Linux" is used to specify Linux systems using the GNU userland as opposed to Dalvik/Linux (a.k.a. Android). To see this for yourself, open a terminal and type the following commands. The output indicates that your Android system is using the Linux kernel. Thus, it is a Linux system.

    cat /proc/sys/kernel/ostype
    cat /proc/sys/kernel/osrelease
    cat /proc/sys/kernel/version

    On my system

    app_75@android:/ $ cat /proc/sys/kernel/ostype
    Linux
    app_75@android:/ $ cat /proc/sys/kernel/osrelease
    3.0.8+
    app_75@android:/ $ cat /proc/sys/kernel/version
    #181 PREEMPT Sat Aug 10 14:05:01 CST 2013

    A "Service" is special software that runs in the background like a daemon on GNU/Linux. Services do not have GUIs. A "started service" runs in the background until it completes its task, crashes, or is explicitly closed by the user or application. A "bound service" persists until no more apps are attached or bound to the service.

    A "provider" or "content provider" controls the security of a collection of data. This collection is usually in the form of a table (rows and columns; objects and attributes). Applications can only read, write, or edit this data is the content provider allows the app access.

    A "contract" defines the format used to organize data. A contract may specify a particular set of data belongs to a pre-defined table of data or is organized in another manner.

    An "API" (Application Programming Interface) is a standardized software component with predefined input, output, and parameters. Developers can use APIs to easily create programs that follow standards and work on systems that adhere to the API.

    An "App" is an application or program that is run on a mobile device like Android systems.

    A "daemon" is a process that runs in the background without owning a GUI. Services are usually daemons, and daemons are typically considered services. However, the exact difference between services and daemons is blurred. In general, they can be considered the same entity. However, some people use "daemon" to refer to a piece of software and "service" to refer to the actions and APIs offered by a daemon.

    A "process" is any software that is being executed or was executing (like cached-processes) on the CPU. Daemons, running apps, providers, and services are examples of processes.

    Android Services, Daemons, etc.

    • Activity Manager - Manages on-going system activity.
    • Android Core Apps - This is a collection of software that may include the stock software (like the browser, email client, etc.), UserDictionary, Settings, etc.
    • Android Keyboard - The software/virtual keyboard.
    • Android Live Wallpapers - This is the central app for the providing support for Live Wallpapers (animated/moving wallpaper).
    • Binder - This software provides a unified and transparent interface for applications to communicate with each other or with system components via /dev/binder. Developers do not need to know specifics about Binder when designing a program that ca communicate with other apps.
    • Browser - The default (stock) web-browser that almost always comes with Android pre-installed.
    • Calendar - This is the app that provides a calendar and its user interface (GUI).
    • Calendar Provider - This is the provider that permits or denies access to the Calendar's data.
    • Calendar Storage - The calendar database; this database includes the user's schedule, events, birthdays, tasks, etc. written to the Calendar.
    • CallLog Provider - The provider for call history (lists calls received, made, missed, etc.).
    • Certificate Installer - This application installs certificates (authentication for wifi and other purposes) as Root without the device being rooted.

    NOTE: Rooting a device allows the user to use Root privileges or be the Root user. These Root privileges are the same as the Root privileges seen on GNU/Linux systems (like the "sudo" command).

    • Clock - This is the clock widget that can be placed on the home-screens (workspaces). This clock is not the same as the clock seen in the system bar.
    • com.android.backupconfirm - This piece of software that confirms a request to backup or restore a system. Without user confirmation, this dialog will close and the backup or restore will be canceled.
    • com.android.provision - This is a service that provides provisioning. Provisioning is the process of setting up a network connection that will allow new users. This service is needed when the user's phone moves from one cell-tower to the next. This service is also needed for various networking and Wifi.
    • com.android.sharedstoragebackup - This service performs a backup of shared-storage filesystems.
    • com.android.smspush - This service is used to push/send SMS messages that are used to control a device. Recipients use this same service to accept and read the SMS messages. The message can address all apps or a particular app.
    • Contacts - The collection of software that manages contact information.
    • Contacts Provider - A provider that manages information about all contacts (from email, phone, etc.).
    • Contacts Storage - The database of contact information used by the Contacts Provider.
    • Download Manager - Manages all downloads including those from the Play Store. Apps can have this service run the download instead of themselves.
    • DRM Protected Content - This is a provider that can allow or deny access to DRM-protected content.
    • DRM Protected Content Storage - This database stores information on various DRM-related tasks and files.
    • Email - This is the stock email client for email accounts besides Google-Mail (which uses "Gmail" instead).
    • ES Task Manager - This is an app made by the ES App Group. Users can use this app to kill various Android processes and services. This app has some other features.
    • Exchange Services - This services synchronizes, sends, and receives the email accounts on the Android system.
    • Gmail - A web-service providing email accounts. The app provides quick access to the registered Google-Mail account listed in the Android device's account settings. (https://www.gmail.com)
    • Google+ - A social website similar to Facebook, but provided by Google. (https://www.plus.google.com)
    • Google Drive - Online cloud storage and file sharing. The app provides a way to utilize this web-service. (https://www.drive.google.com)
    • Google Account Manager - This services manages the registered account that is on the device.
    • Google Backup Transport - This service uploads backed-up data to a cloud.
    • Google Bookmarks Sync - This synchronizes bookmarks between the stock browser and the Google Chrome Browser.
    • Google Calendar Sync - This services synchronizes the data on the Google servers (for the user account) and the local system data.
    • Google Cloud Messaging (GCM) - An API for applications to receive data from servers that inform the app of new updates and other info.
    • Google Contacts Sync - This services synchronizes the data on the Google servers (for the user account) and the local system data.
    • Google Partner Setup - This service allows Google-apps and third-party apps to interact. For example, the Android Keyboard works well whether the user is typing on Google+, Gmail, Jota Text Editor, CppDroid, some random game, etc.
    • Google Play Services - A collection of services that integrate apps with the Play store and various Google services. This framework also provides APIs for updates and application permission authorization.
    • Google Play Store - The Play Store is the primary source of apps. The Play Store is comparable to Synaptic on Debian systems, Software Center on Ubuntu, etc.
    • Google Search - The search-bar widget that is found on a home-screen and allows users to search Google for the typed input.
    • Google Services Framework - This set of software provides a structure for the Google servers to communicate with the system's apps. The cache on this will make the Google servers think the device is new, but this may cause some apps to behave oddly or cause system problems.
    • Google Text-To-Speech Engine (Google TTS) - This is a Text-To-Speech service that allows the system to speak text.
    • Key Chain - This service manages cryptographic keys and encrypted data. This is needed for SSH, WPA, or any form of encryption security.
    • Launcher - This is the GUI interface for the home-screens and the App Drawer (the list of installed apps).
    • Live Wallpaper Picker - Users use this app to choose the desired Live Wallpaper. Some Live Wallpapers that may come with Android include "Bubbles", "Phase Beam", "Photo Wall", "Luminous Dots", and "Topic Wall".
    • Market Feedback Agent - A standard service that allows apps to access the feedback found in the Google Play Store.
    • Market Updater - This service keeps the Play Store (market) updated and will update "Google Market" to "Play Store".
    • Media Provider - The provider for media (audio, images, video, etc.) and non-media metadata on all storage devices.
    • Media Storage - The database used by the Media Provider.
    • Messaging - This app is used for SMS and MMS messaging.
    • Mobile Data - This stores information of roaming networks.
    • Mobile Network Configuration - This stores the network configuration for APNs, Roaming networks, etc.
    • MTP Application - This services provides a protocol used to transfer data to and from a computer that plugs into the Android system.
    • Music - This app is a music player.
    • MusicFX - Use this app to configure the equalizer and other sound settings.
    • My Uploads - A service that manages uploads.
    • Network Location - This is a provider that determines the devices location based on Wifi and cell-tower names.
    • OpenWnn - Japanese IME for Android's IMF.

    NOTE: IMF = Input Method Framework; IME = Input Method Editor

    • Package Access Helper - This service is used to install and uninstall apps.
    • Package Installer - This service manages app installation and removal and provides the interface used by the user to remove apps.
    • Package Manager - The API used by the Package Access Helper and Package Installer.
    • Pico TTS - A lightweight Text-To-Speech service.
    • Search Applications Provider - This service is used by the Google Search widget.
    • Settings - The default and commonly used app for controlling the systems settings.
    • Settings Storage - The set of data pertaining to the system's settings.
    • SIM Toolkit - Manages SIM-related services.
    • Sound/Speech Recorder - Records sound via the microphone (with user permission).
    • System UI - The user interface for the Android operating system.
    • Talk - A social media app for utilizing Google's "Hangouts" web-service.
    • TalkBack - A screen-reader that can help blind-users enjoy their Android system.
    • Telephony Provider - The provider that controls and stores phone-related data such as text messages, APN list, operation, etc.
    • TTS - This is a Text-To-Speech service that allows the system to speak text.
    • Upload Manager (Uploads) - A service that manages uploads.
    • UserDictionary - User-defined words for the spell-checker's dictionary.
    • Voice Search - Search the Internet, your files, apps, etc. by speaking the search query.
    • Vpn Services (+ VpnDialogs) - These pieces of software provide the APIs and services needed for using VPNs.
    • Yahoo News - This daemon manages news feeds from Yahoo.
    • Zygote - This is a daemon that starts/launches applications. When an app needs to start, a request is sent through /dev/socket/zygote. The Zygote daemon listens to this virtual device file (a file acting like a physical device) and launches applications as requested. Zygote is equivalent to xdg-open and other file-openers seen on non-embedded GNU/Linux.

    Further Reading

Viewing 1 post (of 1 total)