设置 Android 版 Flutter 风味
本指南将向您展示如何为 Android 应用创建 Flutter 风味。
概述
#Flutter 风味(在与 Android 结合使用时)是各种平台特定功能的统一术语。例如,风味可以决定特定应用版本所关联的图标、应用名称、API 密钥、功能标志和日志记录级别。
如果您想为 Android 应用创建 Flutter 风味,可以在 Flutter 中进行。在 Android 中,Flutter 风味被称为 产品风味。
以下示例说明了当 Android 应用具有两个产品风味(staging
、production
)和两种构建类型(debug
、release
)时创建的 Android 构建变体:
产品风味 | 构建类型 | 生成的构建变体 |
---|---|---|
staging | debug | stagingDebug stagingRelease |
production | release | productionDebug productionRelease |
配置您的产品风味
#请完成以下步骤,为名为 flavors_example
的新 Flutter 项目添加两个名为 staging
和 production
的 Android 产品风味,然后测试您的项目以确保风味按预期工作。
创建一个名为
flavors_example
的新 Flutter 项目,并将 Kotlin 作为首选 Android 语言。默认情况下,项目包含debug
和release
Android 构建类型。控制台flutter create --android-language kotlin flavors_example
为
flavors_example
项目添加名为staging
和production
的产品风味。在
flavors_example
项目中,导航到android/app/
目录并打开build.gradle.kts
。在
android {} block
中添加flavorsDimension
属性和productFlavors
属性。确保android {}
块还包含默认的debug
和release
构建类型。build.gradle.ktskotlinandroid { ... buildTypes { getByName("debug") {...} getByName("release") {...} } ... flavorDimensions += "default" productFlavors { create("staging") { dimension = "default" applicationIdSuffix = ".staging" } create("production") { dimension = "default" applicationIdSuffix = ".production" } } }
为了确保您已正确设置一切,请在 Android 产品风味上运行您的应用。您不会看到任何差异,因为配置设置尚未更改,但您确实需要确保应用可以运行。
启动 Android 模拟器或连接已启用开发者选项的物理设备。
在控制台中,导航到
flavors_example
目录并输入以下命令来测试staging
风味:控制台flutter run --flavor staging
为
production
风味重复上一步。
如果一切正常运行,您就可以自定义配置了。有关更多信息,请参阅 自定义配置。
启动风味
#在为 Android 应用添加产品风味后,您可以通过 Flutter 启动特定的产品风味。
您可以使用 Flutter CLI 通过以下步骤启动产品风味:
启动 Android 模拟器或连接已启用开发者选项的物理设备。
在控制台中,导航到
flavors_example
目录并输入以下命令:控制台flutter (run | build) --flavor <flavor_name>
(run | build)
:用以下选项之一替换:run
:以调试模式运行应用。build
:以生产模式运行应用。
<flavor_name>
:替换为您 Android 产品风味的名称(例如,staging
或production
)。
示例
控制台flutter run --flavor staging
自定义配置
#添加产品风味后,您可以为 Android 应用自定义它们。
创建不同的应用显示名称
#如果您有多个产品风味,不同的应用名称可以帮助您快速识别正在使用的已部署应用的风味。
以下步骤展示了如何在名为 flavors_example
的项目中为两个名为 staging
和 production
的产品风味添加不同的应用显示名称。
在 IDE 中更新
build.gradle.kts
在
flavors_example
项目中,导航到android/app/
目录并打开build.gradle.kts
。在
flavorsDimension
块中,为staging
和production
风味添加一个名为app_name
的resValue()
属性。build.gradle.ktskotlinandroid { ... flavorDimensions += "default" productFlavors { create("staging") { dimension = "default" resValue( type = "string", name = "app_name", value = "Flavors staging") applicationIdSuffix = ".staging" } create("production") { dimension = "default" resValue( type = "string", name = "app_name", value = "Flavors production") applicationIdSuffix = ".production" } }
在 IDE 中更新
AndroidManifest.xml
在
flavors_example
项目中,导航到android/app/src/main
并打开AndroidManifest.xml
。将
android:label
的值替换为@string/app_name
。AndroidManifest.xmlxml<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:label="@string/app_name" ... /> />
为每个产品风味(
staging
、production
)启动应用,并检查以确保每个应用的显示名称都已更改。要启动产品风味,请参阅 启动风味 中的步骤。
在 Android 应用模拟器中,转到应用列表。您应该会看到一个名为
Flavors p...
的应用和一个名为Flavors s...
的应用。要查看
Flavors p...
或Flavors s...
的更多信息,请长按其中一个图标,然后选择应用信息
。
创建不同的图标
#如果您有多个产品风味,为每种配置使用不同的图标可以帮助您快速识别正在使用的已部署应用的风味。
以下步骤展示了如何在名为 flavors_example
的项目中为两个名为 staging
和 production
的产品风味添加不同的图标。
准备您的图标
在您选择的设计工具中设计您的
staging
图标和production
图标。以 PNG 格式生成以下尺寸的
staging
图标和production
图标版本:- mipmap-mdpi (48x48 像素)
- mipmap-hdpi (72x72 像素)
- mipmap-xhdpi (96x96 像素)
- mipmap-xxhdpi (144x144 像素)
- mipmap-xxxhdpi (192x192 像素)
创建特定于风味的代码资源目录
导航到
android/app/src
目录。创建一个名为
staging/res
的目录。导航到
staging/res
目录。创建以下
mipmap
目录并将staging
图标版本移入其中:mipmap-mdpi/48x48_staging.png
mipmap-hdpi/72x72_staging.png
mipmap-xhdpi/96x96_staging.png
mipmap-xxhdpi/144x144_staging.png
mipmap-xxxhdpi/192x192_staging.png
为
production
风味目录和图标重复上述步骤。将所有图标重命名为
ic_launcher.png
。
在 IDE 中仔细检查
AndroidManifest.xml
中的配置。在
flavors_example
项目中,导航到android/app/src/main
并打开AndroidManifest.xml
。确保
android:icon
的值是@mipmap/ic_launcher
。
为每个产品风味(
staging
、production
)启动应用,并检查以确保每个应用图标都已更改。要启动产品风味,请参阅 启动风味 中的步骤。
打包资源
#如果您的应用中有仅在特定风味中使用的资源,您可以将其配置为仅在该风味启动时打包到您的应用中。这可以防止您的应用包因未使用的资源而膨胀。要为每个风味打包资源,请在项目的 pubspec 文件中将 assets
字段的 flavors
子字段添加到 assets
字段。有关更多信息,请参阅 Flutter pubspec 选项 中 assets
字段。
设置默认风味
#您可以让您的应用在启动应用时不指定风味,而是使用特定的风味。为此,您需要在项目的 pubspec 文件中添加 default-flavor
字段。有关更多信息,请参阅 Flutter pubspec 选项 中 default-flavor
字段。
添加独特的构建设置
#如果您有要为特定 Android 产品风味配置的附加构建设置,请参阅 Android 的 配置构建变体。
更多信息
#有关创建和使用风味的更多信息,请查看以下资源: