使用方法
- 复制安装命令,在自己的智能体环境安装前先检查源码包。
- 从原始文档核对所需工具、凭据和支持的宿主。
- 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/prasad-vennam/awesome-android-ai-agent-skills --skill android-code-review-expert开始前需了解
- 安装不包含模型订阅、API 额度或访问文件的权限。
- 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。
Android Code Review Excellence 🧐🛡️
A rigorous framework for AI agents and developers to perform high-quality, professional Android code reviews.
⚡ When to Use
- PR Review: Analyzing a Pull Request for logic, style, and regressions.
- Pre-commit Audit: Self-checking code before pushing.
- Architectural Check: Ensuring new features follow the established team patterns.
- Security Audit: Spotting sensitive data exposure or insecure networking.
- Performance Audit: Detecting potential memory leaks or UI jank.
🏗️ Review Checklist
1. Architecture & Design
- [ ] Clean Architecture: Is logic properly separated into Domain/Data/Presentation?
- [ ] State Flow: Does the ViewModel expose
StateFlow? Is state properly hoisted? - [ ] Dependency Injection: Are dependencies injected via Hilt/Koin? No manual
new Class()for dependencies. - [ ] Manifest Scaffolding: Are required permissions (like
INTERNETfor Coil/Retrofit) actually defined? Is the@HiltAndroidAppclass correctly designated inAndroidManifest.xmlviaandroid:name? - [ ] Type-Safe Navigation: Is the app using Compose
NavHostwith Kotlin Serialization (type-safe routes) instead of anti-pattern manual state swapping? - [ ] Modularity: Is the code placed in the correct module?
2. Jetpack Compose (UI)
- [ ] Recomposition: Are there expensive calculations inside
@Composable? Useremember. - [ ] Previews: Does the new component have
@Previewfor light/dark mode and accessibility? - [ ] Stability: Are domain models marked
@Stableor@Immutable? - [ ] Material 3: Is the code using the theme's
MaterialTheme.colorSchemeinstead of hardcoded hex values? - [ ] Theme Bridge: If XML resources are used (e.g.
res/), is the Material Components XML Bridge correctly set up in themes?
3. Stability & Networking
- [ ] Error Handling: Are network calls wrapped in
Resultortry/catchwith proper UI feedback? - [ ] Coroutine Scopes: Use
viewModelScopefor ViewModels andlifecycleScopefor Fragments/Activities. - [ ] Flow Lifecycle: Is
collectAsStateWithLifecycle()used instead of basecollectAsState()? (Critical for avoiding resource leaks when the app goes into the background). - [ ] Room TypeConverters: If caching domain models with complex definitions (e.g.
LocalDateTime,List<String>), did you verify a@TypeConverteris written and registered on the Database? ROOM WILL CRASH without this.
4. Performance & Memory
- [ ] Memory Leaks: Are there references to
Contextheld in long-lived objects? - [ ] Lazy Lists: Are
keyparameters provided foritems()inLazyColumn/LazyRow? - [ ] Heavy Work: Is heavy computation moved to
Dispatchers.Default?
5. Security & Privacy
- [ ] Sensitive Data: Ensure NO passwords, keys, or PII are logged or stored in plain text.
- [ ] Networking: Is all communication over HTTPS? No
cleartextTrafficallowed. - [ ] Permissions: Is the app requesting minimum necessary permissions?
📜 Reviewer Best Practices
- The "Why", Not Just the "What": Explain the reasoning behind a request (e.g., "Use
rememberhere to prevent re-calculating on every frame"). - Prioritize: Distinguish between "Critical" (security, crashes) and "Nitpick" (formatting, naming).
- Compliment: Acknowledge good code, elegant solutions, and clear documentation.
🧪 Verification Commands (For Agents)
Check Lint
./gradlew lintDebugCheck Style
./gradlew ktlintCheckRun Logic Tests
./gradlew testDebugUnitTest


