Agent skill

Levyra Android Performance

by LUC4N3X in LUC4N3X/Levyra-deepsound

Automatically use for Android runtime performance investigations involving Perfetto/System Trace, jank, latency, startup, CPU scheduling, blocking, memory, I/O, IPC, graphics, power, or measured…

GPL-3.0Auto-check passedMobile

Install Levyra Android Performance

skills CLI
$ npx skills add LUC4N3X/Levyra-deepsound --skill levyra-android-performance -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LUC4N3X/Levyra-deepsound levyra-android-performance --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LUC4N3X/Levyra-deepsound.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/levyra-android-performance .claude/skills/levyra-android-performance && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
levyra-android-performance
GitHub stars
531
Token cost
~3.2k tokens
SKILL.md length
1,613 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
GPL-3.0

At a glance

Automatically use for Android runtime performance investigations involving Perfetto/System Trace, jank, latency, startup, CPU scheduling, blocking, memory, I/O, IPC, graphics, power, or measured…

  • Works in 6 steps: Define the symptom → Start broad → Form one hypothesis at a time → …
  • Android runtime performance investigations involving Perfetto/System Trace
  • SKILL.md covers Purpose, Required context, Chain of evidence and Investigation protocol, plus 11 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Levyra Android Performance is an agent skill from LUC4N3X/Levyra-deepsound. Automatically use for Android runtime performance investigations involving Perfetto/System Trace, jank, latency, startup, CPU scheduling, blocking, memory, I/O, IPC, graphics, power, or measured frame/runtime bottlenecks. Pair it with the affected Levyra domain skill.

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Mobile performance. It works with Android. The repository describes itself as: Open-source music player for Android and Windows with no accounts or tracking. Built for quick discovery, synced lyrics, radio, and rich artwork ♫. The licence is GPL-3.0.

When your agent uses it

  • Android runtime performance investigations involving Perfetto/System Trace
  • Measured frame/runtime bottlenecks

Example prompts

  • “/levyra-android-performance”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Define the symptom
  2. Start broad
  3. Form one hypothesis at a time
  4. Follow dependencies to the cause
  5. Search for independent bottlenecks
  6. Fix and remeasure

What it can do on your machine

Read from SKILL.md and the folder at commit 6bc7c93. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Levyra Android Performance loads about 3.2k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,613 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LUC4N3X/Levyra-deepsound at commit 6bc7c93, republished under its GPL-3.0 licence (© LUC4N3X). 1,613 words, ~3,173 tokens.

