Android的Gradle技巧 3.2产品风格和变体

32 篇文章 0 订阅
3.2产品风格和变体
问题
你想构建本质上相同的应用程序,但使用不同的资源和/或类。

产品风格允许您创建同一个应用程序的多个不同版本。
讨论
构建类型是开发过程的一部分,通常用作一个从开发到生产的应用程序。默认反映了构建类型,调试和发布。
Flavors允许你构建同一个应用程序的多个版本。如果您需要为不同的客户端自定义应用的外观和风格,或者同时需要同一应用的免费和付费版本,则可能会发生这种情况。
要声明产品风味,请使用android闭包中的productFlavors块。考虑一个“Hello,World”风格的Android应用程序,基于一个简单的EditText名称条目向用户打招呼。你可以通过引入“友好”,“傲慢”和“obsequious”的口味给应用程序一种态度,如例3-4。
实例3-4。分配产品风格
android {
productFlavors {
arrogant {
applicationId 'com.oreilly.helloworld.arrg'
}
friendly {
applicationId 'com.oreilly.helloworld.frnd'
}
obsequious {
applicationId 'com.oreilly.helloworld.obsq'
}
}
}

在这种情况下,每个都有一个稍微不同的applicationId,以便所有三个可以安装在同一个设备上。
Flavor名称不能匹配现有的构建类型名称或预定义名称androidTest。
每个产品flavor都可以有自己的以下属性的值,其中基于defaultConfig的相同属性:
•applicationId
•minSdkVersion
•targetSdkVersion
•versionCode
•versionName
•signingConfig
每个flavor定义了自己的源集合和资源,它们是主源集合的兄弟。对于示例3-4中定义的flavor,这意味着除了app / src / main / java之外,您还可以在以下位置添加源文件:
•app / src / arrogant / java
•app / src / friendly / java
•app / src / obsequious / java
您还可以在以下位置添加其他资源文件:
•app / src / arrogant / res
•app / src / arrogant / res / layout
•app / src / arrogant / res / values
以及res的任何其他子目录。相同的资源结构也适用于所有风味。一个简单的例子如图3-3所示。

构建类型也支持类似的文件夹结构。构建类型和风味的组合称为变体。对于两种默认构建类型(调试和发布)和这里显示的三种风格(傲慢,友好和顺从),可以生成六个不同的APK。


图3-3。产品风格与源代码和资源
要查看所有可用的变量名称,请将示例3-5中的自定义任务添加到模块构建。
实例3-5。用于打印可用变量的自定义任务

task printVariantNames() {
doLast {
android.applicationVariants.all { variant ->
println variant.name
}
}
}
执行printVariantNames任务显示它们,如例3-6所示。
编写自己的Gradle任务在配方4.1中讨论。
实例3-6。打印所有变量名称
> ./gradlew printVariantNames
:app:printVariantNames
obsequiousDebug
obsequiousRelease
arrogantDebug
arrogantRelease
friendlyDebug
friendlyRelease
BUILD SUCCESSFUL

要部署特定的变体,Android Studio提供了一个构建变体视图。从下拉列表中选择适当的变体,如图3-4所示,并照常部署。


图3-4。在Android Studio中创建变体视图
当使用产品风格时,组合任务构建所有可能的变体。组合<Variant>任务仅构建构建类型和风格的特定组合。您还可以运行assemble <BuildType>在该构建类型中构建所有风格,或者组合<Flavor>构建该风格的所有构建类型。安装任务特定于每个变体,如installArrogantDebug或installFriendlyRelease。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值