Skip to content

DevTools

Debug builds include an on-device performance overlay.

Start the development application:

Terminal window
pam mobile dev

From another terminal:

Terminal window
pam mobile devtools

Run the DevTools command again to hide it.

The receiver and overlay are excluded from release builds.

The overlay reports:

  • smoothed frame rate;
  • decode time;
  • mount and commit time;
  • rendered node count;
  • mutation batch count;
  • patch versus full commits; and
  • native heap use.

Use it to identify an expensive interactive path, not as the final benchmark artifact.

Integrations can send the broadcast directly:

Terminal window
adb shell am broadcast \
-a dev.pam.nativeapp.action.TOGGLE_DEVTOOLS \
-p your.application.id.debug

When Firebase is enabled with a production-only google-services.json, Gradle keeps the base application ID for debug builds. In that case, omit .debug. The pam mobile devtools command detects the correct package automatically.

Terminal window
pam mobile devtools
pam mobile profile
pam mobile benchmark

DevTools shows live symptoms. The profile and benchmark commands produce repeatable evidence suitable for comparison and CI.

On Android, pam mobile benchmark installs a separate, minified benchmark target together with its instrumentation APK. It does not measure the hot-reload .debug process that may already be open. A missing target fails the run instead of producing a misleading startup result.

Watch the native buffer count after an update. It must return to zero after the frame finishes; a retained non-zero count indicates an ownership or release bug.

When the development app redraws but buttons stop responding, or the reload port is already occupied, follow the hot reload guide. It includes the single-listener contract and an interaction test after remount.