官网文档 gradle 理解

Android Studio 使用 Gradle 这一高级构建工具包来自动化执行和管理构建流程,同时也允许您定义灵活的自定义构建配置。每个构建配置均可自行定义一组代码和资源,同时对所有应用版本共有的部分加以重复利用。
Android Plugin for Gradle 与这个构建工具包协作,共同提供专用于构建和测试 Android 应用的流程和可配置设置。

gradle 和 android plugin fore gradle 都是独立于android studio 运行。

构建流程图
这里写图片描述

配置构建类型

您可以在模块级 build.gradle 文件的 android {} 代码块内部创建和配置构建类型。当您创建新模块时,Android Studio 会自动为您创建调试和发布这两种构建类型。尽管调试构建类型不会出现在构建配置文件中,Android Studio 会将其配置为 debuggable true。这样,您可以在安全的 Android 设备上调试应用并使用通用调试密钥库配置 APK 签署。

如果您希望添加或更改特定设置,您可以将调试构建类型添加到您的配置中。以下示例为调试构建类型指定了 applicationIdSuffix,并配置了一个使用调试构建类型中的设置进行初始化的“jnidebug”构建类型。

 android {
    ...
    defaultConfig {...}
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        debug {
            applicationIdSuffix ".debug"
        }

        /**
         * The 'initWith' property allows you to copy configurations from other build types,
         * so you don't have to configure one from the beginning. You can then configure
         * just the settings you want to change. The following line initializes
         * "jnidebug" using the debug build type, and changes only the
         * applicationIdSuffix and versionNameSuffix settings.
         */

        jnidebug {

            // This copies the debuggable attribute and debug signing configurations.
            initWith debug

            applicationIdSuffix ".jnidebug"
            jniDebuggable true
        }
    }
}
    buildTypes 可以配置各个版本需要的相应属性,例如发布版本需要 混淆, 而debug版本不需要, 或者其他自定义版本的属性。
    在buildTypes区域中可以配置许多构建的属性,例如: 混淆文件 --proguardFiles、是否过滤掉未使用的资源 -- shrinkResources (默认为false: 未使用 是指代码中从未引用过的resource资源)、开启多个Dex文件--multiDexEnabled (在android 5.0之前需要使用,用于突破65K方法数)等。更多的属性可以参考官方文档。

配置产品风味


创建产品风味与创建构建类型类似:只需将它们添加到 productFlavors {} 代码块并配置您想要的设置。产品风味支持与 defaultConfig 相同的属性,这是因为 defaultConfig 实际上属于 ProductFlavor 类。这意味着,您可以在 defaultConfig {} 代码块中提供所有风味的基本配置,每种风味均可替换任何默认值,例如 applicationId。

注:您仍需在 main/ 清单文件中使用 package 属性指定程序包名称。您还必须在源代码中使用此程序包名称引用 R 类或者解析任何相关的 Activity 或服务注册。这样,您可以使用 applicationId 为每个产品风味分配一个唯一的 ID,以用于打包和分发,而不必更改您的源代码。

以下代码示例创建了一个“演示”和“完整”产品风味并赋予其自己的 applicationId 和 versionName

    android {
        ...
        defaultConfig {...}
        buildTypes {...}
        productFlavors {
            demo {
                applicationId "com.example.myapp.demo"
                versionName "1.0-demo"
            }
            full {
                applicationId "com.example.myapp.full"
                versionName "1.0-full"
            }
        }
    }

配置此参数之后,gradle可以根据你的配置生成相应的apk,每一个配置对应的一个apk。
配置完成后, 你也可以单独的为每个flavors配置他们独有的功能代码。可以参考 官网的 “构建配置”章节里面的”创建用于构建变体的源集” 小节

配置签署设置


除非您为发布构建显式定义签署配置,否则,Gradle 不会签署发布构建的 APK。您可以轻松创建发布密钥并使用 Android Studio 签署发布构建类型。

要使用 Gradle 构建配置为您的发布构建类型手动配置签署配置:

1.创建密钥库。密钥库是一个二进制文件,它包含一组私钥。您必须将密钥库存放在安全可靠的地方。
2.创建私钥。私钥代表将通过应用识别的实体,如某个人或某家公司。
3.将签署配置添加到模块级 build.gradle 文件中:

...
android {
    ...
    defaultConfig {...}
    signingConfigs {
        release {
            storeFile file("myreleasekey.keystore")
            storePassword "password"
            keyAlias "MyReleaseKey"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

因为andorid要求所有的apk先签名才能安装。所有你可以在这里配置相应的秘钥,用于发布 和 调试版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值