4.1、Android Stuido配置你的Build Variant

每个版本的build variant代表了你可以构建的每一个版本。虽然你未直接配置build variants,你可以通过配置build type和product flavor。

比如,一个demo的product flavor可以声明不同的特性和设备需求,比如自定义源码,资源和最小的API。但是debug的build type却有不同构建和打包设置,比如调试选项和签名文件。

配置Build Types

你可以在模块的build.gradle文件里的android{}区块中来创建和配置构建类型。当你创建一个新的模块的时候,Android Studio自动为你创建debug和release。虽然debug构建类型不出现在构建配置文件中,Android Studio通过debuggable true来配置。这会允许你在一个安全的Android设备中调试app,并且使用一个通用的debug的keystore对APK进行签名。

如果你想添加或更高确定的设置,你可以添加debug构建类型到你的配置中。接下来的例子声明为debug构建类型声明了一个applicationIdSuffix。并且配置一个jnidebug构建类型,设置其根据debug构建类型进行初始化。

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
        }
    }
}

配置Product Flavor

创建product flavor跟创建构建类型相同:将其添加到productFlavors{}区块中,并且配置你需要的设置。Product flavors支持defaultConfit,这是因为defaultConfig属于ProfuctFlavor类。这就意味着你可以为所有的Flavors在defaultConfig{}提供基本的配置。每个flavor可以复写任何这些默认值。比如applicationId。

注意:你仍然需要在manifest文件中的package属性中来声明包名。

以下是一个代码示例,创建一个demo和full的product flavor,并设置了他们自己的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"
        }
    }
}

在你创建和配置你的product flavor之后,点击消息提示条中出现的Sync Now按钮。在同步完成后,Gradle根据你的构建类型和product flavor自动创建build variants,并且用<product-flavor>。比如,如果你创建demo和full两个product flavor,并且保持debug和release为默认,Gradle则会创建以下build variants:

1、 demoDebug

2、 demoRelease

3、 fullDebug

4、 fullRelease

为Build Variants创建Source Sets

默认情况下,Android Studio创建main/ source set和目录在所有的build variants中共享。然而,你可以创建新的source sets来控制Gradle编译和特定的build types,product flavors和build variants。例如,你可以在main/ source set中定义基本的功能,使用product flavor source sets来改变你的app的东西,包括权限和日志等。

Gradle希望你通过确定的方式来组织source set文件和目录。

Android的Gradle插件提供了一个非常有用的Gradle 任务来显示你如何为乜咯build type,product flavor和build variants来组织你的文件。比如,以下的报告部分描述了Gradle希望找到debug 的build type的特定的文件:

------------------------------------------------------------
Project :app

debug

Compile configuration: compile
build.gradle name: android.sourceSets.debug
Java sources: [app/src/debug/java]
Manifest file: app/src/debug/AndroidManifest.xml
Android resources: [app/src/debug/res]
Assets: [app/src/debug/assets]
AIDL sources: [app/src/debug/aidl]
RenderScript sources: [app/src/debug/rs]
JNI sources: [app/src/debug/jni]
JNI libraries: [app/src/debug/jniLibs]
Java-style resources: [app/src/debug/resources]

为了生成和查看你的构建配置的报告,遵循如下:

1、 点击右面的IDE窗口

2、 找到MyApplication > Tasks > android,双击sourceSets

3、 查看报告,点击IDE窗口底部的Gradle Console

当你创建一个新的build variant,Android Studio不会为你创建一个source set 目录,但是会给你一些选项来帮助你。比如,为你的debug构建类型创建java/目录:

1、 打开项目面板,选择Project视图

2、 找到MyProject/app/src

3、 右键单击src目录,选择New > Folder > Java Folder

4、 在下拉中找到Target Source Set,选择debug

5、 点击Finish

Android Studio为你的debug构建类型创建一个source set目录,然后创建一个java/目录到里面。你同样可以让Android Studio为特定的build variant创建的新的文件来创建相应的目录。比如,为你的debug构建类型创建一个values XML文件:

1、 在Project面板中,右键单击src目录,选择New > XML > Values XML File

2、 输入XML文件名字,或者保持默认。

3、 在下拉中找到Target Source Set,选择debug

4、 点击Finish

因为debug构建类型是针对特定的source set,Android Studio在创建XML文件时自动创建必要的目录。如图:

本文作者:宋志辉

个人微博:点击进入

时间: 2024-12-13 08:47:56

4.1、Android Stuido配置你的Build Variant的相关文章

Android Gradle 技巧之一: Build Variant 相关

Build Variant android gradle 插件,允许对最终的包以多个维度进行组合. BuildVariant = ProductFlavor x BuildType 两个维度 最常见的就是这样: productFlavors { pro { } fre { } } lintOptions { abortOnError false } buildTypes { debug { } release { } } 其中,buildTypes 一般都会有 debug 或者release,标

Eclipse项目导入Android Stuio 配置出现 Timeout waiting to lock buildscript class cache for build file 'H:\studioproject\Generic_SN\build.gradle'

Eclipse项目导入Android Stuio 配置出现 Error:Timeout waiting to lock buildscript class cache for build file 'H:\studioproject\Generic_SN\build.gradle' (C:\Users\Administrator\.gradle\caches\2.2.1\scripts\build_81ep6udn3nlzszbotl32uedjz\ProjectScript\buildscri

Android(java)学习笔记127:Android Studio新建工程中的build.gradle、settings.gradle

随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者maven的继承的方式定义子项目,也提供了一种更为方便的集中配置的方式,大大减少了构建带来的复杂度.除此之外,Gradle还提供了清晰的Project树模型来映射多项目的组织结构.下面,让我们了解一下如何使用Gradle构建多项目. 1.多项目的定义和结构 Mulit project 设置是grad

Android Gradle 配置 [转]

转载自:http://pybeta.com/2016/06/about-gradle/ Android Gradle配置 编译加速 在gradle.properties中配置 1 org.gradle.configureondemand=true #demand 2 org.gradle.daemon=true #单独的守护进程 3 org.gradle.parallel=true #串行编译 4 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

Android Gradle配置

解决问题 错误: Could not find the AndroidManifest.xml file, going up from path //打开app build.gradle文件加入以下代码 /** * AA注解Apt配置 */ apt { arguments { androidManifestFile variant.processResources.manifestFile resourcePackageName AppPackageName } } 错误:  Could not

Android Studio配置Git及Git文件状态说明

Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题.如果你想了解或感兴趣,请往下看. 首先你得下载Git客户端,网址:http://git-scm.com/download/. 根据需要下载相应的版本,并安装.然后在Android Studio中指定git.exe,点击“Test”,成功则会弹出以下提示. 由于我用的是Android Studio 2.0 Preview,根本不存在“Enable Version Control Integration”提示,害我找

Android Studio 配置SVN 及 代码管理

转自:http://www.it165.net/pro/html/201508/51801.html 一.Android Studio配置SVN Android Studio关联配置SVN很简单,在Settings里面,找到Version Control->Subversion:在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览本地的SVN安装目录,选到"svn.exe"即可: 在Use command line clie

[Android] 环境配置之Android Studio开发NDK

======================================================== 作者:qiujuer 博客:blog.csdn.net/qiujuer 网站:www.qiujuer.net 开源库:Genius-Android 转载请注明出处:http://blog.csdn.net/qiujuer/article/details/42040963 ========================================================

OpenCV On Android环境配置最新&最全指南(Eclipse篇)

简介 本教程是经过本人多次踩坑,并参考网上众多OpenCV On Android的配置教程总结而来,尽希望能帮助学习移动图像处理的朋友们少走弯路.这也是本人第一次在简书上发布文章,如有不足,希望各位dalao能够指正,我也将及时修改.配置上如果遇到问题,也可以在评论里留言,我将尽力帮助解决.如有转载,请标明出处http://www.jianshu.com/p/b260ebb1c180.如果您使用的是android studio,请参考下一章OpenCV On Android环境配置最新&最全指南