ar-g
ar-g

Reputation: 3495

What is SystemServer for Android?

I looked into package com.android.server; from source code of Android. There is some docs which showing that it's main role to load other vital services as Activity/Package/Power etc when system starts but it's only my guess.

Could somebody explain more in detail what is key-role of SystemServer?

Upvotes: 12

Views: 31715

Answers (2)

Viral Patel
Viral Patel

Reputation: 33438

Here is an excellent presentation detailing out what SystemServer on android is.

And following is the list of services handled by Android System Server (from the same presentation):

Services run by the System Server:

  • Entropy Service
  • Power Manager
  • Activity Manager
  • Telephone Registry
  • Package Manager
  • Account Manager
  • Content Manager
  • System Content Providers
  • Battery Service
  • Lights Service
  • Vibrator Service
  • Alarm Manager
  • Init Watchdog
  • Sensor Service
  • Window Manager
  • Bluetooth Service
  • Device Policy
  • Status Bar
  • Clipboard Service
  • Input Method Service
  • Netstat Service
  • NetworkManagement Service
  • Connectivity Service
  • Throttle Service
  • Accessibility Manager
  • Mount Service
  • Notification Manager
  • Device Storage Monitor
  • Location Manager
  • Search Service
  • DropBox Service
  • Wallpaper Service
  • Audio Service
  • Headset Observer
  • Dock Observer
  • UI Mode Manager Service
  • Backup Service
  • AppWidget Service
  • Recognition Service
  • Status Bar Icons
  • DiskStats Service
  • ADB Settings Observer

Upvotes: 22

Praneesh
Praneesh

Reputation: 141

Once the Linux kernel gets booted,the granddaddy Init will starts to run whose PID is 1, which will further starts all the Init related Daemon process like logd,Installd,ueventd,lmkd and Zygote Init

Further Zygote init will start the System server and It is just like a container holding various services like Powermanager service,Location Manager service, Acitivity Manager service.

For Example: Acitivity Manager service will further starts Launcher Activity.

You can verify the system server by the following command:

cat /proc/`pidof system_server`/task/*/comm

The system server code is in frameworks/base/services/java/com/android/server/, named as System_server.java.

Hence the system_server process starts all the system services. These services run as threads inside the system_server process.

Upvotes: 14

Related Questions