android Jetpack Compose项目的build.gradle.kts,Gradle构建系统中的配置文件,用于定义Android项目的构建逻辑依赖

1、build.gradle.kts

scss 复制代码
plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("org.jetbrains.kotlin.plugin.compose")
}

android {
    namespace = "com.codelab.basics"
    compileSdk = 36

    defaultConfig {
        applicationId = "com.codelab.basics"
        minSdk = 24
        targetSdk = 36
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    buildFeatures {
        compose = true
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
}

dependencies {
    implementation("androidx.core:core-ktx:1.15.0")
    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
    implementation("androidx.activity:activity-compose:1.10.0")
    implementation(platform("androidx.compose:compose-bom:2025.02.00"))
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.ui:ui-graphics")
    implementation("androidx.compose.ui:ui-tooling-preview")
    implementation("androidx.compose.material3:material3")
    implementation("androidx.compose.material:material-icons-extended")
    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.2.1")
    androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
    androidTestImplementation(platform("androidx.compose:compose-bom:2025.02.00"))
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
    debugImplementation("androidx.compose.ui:ui-tooling")
    debugImplementation("androidx.compose.ui:ui-test-manifest")
}

2、plugins说明

构建脚本中使用的插件:

  • 应用 com.android.application 插件,用于配置Android应用项目。
  • 应用 org.jetbrains.kotlin.android 插件,启用Kotlin对Android的支持。
  • 应用 org.jetbrains.kotlin.plugin.compose 插件,启用Jetpack Compose功能支持。

上面简单的几行,代码了android项目,需要有Kotlin的支持,还启用了Compose支持,如果删除了以后,系统将会报错:

1)删除org.jetbrains.kotlin.android:

配制文件中用到的kotlin的一些项会直接报错。

2)删除org.jetbrains.kotlin.plugin.compose: 项目是基于jetpack compose的,所以一定要启用,否则直接就报错。

复制代码

3、android {}

用于配置Android项目的构建参数。

namespace:命名空间

compileSdk:SDK版本

applicationId:应用ID。

minSdk = 24 最低SDK版本

targetSdk = 36 目标SDK版本

versionCode = 1 版本号

versionName = "1.0" 版本号

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" 用于在 Android 项目中执行 instrumentation 测试。它指定了测试框架的入口点,使测试能够在设备或模拟器上运行。

ini 复制代码
vectorDrawables {
    useSupportLibrary = true
}

配置 vectorDrawables,启用支持库以兼容旧版本 Android 系统中的矢量图绘制功能

arduino 复制代码
buildTypes {
release {
    isMinifyEnabled = false
    proguardFiles(
    getDefaultProguardFile("proguard-android-optimize.txt"),
    "proguard-rules.pro")
   }
}

配置构建类型,定义release版本的混淆设置和ProGuard规则文件

ini 复制代码
compileOptions {
   sourceCompatibility = JavaVersion.VERSION\_1\_8
   targetCompatibility = JavaVersion.VERSION\_1\_8
}

kotlinOptions {
   jvmTarget = "1.8"
}

设置编译选项,指定Java和Kotlin的兼容性版本为1.8

ini 复制代码
buildFeatures {
   compose = true
}

启用Jetpack Compose构建特性

arduino 复制代码
packaging {
    resources {
       excludes += "/META-INF/{AL2.0,LGPL2.1}"
    }
}

配置打包时资源文件的排除规则

4、dependencies

Kotlin代码定义了一个Gradle构建文件中的依赖项配置,主要用于Android项目的依赖管理。

区分了不同环境的依赖,如implementation用于生产环境,testImplementation用于测试环境,debugImplementation用于调试环境。

core-ktx:用于Android核心库的Kotlin扩展。

lifecycle-runtime-ktx:用于Android生命周期的Kotlin扩展。

activity-compose:用于将Jetpack Compose与Activity集成。

compose-bom:用于管理Jetpack Compose库的版本。引入Compose BOM(Bill of Materials)作为平台依赖,统一管理版本。

ui、ui-graphics、ui-tooling-preview:用于Jetpack Compose的UI库。

material3:用于Jetpack Compose的Material Design组件。

material-icons-extended:用于Jetpack Compose的扩展Material图标。

调试与单元测试

testImplementation("junit:junit:4.13.2"):添加JUnit 4框架用于单元测试。

androidTestImplementation("androidx.test.ext:junit:1.2.1"):添加Android测试扩展库,增强JUnit功能。

androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1"):添加Espresso库,用于UI交互测试。

androidTestImplementation(platform("androidx.compose:compose-bom:2025.02.00")) androidTestImplementation("androidx.compose.ui:ui-test-junit4"):配置Jetpack Compose测试支持。

debugImplementation("androidx.compose.ui:ui-tooling")debugImplementation("androidx.compose.ui:ui-test-manifest"):添加调试工具和测试清单文件支持。 控制流图

5、总结

至此一个常用的build.gradle.kts文件,就基本上了解清楚了。

相关推荐
黄林晴2 分钟前
Android CLI 来了!终端一键建项目、控模拟器、给 Agent 喂官方规范
android
常利兵5 分钟前
Kotlin 助力 Android 启动“大提速”
android·开发语言·kotlin
撩得Android一次心动7 分钟前
Android DataBinding 全面解析【源码篇2】
android·源码·android jetpack·databinding
守月满空山雪照窗7 分钟前
图形 API 体系解析:Android Vulkan / OpenGL 与主流图形 API 对比
android
我命由我123458 分钟前
Android 开发,getSystemService 警告信息:Must be one of: Context. POWER_SERVICE ...
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
zopple12 分钟前
Laravel3.x经典特性回顾
android·java·数据库
Digitally26 分钟前
8 种方法:将视频从手机传输到电脑(安卓 /iOS)
android·智能手机·电脑
LiuYaoheng40 分钟前
【Android】Handler 全面解析
android
华盛AI42 分钟前
Lovable开发平台,生成安卓和iOS都能运行的原生App方案(用Kotlin或者Switf编写)
android·ios·kotlin