dumping list of active services

From the shell of your rooted android phone run:

Currently running services: activity.services ------------------------------------------------------------------------------- DUMP OF SERVICE activity.services: Services in Current Activity Manager State: Active services: * ServiceRecord{43a3dca0 com.android.inputmethod.latin/.LatinIME} intent={act=android.view.InputMethod cmp=com.android.inputmethod.latin/.LatinIME} packageName=com.android.inputmethod.latin processName=com.android.inputmethod.latin permission=android.permission.BIND_INPUT_METHOD baseDir=/system/app/LatinIME.apk/system/app/LatinIME.apk dataDir=/data/data/com.android.inputmethod.latin app=ProcessRecord{43a3e670 660:com.android.inputmethod.latin/10002} isForeground=false lastActivity=-296633 startRequested=false startId=0 executeNesting=0 executingStart=-296565 crashCount=0 totalRestartCount=0 restartCount=0 restartDelay=0 restartTime=-296633 nextRestartTime=-329523 * IntentBindRecord{43a3e110}: intent={act=android.view.InputMethod cmp=com.android.inputmethod.latin/.LatinIME} binder=android.os.BinderProxy@4392a698 requested=true received=true hasBound=true doRebind=false * Client AppBindRecord{43a3e288 ProcessRecord{439c0190 572:system/1000}} Per-process Connections: ConnectionRecord{43a3e400 com.android.inputmethod.latin/.LatinIME:@43a3da60} All Connections: ConnectionRecord{43a3e400 com.android.inputmethod.latin/.LatinIME:@43a3da60} Connection bindings to services: * ConnectionRecord{43a3e400 com.android.inputmethod.latin/.LatinIME:@43a3da60} binding=AppBindRecord{43a3e288 com.android.inputmethod.latin/.LatinIME:system} conn=android.app.ActivityThread$PackageInfo$ServiceDispatcher$InnerConnection@43a3da60 flags=0x1

If you run it without any arguments, you get a big huge dump of all sorts of interesting things. I do not yet know how to get it to give me a list of just the services that have registered themselves, or are actively running.