Files
ai-proj-helper/skills-dev/dev-android-plugin/skills/SKILL.md
T
johnQ d5bdfcfb7c refactor(skill): 18 个命令型技能转 user-invoked,压目录预算
- biz-* 4 个、integration-* 8 个、dev-android/ios/pda、publish、ai-proj-cicd-release、ai-proj-macos-release
- 均加 metadata.invocation: user-invoked + disable-model-invocation: true(DSH 实测生效)
- catalog: promoted/model-invoked 40、promoted/user-invoked 18、beta 3
2026-10-31 22:16:39 +08:00

1.4 KiB

name, description, metadata, disable-model-invocation
name description metadata disable-model-invocation
dev-android Android 开发插件。Kotlin + Jetpack Compose + Hilt 依赖注入。当涉及 Android 开发任务时按需加载。
invocation
user-invoked
true

Android 开发插件 (dev-android)

架构:MVVM + Hilt

android-app/app/src/main/
├── java/com/project/
│   ├── ui/              # Compose 屏幕 + 组件
│   ├── data/            # API + Repository + 本地存储
│   ├── domain/          # 业务逻辑
│   └── di/              # Hilt 依赖注入
└── res/                 # 资源文件

代码规范

@HiltViewModel
class TaskViewModel @Inject constructor(
    private val taskRepository: TaskRepository
) : ViewModel() {

    private val _tasks = MutableStateFlow<List<Task>>(emptyList())
    val tasks: StateFlow<List<Task>> = _tasks.asStateFlow()

    fun fetchTasks() {
        viewModelScope.launch {
            taskRepository.getTasks()
                .collect { _tasks.value = it }
        }
    }
}

@Composable
fun TaskListScreen(viewModel: TaskViewModel = hiltViewModel()) {
    val tasks by viewModel.tasks.collectAsState()
    LazyColumn {
        items(tasks) { task -> TaskItem(task = task) }
    }
}

构建

./gradlew assembleDebug      # Debug 构建
./gradlew assembleRelease    # Release 构建
./gradlew test               # 测试