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.