How to Inspect App Prediction Sessions and UI Targets on Android Using ADB dumpsys app_prediction

Modern Android versions deliver context-aware user interfaces that anticipate user actions throughout daily device interactions. Whether presenting a dynamic row of recommended applications at the top of the app drawer, suggesting specific conversation threads in the system share sheet (Direct Share), or predicting next actions in the multitasking Overview screen, Android relies on the App Prediction Service. Governed by the AppPredictionManager framework, on-device machine learning models process usage signals, location contexts, connected Bluetooth accessories, and temporal patterns to forecast which applications and intents the user will launch next. Android developers and system performance engineers can inspect active prediction sessions, examine UI target candidates, and diagnose ranking issues using the Android Debug Bridge (ADB) via dumpsys app_prediction.

Architecture of the Android App Prediction Framework

The Android prediction architecture is separated into system management APIs and isolated service providers:

  • AppPredictionManager: The client-facing system API used by system applications (such as the default home screen launcher, the Android System UI, and the share sheet) to request context-sensitive predictions.
  • AppPredictionManagerService: The core OS daemon managing IPC requests, enforcing user privacy boundaries, and routing queries between client surfaces and the active prediction engine.
  • Prediction Service Provider: The privileged background system package (typically Android System Intelligence or an OEM-specific intelligence engine) that executes private on-device neural networks and heuristic algorithms to generate scored prediction lists.

Every time a system component displays predicted content, it registers an AppPredictionSession tied to a specific UI surface. Using dumpsys app_prediction, engineers can verify which surfaces have registered sessions, audit target package names, and monitor prediction confidence scores.

Establishing an ADB Debugging Session

To inspect system prediction internals, connect your Android device to your computer via USB or wireless debugging. Ensure Developer Options and USB Debugging are active, and verify device communication:

adb devices

Confirm that your connected device is detected and authorised before proceeding with shell diagnostic commands.

Querying the Complete App Prediction Diagnostics Dump

To view the comprehensive operational status of all registered prediction sessions across the entire Android operating system, run:

adb shell dumpsys app_prediction

The resulting diagnostic dump outlines active user contexts, connected implementation backends, and session details:

APP PREDICTION MANAGER SERVICE (dumpsys app_prediction)
-------------------------------------------------------------------------------
User 0:
  Bound: true
  Service Component: com.google.android.as/com.google.android.apps.miphone.aiai.app.AppPredictionService
  Active Sessions: 3
    Session ID: home:1001
      Target UI Surface: home
      Predicted Target Count: 5
      Targets:
        1: com.google.android.gm (Gmail) | score: 0.94
        2: com.google.android.apps.messaging | score: 0.88
        3: com.spotify.music | score: 0.76
        4: com.android.chrome | score: 0.71
        5: com.google.android.youtube | score: 0.65
    Session ID: share:1002
      Target UI Surface: share
      Predicted Target Count: 4
      Targets:
        1: com.whatsapp/.Conversation (Contact: Alex) | score: 0.92
        2: com.google.android.apps.messaging/.Conversation (Contact: Sarah) | score: 0.85
    Session ID: overview:1003
      Target UI Surface: overview
      Predicted Target Count: 2

Filtering Active UI Prediction Surfaces

The Android prediction framework categorises predictions into standardised UI surfaces. You can isolate specific surfaces within the dump to verify that your app or target shortcut appears in the expected predictive context.

Home Screen App Suggestions

The home surface represents the predictive dock or the top row of the application drawer in modern Android launchers. To inspect which applications the launcher is receiving from the prediction service:

adb shell dumpsys app_prediction | grep -A 10 "Target UI Surface: home"

Inspect the reported scores. A score closer to 1.0 indicates higher confidence calculated by on-device intelligence based on recurring historical launch patterns at the current time of day.

Share Sheet and Direct Share Targets

When a user taps “Share” inside any application, the Android system share sheet queries the share surface to populate the row of immediate recipient shortcuts:

adb shell dumpsys app_prediction | grep -A 12 "Target UI Surface: share"

If your messaging application implements ShortcutManagerCompat with dynamic sharing shortcuts but fails to display recipients in Direct Share, check whether the session is bound and whether your target shortcut IDs are successfully received and scored by the prediction engine.

Overview and Multitasking Suggestions

The overview surface powers recent app suggestions and contextual action chips rendered inside the gesture navigation task switcher:

adb shell dumpsys app_prediction | grep -A 8 "Target UI Surface: overview"

Verifying Service Component Bindings and Health

If app suggestions stop updating or disappear entirely from the home screen, check whether the core prediction service is bound to its provider package:

adb shell dumpsys app_prediction | grep -E "Bound|Service Component"

If Bound: false is reported, the background intelligence service has crashed or been killed by aggressive OEM battery optimization routines. You can trigger a restart of the prediction subsystem using the Android package manager and command service:

adb shell cmd app_prediction restart-service

Monitoring Prediction Model Feedback and User Launch Events

The accuracy of on-device predictions depends on continuous feedback loops. When a user taps a predicted app or alternatively ignores recommendations to launch a different app manually, the launcher sends launch telemetry back to AppPredictionManagerService.

To monitor real-time prediction feedback and event delivery, inspect the diagnostic logcat stream:

adb shell logcat -d -s AppPredictionManager:V AppPredictionService:V | tail -n 25

Log output details whether candidate dismissals, tap events, and ranking adjustments are successfully processed, providing developers with clear insight into how modern Android builds continuously tune user interface workflows.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.