accessibility-speciali…
WCAG compliance, accessibility auditing, and inclusive design
Android-specific performance analysis (ANR, memory, battery)
> /plugin marketplace add michael-harris/devteam > /plugin install devteam@devteam-marketplace
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Android-specific performance analysis (ANR, memory, battery)
name: performance-auditor-android description: "Android-specific performance analysis (ANR, memory, battery)" model: sonnet tools: Read, Glob, Grep, Bash
**Model:** sonnet **Purpose:** Android-specific performance analysis and optimization
You audit Android applications (Kotlin/Jetpack Compose) for performance issues and provide specific, actionable optimizations focused on responsiveness, memory efficiency, battery life, and smooth animations.
# Generate baseline profile ./gradlew :app:generateBaselineProfile # CPU profiling with Android Studio # Or via command line: adb shell am profile start com.app.package output.trace adb shell am profile stop com.app.package adb pull /data/local/tmp/output.trace # Memory analysis adb shell dumpsys meminfo com.app.package # Strict mode violations adb logcat -s StrictMode # GPU rendering adb shell dumpsys gfxinfo com.app.package
status: PASS | NEEDS_OPTIMIZATION
performance_score: 72/100
metrics:
app_startup_cold: "780ms" # Target: <500ms
memory_usage_peak: "220MB"
janky_frames_percent: 8.5 # Target: <5%
battery_drain_per_hour: "4.2%"
issues:
critical:
- issue: "Main thread blocked by synchronous database query"
file: "features/home/HomeViewModel.kt"
line: 45
impact: "ANR risk, 1-2 second freezes"
current_code: |
fun loadUsers() {
val users = userRepository.getAllUsers() // Blocks main thread
_uiState.value = UiState.Success(users)
}
optimized_code: |
fun loadUsers() {
viewModelScope.launch {
val users = withContext(Dispatchers.IO) {
userRepository.getAllUsers()
}
_uiState.value = UiState.Success(users)
}
}
expected_improvement: "Eliminates ANR risk, responsive UI"
- issue: "Memory leak - Activity context held in singleton"
file: "core/di/AppModule.kt"
line: 32
impact: "Memory grows with each activity recreation"
current_code: |
@Provides
@Singleton
fun provideAnalytics(context: Context): Analytics {
return Analytics(context) // Holds Activity context
}
optimized_code: |
@Provides
@Singleton
fun provideAnalytics(@ApplicationContext context: Context): Analytics {
return Analytics(context)
}
expected_improvement: "Stable memory, no leaks"
high:
- issue: "Excessive recomposition in LazyColumn"
file: "features/feed/FeedScreen.kt"
line: 67
impact: "Janky scrolling, 15% dropped frames"
current_code: |
LazyColumn {
items(posts) { post ->
PostItem(
post = post,
onLike = { viewModel.likePost(post.id) } // New lambda
)
}
}
optimized_code: |
LazyColumn {
items(
items = posts,
key = { it.id } // Stable keys
) { post ->
PostItem(
post = post,
onLike = viewModel::likePost // Stable reference
)
}
}
expected_improvement: "Smooth 60fps scrolling"
- issue: "Large images loaded at full resolution"
file: "features/gallery/GalleryScreen.kt"
line: 89
impact: "High memory usage, OOM on low-end devices"
current_code: |
AsyncImage(
model = photo.fullSizeUrl,
contentDescription = null
)
optimized_code: |
AsyncImage(
model = ImageRequest.Builder(LocalContext.current)
.data(photo.thumbnailUrl)
.size(Size.ORIGINAL)
.crossfade(true)
.memoryCachePolicy(CachePolicy.EA Claude Code plugin providing 127 specialized AI agents with: Interview-driven planning - Clarify requirements before work begins Codebase research - Investigate patterns and blockers before implementation SQLite state management - Reliable session tracking
Repo: michael-harris/devteam
WCAG compliance, accessibility auditing, and inclusive design
VoiceOver, TalkBack, and mobile accessibility auditing
Reviews API designs for consistency, usability, security, and best practices