Resource Merging
-
0:00 - 0:03我们已经学会了如何使用构建类型
来自定义 Gradle 的行为。 -
0:03 - 0:06所以现在我们来看看构建
变种如何允许你 -
0:06 - 0:08控制你的应用程序本身的行为。
-
0:08 - 0:10基于我们正在构建的应用程序,
-
0:10 - 0:13Android Gradle 插件可创建各
来源组的整体转换。 -
0:13 - 0:16依赖于你正构建的变种,它将合并各来源
-
0:16 - 0:18与来自嵌入最终 APK 的来源组的来源。
-
0:18 - 0:21在最广泛的层面上,
-
0:21 - 0:24有位于来源主要部分的主要来源组。
-
0:24 - 0:27这是目前为止我们一直存放我们所有代码的地方。
-
0:27 - 0:30此外,每个产品风格都有一个来源组。
-
0:30 - 0:33采用我们以前的例子,
我们假设我们有一个免费 -
0:33 - 0:35的和一个付费的产品风格。
-
0:35 - 0:39每个构建类型还有一个来源组,
在这种情况下调试和发布。 -
0:39 - 0:42最后,每个最终变种还有一个来源。
-
0:42 - 0:47因此这就是来源免费调试、
免费发布、付费调试和付费发布。 -
0:47 - 0:50如果我们有我们在付费风格而非
免费风格中需要的来源和资源, -
0:50 - 0:54我们可以将其放入付费来源。
-
0:54 - 0:58同样,如果有我们需要用于调试
构建而非用于发布构建的资源, -
0:58 - 1:00我们可将其放入来源调试。
-
1:02 - 1:04最后,如果我们有仅付费调试
变种需要的资源, -
1:04 - 1:07那么我们可以将其放入来源付费调试中。
-
1:09 - 1:11当我们构建特定变种时,Gradle 将照顾所有
-
1:11 - 1:14新出现的来源和我们需要用于该变种的资源。
-
1:14 - 1:18它还将照顾多个配置中定义的
-
1:18 - 1:19各种资源。
-
1:19 - 1:22规则是,覆盖的具体配置越多,
-
1:22 - 1:25具体配置就越少。
-
1:25 - 1:27Java 的源文件不能被覆盖,因此
-
1:27 - 1:30你需要小心不要试图定义同一类定义,
-
1:30 - 1:33这样将产生多个变种。
-
1:33 - 1:36对于资源文件,如 strings.xml 或
甚至 Android Manifests, -
1:36 - 1:38Gradle 可以做得好一些。
-
1:38 - 1:40对于该类型的资源,
这些文件将被合并, -
1:40 - 1:43条目将被 ID 覆盖。
-
1:43 - 1:47为确定当我们构建特定变种时,
哪些来源和资源被包括在内, -
1:47 - 1:50我们可以画一个看起来像
这样的图表。 -
1:50 - 1:52我们从中间开始。
-
1:52 - 1:55如果我们想构建付费调试变种,
Gradle 将在主要部分包括每个项目, -
1:55 - 2:00然后将每个项目合并到付费部分,
覆盖任何冲突。 -
2:00 - 2:04下一步,Gradle 将从调试合并到每个
项目,再次覆盖。 -
2:04 - 2:07然后,最后,Gradle 将合并到付费
-
2:07 - 2:09调试中的资源和来源。
![]() |
Udacity Robot edited Chinese, Simplified subtitles for 03-15 Resource_Merging | |
![]() |
Udacity Robot edited Chinese, Simplified subtitles for 03-15 Resource_Merging | |
![]() |
Udacity Robot edited Chinese, Simplified subtitles for 03-15 Resource_Merging | |
![]() |
Udacity Robot edited Chinese, Simplified subtitles for 03-15 Resource_Merging | |
![]() |
Udacity Robot edited Chinese, Simplified subtitles for 03-15 Resource_Merging |