当你添加了flavor dimensions,你就须要为每个flavor添加flavorDimension,不然会提示缺点。flavorDimensions定义了不合的dimensions,当然其次序也很重要。当你归并二个不合的flavors时,他们可能有一样的设备和资本。例如上例:
- blueFreeDebug and blueFreeRelease
- bluePaidDebug and bluePaidRelease
- redFreeDebug and redFreeRelease
- redPaidDebug and redPaidRelease
构建变体
构建变体是构建版本和临盆版本的结合体。当你创建了一个构建版本或者临盆版本,同样的,新的变体也会被创建。举个例子,当你有debug和release版本,你创建了red和blue的临盆版本,那么变体将会有四个:
你可以在Android studio的左下角找到它,或者经由过程VIEW|Tool Windows|Build Variants打开它。该视图列出了所有的变体,并且许可你去切换它们。改变他们将会影响到你按Run按钮。
如不雅你没有product flavors,那么变体只是简单的包含构建版本,就算你没有定义任何构建版本,Android studio也会默认为你创建debug版本的。
tasks
android插件回味每一个变体创建不合的设备。一个新的Android项目会有debug和release版本,所有你可以应用assembleDebug和assembleRelease,当然当你应用assemble敕令,会二者都履行。当你添加了一个新的构建版本,新的task也会被创建。例如:
- assembleBlue uses the blue flavor configuration and assembles both BlueRelease and BlueDebug.
- assembleBlueDebug combines the flavor configuration with the build type configuration, and the flavor settings override the build type settings.
Source sets
构建变体也可以有本身的资本文件夹,举个例子,你可以有src/blueFreeDebug/java/。
资本文件和manifest的归并
在打包app之前,Android插件会归并main中的代码和构建的代码。当然,依附项目也可以供给额外的资本,它们也会被归并。你可能须要额外的Android权限针对debug变体。举个例子,你不想在main中申明这个权限,因为这可能导致一些问题,所以你可以添加一个额外的mainfest文件在debug的文件夹中,申明额外的权限。
资本和mainfests的优先级是如许的:
如不雅一个资本在main中和在flavor中定义了,那么那个在flavor中的资本竽暌剐更高的优先级。如许那个在flavor文件夹中的资本将会被打包到apk。而在依附项目申明的资本老是拥有最低优先级。
创建构建变体
和构建版本不合,product flavors用来为一个app创建不合版本。典范的例子是,一个app有付费和免费版。product flavors极大年夜简化了基于雷同的代码构建不合版本的app。
gradle让处理构建变体变得轻易。
- android {
- buildTypes {
- debug {
推荐阅读
美国德克萨斯州达拉斯市官员称,因为电脑黑客入侵,达拉斯所有紧急戒备体系在夜琅绫蛆叫了90分钟阁下,这是至今出现的最大年夜范围戒备体系入侵变乱。城市应急治理主任罗克·瓦兹(R>>>详细阅读
本文标题:Gradle for Android 第四篇( 构建变体 )
地址:http://www.17bianji.com/lsqh/34708.html
1/2 1