← Back to Blogs

Android Framework Services Overview

Inside System Server - the heart of Android

1 min read

Every time you open an app, receive a notification, adjust brightness, or unlock your phone - a framework service is involved. These services run inside System Server (the most critical process in Android) and expose their functionality to apps via Binder IPC.

System Server - The Host Process

Inside System Server

  ┌─────────────────────────────────────────────────────┐
  │                  System Server                      │
  │                                                     │
  │  ActivityManagerService   WindowManagerService      │
  │  PackageManagerService    PowerManagerService       │
  │  InputManagerService      NotificationManager       │
  │  LocationManagerService   TelephonyManager          │
  │  AlarmManagerService      JobSchedulerService       │
  │  ContentResolver          AccountManagerService     │
  │                                                     │
  │  All registered with ServiceManager (Binder)        │
  └───────────────────────────┬─────────────────────────┘
                              │  Binder IPC
              ┌───────────────┴───────────────┐
              ▼                               ▼
        App Process A                   App Process B
        (calls via proxy)               (calls via proxy)

Core Services and What They Do

How an App Accesses a Framework Service

App → Service Call Flow

  App Code
  val manager = getSystemService(Context.NOTIFICATION_SERVICE)
  manager.notify(id, notification)
       │
       │  looks up 'notification' in ServiceManager
       ▼
  NotificationManager (proxy in app process)
       │
       │  Binder IPC → /dev/binder
       ▼
  NotificationManagerService (in System Server)
       │
       │  validates, ranks, displays
       ▼
  StatusBar Service → shows notification
Tip: Use 'adb shell dumpsys <service-name>' to inspect live state of any framework service. For example: 'adb shell dumpsys activity' shows the full task/activity stack; 'adb shell dumpsys power' shows wake lock holders.