feat: add Android frame health perf metrics#474
Merged
Conversation
|
28b48ba to
d5a10e6
Compare
d5a10e6 to
7bbadb3
Compare
7bbadb3 to
dfed685
Compare
dfed685 to
e2cc0af
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add Android frame-health sampling to
perfusingdumpsys gfxinfo ... framestats, with dropped-frame percentage, sample timing, worst dropped-frame windows, and related session actions for correlation.Keep the default
perfoutput token-efficient while preserving the richer JSON payload for remote and local users. Android prints frame health when available; Apple and other targets without frame data now print a compact CPU/memory summary instead of misleading FPS placeholder text.Android URL/deep-link opens now infer the foreground package after launch when no package context exists, so Expo Go/dev-client URL sessions can remain package-bound for logs/perf when Android exposes the foreground package.
Apple frame-health support is tracked separately in #475. Remote websocket-only Android ADB executor support is tracked in #476.
Touched files: 17. Scope stayed within the perf/open command families plus related docs/tests.
Validation
pnpm formatpnpm check:fallow --base origin/mainpnpm exec vitest run src/daemon/handlers/__tests__/session-perf.test.ts src/daemon/handlers/__tests__/session-open-target.test.ts src/platforms/android/__tests__/perf.test.ts src/__tests__/cli-perf.test.ts src/utils/__tests__/args.test.tspnpm typecheckpnpm lintpnpm exec vitest run src/__tests__/client-metro-packaged.test.tspnpm test:smokenode bin/agent-device.mjs open host.exp.exponent, Expo URL open,snapshot -i,perf, andperf --jsonKnown note: full
pnpm check:unitrepeatedly hit the existing packaged Metro smoke status-null timeout insrc/__tests__/client-metro-packaged.test.tsduring aggregate runs. The same test passed in isolation, and smoke tests passed separately.