Download SKILL.mdSave it as .claude/skills/levyra-android-performance/SKILL.md (or your agent's skills folder).
name
levyra-android-performance
description
Automatically use for Android runtime performance investigations involving Perfetto/System Trace, jank, latency, startup, CPU scheduling, blocking, memory, I/O, IPC, graphics, power, or measured frame/runtime bottlenecks. Pair it with the affected Levyra domain skill.

Levyra Android performance workflow

Purpose

This skill is the Android-specific evidence layer for runtime performance. It adapts the strongest parts of Google's official android/skills perfetto-trace-analysis workflow to Levyra without vendoring its large reference corpus or creating a second profiling system.

It does not replace levyra-compose, levyra-player, levyra-ci-workflows, levyra-release-check, levyra-r8-proguard, or the current architecture. Load the affected domain skill as well. Use levyra-r8-proguard instead for shrinker, keep-rule, resource-shrinking, mapping, or APK-size work.

Required context

  1. Read root AGENTS.md and app/AGENTS.md.
  2. Read docs/ARCHITECTURE.md and the affected domain skill.
  3. Inspect the existing baseline-profile/benchmark setup and exact code path.
  4. Record package/process, build variant, device/emulator, reproduction path, trace source, and relevant time window before drawing a conclusion.
  5. Prefer release-like behavior for performance claims. Debug traces are evidence about debug behavior only.
  6. Prefer current official Android/Perfetto documentation when a metric, module, schema, counter, or API is version-sensitive.

Chain of evidence

Keep verified evidence separate from hypotheses throughout the investigation. For a supplied Perfetto trace, maintain a compact analysis note next to the trace when the runtime can safely create one. Record only verified facts such as:

  • timestamps and time windows;
  • process upid and thread utid identities;
  • slice names/durations;
  • thread states and scheduling latency;
  • frame timeline evidence;
  • counters and memory/power values;
  • Binder/flow dependencies;
  • I/O blocked functions and wakeups;
  • query text/result needed to reproduce a finding.

Do not write guesses into the evidence record as if they were facts. If the runtime cannot create a scratchpad, keep the same separation explicitly in the working report.

Investigation protocol

1. Define the symptom

State what is slow or janky, where it occurs, how to reproduce it, and what user behavior is affected. Separate cold/warm/hot startup, first playback, scrolling, track transitions, image-heavy surfaces, background playback, and idle battery behavior instead of treating them as one generic performance problem.

2. Start broad

Use high-level metrics and broad trace inspection before narrow custom SQL. Identify the active Levyra process, the relevant time range, frame misses, long-running/blocked threads, memory pressure, I/O, Binder/IPC, and power/system anomalies that overlap the symptom.

3. Form one hypothesis at a time

Use the prompt, current code path, and observed evidence to choose the next question. State why a query or trace inspection is being run before treating its result as meaningful.

4. Follow dependencies to the cause

Never equate wall-clock duration with CPU work. For every suspicious long slice, check the exact overlapping thread_state interval and distinguish:

  • Running: consuming CPU;
  • Runnable: ready but waiting for CPU;
  • Sleeping: waiting voluntarily;
  • uninterruptible/D-state: commonly blocked on I/O/kernel work;
  • blocked on lock/Binder/another thread.

If a thread is waiting, follow the dependency. A waiting main thread is not the root cause until the blocker, server, I/O operation, lock owner, scheduler contention, or external process is identified.

5. Search for independent bottlenecks

Do not stop after the first anomaly. Perform one broader system check before concluding so a local Compose issue does not hide an unrelated I/O, scheduler, Binder, graphics-memory, LMKD, or power problem.

6. Fix and remeasure

Change the smallest material cause, then re-run the same reproduction path on an equivalent build/device. Do not declare success from code inspection alone when the original claim was performance.

Perfetto SQL discipline

When using trace_processor, treat SQL correctness as part of the evidence.

  • Never guess a table, view, column, or INCLUDE PERFETTO MODULE name. Inspect the installed Perfetto schema/stdlib or current official reference first.
  • Prefer existing Perfetto standard-library tables/views/macros over manual timestamp arithmetic when they express the same intent.
  • Join threads/processes with utid/upid, not recycled OS tid/pid, unless the specific table contract requires otherwise.
  • Handle incomplete intervals where dur = -1 using the trace end rather than summing or bounding them as negative durations.
  • For two time ranges, use interval-overlap semantics; do not require one event to start inside the other interval.
  • Prefer standard interval helpers or properly partitioned SPAN_JOIN when combining interval sets. Materialize intermediate tables where Perfetto requires it.
  • Use = for exact matching. GLOB is case-sensitive and uses * and ?, so substring matching should look like GLOB '*needle*'. LIKE uses % and _ and is ASCII-case-insensitive by default; use it only when those wildcard or case semantics are intended. Verify the installed schema/query behavior before relying on either operator in evidence.
  • Use EXTRACT_ARG for structured args rather than parsing display strings.
  • Prefix columns with aliases in non-trivial joins so query meaning remains reviewable.
  • Keep queries idempotent when they create Perfetto objects. A query used during iterative diagnosis should be safe to rerun.
  • If a provided user query is being validated, preserve its analytical intent; do not simplify away an overlap, dependency, percentile, or attribution merely to make SQL execute.

A failed query is not evidence. Fix schema/syntax/logic and rerun it before using its result.

CPU and scheduler analysis

For CPU-bound or scheduling-sensitive paths:

  • compare time spent Running versus Runnable for critical threads;
  • quantify scheduling latency where useful and inspect high-percentile outliers such as p95/p99 instead of relying on one anecdotal pause;
  • if Runnable time is high, inspect competing work and whether other CPUs were idle before blaming the app thread itself;
  • correlate key-thread placement with CPU frequency and core behavior before inferring slow-code execution;
  • inspect frequency/governor evidence when wall time rises without a matching increase in running CPU time;
  • for blocked RenderThread/main/player threads, identify the waker or dependency;
  • distinguish userspace work from kernel time when the trace supports it.

Do not "optimize" thread priorities, affinities, dispatchers, or coroutine structure from intuition alone.

Show full SKILL.md (715 more words)Show less

Compose, frames, and graphics

For UI jank, pair this skill with levyra-compose.

  • Compare actual versus expected frame timeline evidence instead of inferring jank only from a visibly long composable call.
  • Correlate missed frames with main-thread, RenderThread, GPU, texture upload, image decode, layout/draw, allocation, or scheduler evidence in the same time window.
  • Inspect graphics-memory pressure when artwork-heavy surfaces are involved; distinguish CPU bitmap memory from GPU/buffer memory and look for duplicated large images or costly intermediate render targets when supported by the trace.
  • A large texture upload or buffer allocation is a lead, not a conclusion; prove its temporal relationship to missed frames.
  • Use Layout Inspector/recomposition counts for composition questions and Perfetto/System Trace when the problem spans frames, threads, I/O, IPC, scheduling, memory, or power.
  • Do not add remember, derivedStateOf, stability annotations, persistent collections, custom layouts, or caches without evidence they address the measured invalidation/allocation/layout problem.

Binder and IPC

When IPC is in the critical path:

  • inspect repeated Binder transactions for bursts/spam rather than blaming one normal call;
  • identify the server process and separate client wait from server execution;
  • use flow/dependency evidence to cross process boundaries when available;
  • correlate high Binder concurrency with CPU scheduling before attributing latency to Binder itself;
  • trace the calling stack only after the problematic transaction pattern has been established.

Do not dive into Binder internals when a clearer local bottleneck already explains the symptom unless the evidence still leaves material latency unexplained.

Startup and critical path

  • Distinguish cold, warm, and hot startup before comparing timings.
  • Identify whether delay belongs to process start, class loading, dependency initialization, page faults/I/O, database work, network/config fetches, composition/layout, player/service startup, or work scheduled after first frame.
  • If the problem disappears on a second launch, investigate page cache/cold I/O before assuming initialization code became faster.
  • Do not move required work later merely to improve a headline startup number if that creates a visible stall or delays first playback interaction.
  • When Baseline Profiles or Macrobenchmarks cover the path, reuse them and compare equivalent variants/devices.

I/O analysis

For D-state or I/O stalls:

  • inspect blocked_function/kernel reason when available;
  • look for page faults, readahead, filesystem integrity work, database/file access, or network/socket work overlapping the stall;
  • follow the wakeup path to relevant kernel/kworker activity when needed;
  • check for high-frequency tiny reads before adding a cache or changing dispatchers;
  • identify the exact file/socket/database path before proposing a fix.

A dispatcher change does not fix storage contention by itself.

Memory analysis

Distinguish:

  • retained/leaked objects;
  • short-lived allocation churn;
  • graphics/buffer memory;
  • system-wide pressure/swap;
  • low-memory-killer events.

When available, inspect LMKD/PSI evidence, RSS trends, swap/kswapd pressure, bitmap/object outliers, duplicate bitmaps, and heap retainer paths. Do not infer a memory leak from high peak RSS alone.

For artwork-heavy flows, correlate bitmap dimensions/count, decoded image size, GPU/buffer usage, and lifecycle retention with the exact screen/player state.

Power and background behavior

For battery/power investigations:

  • start from actual energy/power-rail or platform power evidence when available;
  • inspect suspend state and kernel wakelocks during screen-off/idle periods;
  • correlate modem/network power with traffic attributable to Levyra;
  • correlate playback service, MediaSession, Bluetooth/media routes, jobs, timers, artwork/lyrics refresh, prefetch, and animations with the same time window;
  • use a comparable energy unit when quantifying alternatives;
  • do not infer battery impact from CPU percentage alone.

Playback that is intentionally active must not be "optimized" by breaking the foreground/background media contract.

AGP/build interaction

Load levyra-ci-workflows when a runtime-performance task also changes AGP, Gradle, KSP, compiler options, build cache, or build logic. Do not turn a runtime investigation into an unsolicited dependency/toolchain upgrade.

Avoid clean as a routine diagnostic step. It destroys incremental evidence and is not proof that a normal developer or CI build is healthy.

Validation and reporting

Report:

  • exact symptom and reproduction path;
  • build/device/environment and trace source;
  • verified chain of evidence with timestamps/threads/processes where relevant;
  • root cause and confidence;
  • alternatives disproven or still open;
  • smallest proposed/applied change;
  • before/after metric when measured;
  • focused tests/builds/traces/queries run;
  • blocked or unverified checks;
  • remaining device/OEM/release risk.

Do not turn a long slice, frame miss, Binder call, high CPU interval, allocation burst, D-state, wakelock, or agent suspicion into a confirmed root cause without supporting evidence.

Provenance

This workflow is informed by Google's android/skills perfetto-trace-analysis skill and its CPU/graphics/I/O/IPC/memory/power and SQL reference guidance. Levyra keeps a compact, repository-native adaptation; current Perfetto documentation, the installed trace schema, and direct evidence always take precedence over copied query recipes.

© LUC4N3X, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/levyra-android-performance of LUC4N3X/Levyra-deepsound.

Open the folder on GitHubat commit 6bc7c93

Compare with similar skills

Levyra Android Performance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Levyra Android Performance compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Levyra Android Performance this skillLUC4N3X/Levyra-deepsound531—~3.2kAutomated safety check: PassGPL-3.0
Generating Baseline ProfilesrosuH/EasyWatermark1.9k1 repos~5kAutomated safety check: PassApache-2.0
Perf BenchmarkingGetStream/stream-chat-react-native1.2k—~5.6kAutomated safety check: PassCustom licence
React Native ExpertJeffallan/claude-skills12k—~1.7kAutomated safety check: PassMIT
Mobile Developmentjame581/GodotPrompter795—~3.3kAutomated safety check: PassMIT
Senior Mobileborghei/Claude-Skills881—~1.9kAutomated safety check: PassMIT

Similar skills

  • Generating Baseline Profiles

    rosuH/EasyWatermark

    A skill your agent uses to generate and measure Jetpack Compose Baseline Profiles end-to-end with the AGP 8.2+ Baseline Profile Generator module and the Macrobenchmark harness.

    1.9k GitHub starsUsed in 1 repo~5k tokens
    MobileAuto-check passed
  • Perf Benchmarking

    GetStream/stream-chat-react-native

    Measure React Native performance on-device for stream-chat-react-native — Hermes CPU profiles, deterministic call/listener counting, component render profiling, and memory/jank capture.

    1.2k GitHub stars~5.6k tokensUpdated yesterday
    MobileAuto-check passed
  • React Native Expert

    Jeffallan/claude-skills

    Builds React Native and Expo apps for iOS and Android: Expo Router navigation, FlatList tuning, platform-specific code and build error recovery.

    12k GitHub stars~1.7k tokensUpdated 5 days ago
    MobileAuto-check passed
  • Mobile Development

    jame581/GodotPrompter

    A skill your agent uses when targeting Android/iOS — export and signing, permissions, plugins, in-app purchases, ads, app lifecycle, device features, and mobile performance

    795 GitHub stars~3.3k tokensUpdated 2 days ago
    MobileAuto-check passed
  • Senior Mobile

    borghei/Claude-Skills

    A skill your agent uses when the user asks to "build a mobile app", "scaffold React Native project", "create SwiftUI views", "set up Jetpack Compose", "optimize mobile performance", "configure Expo…

    881 GitHub stars~1.9k tokensUpdated yesterday
    MobileAuto-check passed
  • Scenario Unity Mobile

    scenario-labs/skills

    A skill your agent uses when a Unity 6.3 game targets Android or iOS: phone frame budget, overheating after 20 minutes, 'my game stutters on phones', ASTC or ETC2 textures, audio import, URP mobile…

    913 GitHub stars~4.6k tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed

More from LUC4N3X/Levyra-deepsound

All 22 skills in this repo
  • Levyra Android Intent Security

    LUC4N3X/Levyra-deepsound

    Automatically use for Levyra Android Intent, deep-link, PendingIntent, exported component, receiver, service, provider, URI-grant, FileProvider, caller-verification, or onNewIntent security work.

    531 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Levyra Context Efficiency

    LUC4N3X/Levyra-deepsound

    A skill your agent uses for genuinely high-volume Levyra work such as builds, tests, lint, logs, broad searches, dependency output, Git/GitHub or CodeRabbit inspection, CI diagnostics, agent setup…

    531 GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Levyra R8 Proguard

    LUC4N3X/Levyra-deepsound

    Automatically use for Levyra R8, Proguard, minification, resource shrinking, keep rules, consumer rules, release-only crashes, reflection/serialization/JNI shrinking issues, APK size, mapping files…

    531 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Levyra CI Workflows

    LUC4N3X/Levyra-deepsound

    Automatically use for Levyra GitHub Actions, CI, F-Droid, Gradle/AGP/Kotlin/KSP compatibility, build performance, configuration/build cache, artifacts, release automation, workflow security, or…

    531 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Levyra Design Taste

    LUC4N3X/Levyra-deepsound

    Automatically use together with the matching Levyra UI skill for any visual redesign, UI polish, visual hierarchy, spacing, typography, color, shape, motion, screenshot/reference recreation, or…

    531 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Levyra PR Review

    LUC4N3X/Levyra-deepsound

    Review a Levyra branch, commit, patch, or pull request for correctness, regressions, concurrency, lifecycle, security, data safety, UI behavior, CI, release risk, missing tests, and merge-readiness…

    531 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Levyra Android Performance

What does Levyra Android Performance do?

Automatically use for Android runtime performance investigations involving Perfetto/System Trace, jank, latency, startup, CPU scheduling, blocking, memory, I/O, IPC, graphics, power, or measured…. Levyra Android Performance is an agent skill from LUC4N3X/Levyra-deepsound. Automatically use for Android runtime performance investigations involving Perfetto/System Trace, jank, latency, startup, CPU scheduling, blocking, memory, I/O, IPC, graphics, power, or measured frame/runtime bottlenecks.

When should I use Levyra Android Performance?

Levyra Android Performance fits situations like: android runtime performance investigations involving Perfetto/System Trace; measured frame/runtime bottlenecks.

How do I install Levyra Android Performance in Claude Code?

Run `npx skills add LUC4N3X/Levyra-deepsound --skill levyra-android-performance -a claude-code`. Or copy the skill folder (.agents/skills/levyra-android-performance in LUC4N3X/Levyra-deepsound) into .claude/skills/levyra-android-performance in your project. Claude Code loads it when a task matches its description.

How do I install Levyra Android Performance in Codex?

Run `npx skills add LUC4N3X/Levyra-deepsound --skill levyra-android-performance -a codex`. Or copy the skill folder (.agents/skills/levyra-android-performance in LUC4N3X/Levyra-deepsound) into .agents/skills/levyra-android-performance in your project. Codex loads it when a task matches its description.

Can I use Levyra Android Performance in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LUC4N3X/Levyra-deepsound --skill levyra-android-performance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/levyra-android-performance, .gemini/skills/levyra-android-performance, .github/skills/levyra-android-performance and .opencode/skills/levyra-android-performance in your project.

What does Levyra Android Performance need to run?

SKILL.md names no scripts, command-line tools or credentials: Levyra Android Performance is instructions for the agent only.

Does Levyra Android Performance access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Levyra Android Performance safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Levyra Android Performance use?

Levyra Android Performance is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Levyra Android Performance use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Levyra Android Performance?

Skills that share tags, products or a category with Levyra Android Performance: Generating Baseline Profiles (rosuH/EasyWatermark, 1.9k stars), Perf Benchmarking (GetStream/stream-chat-react-native, 1.2k stars), React Native Expert (Jeffallan/claude-skills, 12k stars) and Mobile Development (jame581/GodotPrompter, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Levyra Android Performance?

LUC4N3X (a GitHub user) maintains it in LUC4N3X/Levyra-deepsound, which has 531 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 8, 2026.

Source: LUC4N3X/Levyra-deepsound on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.