📜  适用于 Android 的 Gradle 提示和技巧(1)

📅  最后修改于: 2023-12-03 15:41:56.772000             🧑  作者: Mango

适用于 Android 的 Gradle 提示和技巧

Gradle是一种基于Apache Ant and Apache Maven概念的项目自动化构建工具。在Android中,Gradle用于构建和管理项目。以下是一些适用于Android的Gradle提示和技巧:

1. Gradle Wrapper

Gradle Wrapper是Gradle的一种特性,可以确保每个开发者使用同一版本的Gradle。通过执行以下命令在你的项目中创建Gradle Wrapper:

$ gradle wrapper

执行成功后,你将看到如下文件被添加到你的项目中:

  • gradlew
  • gradlew.bat
  • gradle/wrapper/gradle-wrapper.jar
  • gradle/wrapper/gradle-wrapper.properties

这些文件允许你在不依赖本地Gradle安装的情况下执行Gradle命令。只需要在终端中执行以下命令即可:

$ ./gradlew taskName
2. Gradle依赖

依赖管理是Gradle的另一项主要功能。你可以使用build.gradle文件来指定你的项目所需的所有依赖。

添加依赖

Gradle使用以下语法添加依赖:

dependencies {
    implementation 'com.example.library:libraryName:1.0.0'
}

注意,implementation是一种更好的依赖项配置选项,它代表了该库在运行时必须使用并且不会在你的代码之外暴露的类。

排除依赖

有时,你可能希望在添加依赖时排除一些特定的依赖项,比如在使用Google Play Services时使用Glide库,但是又不想使用Glide中的OkHttp依赖。你可以使用以下代码配置:

dependencies {
    implementation('com.github.bumptech.glide:glide:4.12.0') {
        exclude group: 'com.squareup.okhttp3'
    }
}
依赖版本控制

Gradle还可以帮助你控制项目中使用的所有库的版本。你可以将版本号定义为常量并在整个文件中重复使用,从而避免出现多个库的版本不同的问题。在build.gradle文件中定义版本号如下:

def version = [
        compileSdk: 31,
        targetSdk: 31,
        minSdk: 21,

        appcompat: "1.4.0",
        constraintLayout: "2.1.1",
        kotlin: "1.5.31",
        navigation: "2.4.0-alpha08",
        koin: "3.1.2",
        hilt: [
                hiltGradlePlugin: "2.39.1",
                hiltAndroid: "2.39.1",
                hiltLifecycle: "1.0.0-alpha03"
        ],
        retrofit: "2.9.0",
        okHttp: "4.9.2",
        moshi: "1.12.0",
        coil: "1.4.0",
        leakcanary: "2.7",
        firebase: [
                firebaseCore: "20.0.1",
                firebaseMessaging: "21.0.1"
        ],
        junit: "4.13.2"
]
3. Gradle插件

你可以添加Gradle插件来扩展Gradle的能力。以下是一些可以提高开发效率的Gradle插件:

Kotlin Android Extensions

Kotlin Android Extensions插件可以减少在代码中使用findViewById的代码量。该插件自动生成具有相应ID的视图组件的引用。要使用该插件,需要在build.gradle文件中添加以下行:

apply plugin: 'kotlin-android-extensions'
ButterKnife

ButterKnife可帮助你消除类型转换和findViewById的代码。它使你可以使用注释注入视图,并且为你绑定你的所有视图。要使用ButterKnife,首先在你的项目中添加以下依赖项:

dependencies {
    implementation 'com.jakewharton:butterknife:10.1.0'
}

然后,在build.gradle文件中添加以下行:

apply plugin: 'com.jakewharton.butterknife'
LeakCanary

LeakCanary是一种专门用于检测内存泄漏的插件。它会在发现内存泄漏时自动打印带有相应报告的日志消息。要使用LeakCanary,首先在你的项目中添加以下依赖项:

android {
    buildScript {
        repositories {
            maven { url 'https://maven.google.com' }
            google()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:X.X.X'
            classpath 'com.google.gms:google-services:4.3.8'
            classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
            classpath 'com.google.firebase:perf-plugin:1.4.0'
        }
    }
}

dependencies {
    debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
    releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:2.7'
}

其中X.X.X为Gradle版本号。

结论

Gradle是Android项目中不可或缺的构建工具,它使开发更加容易和灵活。本文提供了一些适用于Android的Gradle提示和技巧,以帮助你更好地掌握Gradle的能力并提高开发效率。