android-profiler — Claude Code skill: what it does, how to install
Captures and inspects Android performance metrics, from Perfetto traces and memory leaks to frame drops and battery drain.
npx skills add android/skills --skill android-profiler -a claude-codeWhat android-profiler does
This skill troubleshoots bottlenecks across Android user apps, system apps, and OS services. It captures CPU call stacks, Vulkan GPU and DRM memory, plus Java and native heap dumps. By inspecting Perfetto traces with PerfettoSQL queries, the agent uncovers frame drops, ANRs, startup lag, IPC Binder storms, and kernel wake locks. It also supports A/B baseline trace comparisons to pinpoint regressions.
Workflows split into two pipelines. Recording runs through recording/recording_orchestrator, which handles pre-flight checks, while trace analysis goes through analysis/analysis_orchestrator. Every script path relies on $SKILL_ROOT, defined in references/env_setup.md. Without configuring this path first, execution will break.
If a request lacks details, the agent stops and asks for clarification instead of guessing your goal.
What it helps with
- Inspect Perfetto traces to resolve UI jank, frame drops, or ANRs
- Trace Java or native heap allocations to fix memory leaks and LMK kills
- Diagnose battery drain caused by kernel wake locks and modem power rails
- Execute custom PerfettoSQL queries directly on recorded Android traces
- Compare A/B baseline traces to identify performance regressions
Example prompts for the agent
- Record a Perfetto trace during cold app startup and check for frame drops.
- Analyze this native heap dump to find memory leaks and allocation churn.
- Run a PerfettoSQL query to detect Binder transaction bottlenecks.
How to install android-profiler
1Skills CLI (Vercel)
npx skills add android/skills --skill android-profiler -a claude-code2Manually: put the files in place
~/.claude/skills/android-profiler/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/android-profiler/
1Skills CLI (Vercel)
npx skills add android/skills --skill android-profiler -a codex2Manually: put the files in place
.agents/skills/android-profiler/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add android/skills --skill android-profiler -a cursor2Manually: put the files in place
.cursor/skills/android-profiler/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install android/skills android-profiler2Manually: put the files in place
.github/skills/android-profiler/SKILL.md1Skills CLI (Vercel)
npx skills add android/skills --skill android-profiler -a gemini-cli2Platform CLI
gemini skills install https://github.com/android/skills --path profilers/android-profilerManually: put the files in place
.devin/skills/android-profiler/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add android/skills --skill android-profiler -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about android-profiler
How do I install android-profiler in Claude Code?
Run npx skills add android/skills --skill android-profiler -a claude-code in your terminal.
What does android-profiler do?
It records and evaluates Android performance data, investigating CPU spikes, GPU memory, heap churn, battery consumption, and Perfetto traces.
What setup is required before running workflows?
You must check references/env_setup.md and define $SKILL_ROOT, as all orchestrator paths within the skill depend on it.
Source text
SKILL.md · Apache-2.0
--- name: android-profiler description: 'Records and analyzes Android performance data and diagnoses performance bottlenecks across user apps, system apps, and system services, even if the user does not explicitly mention profiling or traces. Use when: recording system traces, CPU call stacks, Vulkan GPU/DRM memory, or Java/native heap profiles; analyzing Perfetto traces for UI jank, frame drops, ANRs, or app startup latency issues; investigating CPU bottlenecks, IPC/Binder storms, or thread scheduling stalls; diagnosing battery drain, modem power rails, and kernel wake locks; debugging memory pressure, Low Memory Kills (LMK), OOMs, leaks, and allocation churn; performing A/B baseline trace comparisons to find regressions; executing ad hoc PerfettoSQL queries on Android traces.' license: Complete terms in LICENSE.txt metadata: author: Google LLC last-updated: '2026-10-22' keywords: - android performance - debugging - profiling - recording - trace analysis - memory leaks - bottleneck - jank - SQL --- Your primary role is to figure out what the user wants to do (disambiguation), find the right instructions for it (workflow discovery), and follow them step-by-step (following the execution plan). If the request is unclear, work with the user to finalize the execution plan before proceeding. ## Prerequisites and Setup Before executing any workflows, read [`references/env_setup.md`](references/env_setup.md). It defines what to set `$SKILL_ROOT` to - the anchor every other path in this skill is written against. ## Intent Disambiguation Do not guess the user's intent. If the user request is not clear, **ask the user** what they want to do before proceeding. ## Recording Route all recording requests through [recording/recording_orchestrator](recording/recording_orchestrator.md). This defines guidelines and pre-flight checks or dependency checks that apply to all recording workflows, and ensures you have the necessary setup to proceed. Read the orchestrator and execute the plan it describes based on what the user wants to record (for example, a system trace or a heap dump). ## Analysis Route all analysis requests through [analysis/analysis_orchestrator](analysis/analysis_orchestrator.md).
© Google LLC · Apache-2.0 · android/skills