{"id":53601,"plugin_id":"plugins_6abcb949170081919055247eaf18cfc0","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:54:35.204Z","digest":"76cb637905252de313a7816c430f7cf81f5c8af51478c4a0791d9c5be1599ddb","against":null,"payload":{"description":"Capture and interpret Android runtime performance with Macrobenchmark, Baseline Profiles, Perfetto, Simpleperf, gfxinfo, and comparable device flows while separating native and Flutter evidence.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":218},{"relative_path":"references/native-performance-workflows.md","size_in_bytes":1468},{"relative_path":"scripts/heapprofd_report.sh","size_in_bytes":2080},{"relative_path":"scripts/simpleperf_report.sh","size_in_bytes":2436}],"name":"android-runtime-performance","skill_md_contents":"---\nname: android-runtime-performance\ndescription: Capture and interpret Android runtime performance with Macrobenchmark, Baseline Profiles, Perfetto, Simpleperf, gfxinfo, and comparable device flows while separating native and Flutter evidence.\n---\n\n# Android Runtime Performance\n\nMeasure one user-visible flow on an explicit device. Separate Flutter UI/raster\nevidence from Android/native evidence.\n\n## Choose the instrument\n\n- **Macrobenchmark** — repeatable startup / interaction metrics on a\n  profileable or release-like build.\n- **Baseline Profiles** — hot paths only; confirm the shipped binary consumes\n  the profile.\n- **Perfetto** — frame lanes, scheduler, binder, locks, I/O, GC, custom sections.\n- **Simpleperf** — sampled CPU stacks (not wall-clock waits by itself).\n- **gfxinfo** — quick directional frame snapshot.\n- **heapprofd** — native allocation stacks when managed-heap evidence is not enough.\n\nRead `references/native-performance-workflows.md` before capture.\n\n## Fast frame snapshot\n\nPrefer the Autonom CLI inside a session — it owns reset/capture, keeps the\nraw text as the artifact, and journals the run:\n\n```bash\nautonom metrics frames reset\n# replay one focused flow\nautonom metrics frames capture\nautonom metrics trace --preset simpleperf --duration 30\n```\n\nRaw adb equivalent without a session:\n\n```bash\nadb -s \"$SERIAL\" shell dumpsys gfxinfo \"$PACKAGE\" reset\n# replay one focused flow\nadb -s \"$SERIAL\" shell dumpsys gfxinfo \"$PACKAGE\" framestats \\\n  > \"$ARTIFACT_DIR/gfxinfo-framestats.txt\"\n```\n\n## Simpleperf\n\n```bash\nadb -s \"$SERIAL\" shell rm -f /data/local/tmp/perf.data\nadb -s \"$SERIAL\" shell simpleperf record \\\n  --app \"$PACKAGE\" -e cpu-clock -f 4000 -g \\\n  --duration 30 -o /data/local/tmp/perf.data\nadb -s \"$SERIAL\" pull /data/local/tmp/perf.data \"$ARTIFACT_DIR/perf.data\"\n<skill-root>/scripts/simpleperf_report.sh \\\n  \"$ARTIFACT_DIR/perf.data\" \"$ARTIFACT_DIR\" \\\n  --first-party-regex 'com\\\\.example|libapp\\\\.so'\n```\n\n## Heapprofd reports\n\n```bash\n<skill-root>/scripts/heapprofd_report.sh \"$ARTIFACT_DIR/trace.pftrace\" \"$ARTIFACT_DIR\"\n```\n\n## Comparison contract\n\nRecord device, Android version, refresh rate, package/variant, Flutter mode,\ncompilation mode, data state, thermal state, exact flow, and run count. Compare\nonly equivalent captures; state units and aggregation.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}