You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android基于Demo构建自动生成基线配置文件的实现求助

解决方案

方案1:限制基线配置仅针对demo构建类型

直接在baselineProfile配置块中指定只针对demo构建类型生成基线,这样generateBaselineProfile任务就只会触发generateDemoBaselineProfile,不会执行其他构建类型的任务:

baselineProfile {
    saveInSrc = true
    mergeIntoMain = true
    automaticGenerationDuringBuild = true
    // 仅为demo构建类型生成基线配置
    buildTypes = listOf("demo")
}

配置完成后,运行./gradlew generateBaselineProfile时,Gradle只会执行generateDemoBaselineProfile任务,生成的基线文件会自动合并到app/src/main/generated/baselineProfiles/目录,完全不需要手动复制操作。

方案2:手动控制任务依赖与文件复制(灵活度更高)

如果需要保留其他构建类型的基线配置能力,只是在自动生成流程中只执行demo的任务,可以通过Gradle任务规则实现:

  1. 禁用非demo构建类型的基线生成任务,避免它们被触发:
tasks.withType<GenerateBaselineProfileTask>().configureEach {
    // 仅允许名称包含Demo的任务执行
    enabled = name.contains("Demo")
}
  1. 让根generateBaselineProfile任务依赖generateDemoBaselineProfile:
tasks.named("generateBaselineProfile") {
    dependsOn("generateDemoBaselineProfile")
}
  1. 添加自定义复制任务,将demo生成的基线文件同步到main目录(如果mergeIntoMain不生效时使用):
tasks.register<Copy>("copyDemoBaselineToMain") {
    from("app/src/demo/generated/baselineProfiles/baseline-prof.txt")
    into("app/src/main/generated/baselineProfiles/")
    // 确保在demo基线生成任务完成后执行
    dependsOn("generateDemoBaselineProfile")
}

// 让根任务依赖复制任务
tasks.named("generateBaselineProfile") {
    dependsOn("copyDemoBaselineToMain")
}

运行./gradlew generateBaselineProfile时,只会执行demo的基线生成任务,随后自动将文件复制到main目录。

注意事项

  • 方案1是官方插件原生支持的简洁方案,推荐优先使用。
  • 方案2需注意路径要与你的项目结构完全匹配,避免因路径错误导致复制失败。

内容的提问来源于stack exchange,提问作者Semanticer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 02:12:46