从零开始的Android新项目2 - Gradle篇

本文分享了在Android项目中使用Gradle的一些实践经验,包括module类型的区分、版本号管理、依赖管理、签名安全保存、Java8支持、Split APK以及module aar依赖的处理。通过这些方法,可以提高项目的管理和编译效率,确保代码的安全性。
摘要由CSDN通过智能技术生成

相信大家的项目用上gradle都已经很久了,但用得如何呢?这里分享一下我的gradle脚本,大部分都是去年6月左右就开始用上的,有一部分比如签名的安全保存则是最近才自己动手,做了令自己觉得还不错的方案。

module类型的区分

科普小结,可能有些同学不太明白Java library module和Android library module是怎么区分的,其实就是个plugin的区别,在module的build.gradle中:

Android application module:

apply plugin: 'com.android.application'

Android library module:

apply plugin: 'com.android.library'

Java library module:

apply plugin: 'java'

版本号管理

如果只有一个application module还好,如果我们有多个module怎么办呢?每次改版本号累不累?

解决方案就是在root里申明全局变量,可以在单独的gradle里(比如新建一个dependency.gradle)申明然后apply from引用进来,或者直接定义在root的build.gradle中。

project.ext {
    applicationId = "com.xxx"
    buildToolsVersion = "23.0.2"
    compileSdkVersion = 23
    minSdkVersion = 14
    targetSdkVersion = 23
    versionCode = 1
    versionName = "1.0.0"
    abortOnLintError = false
    checkLintRelease = false
    useJack = false
    abortOnLintError = false

    javaVersion = JavaVersion.VERSION_1_8
    ...
}

在子module里面则使用rootProject.ext去进行引用:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId rootProject.ext.applicationId
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
        multiDexEnabled true
    }

    compileOptions {
        sourceCompatibility rootProject.ext.javaVersion
        sourceCompatibility rootProject.ext.javaVersion
    }

    packagingOptions {
        exclude 'LICENSE.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
    }

    lintOptions {
        abortOnError rootProject.ext.abortOnLintError
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值