Return to Video

Resource Merging

  • 0:00 - 0:03
    我们已经学会如何使用构建类型自定义 Gradle 行为
  • 0:03 - 0:06
    现在看看构建变种如何允许你控制应用
  • 0:06 - 0:08
    本身的行为
  • 0:08 - 0:10
    基于我们正在构建的应用
  • 0:10 - 0:13
    Android 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
    在构建特定变种时
  • 1:11 - 1:14
    Gradle 将照顾所有新出现的来源和需用于该变种的资源
  • 1:14 - 1:18
    它还将照顾多个配置中
  • 1:18 - 1:19
    定义的各种资源
  • 1:19 - 1:22
    规则是 覆盖的具体配置越多
  • 1:22 - 1:25
    具体配置就越少
  • 1:25 - 1:27
    Java 的源文件不能被覆盖
  • 1:27 - 1:30
    因此需要小心以免定义同一类定义
  • 1:30 - 1:33
    否则将产生多个变种
  • 1:33 - 1:36
    对于资源文件 如 strings.xml 甚至 Android 清单
  • 1:36 - 1:38
    Gradle 可以做得好一些
  • 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
    资源和来源
Title:
Resource Merging
Description:

more » « less
Video Language:
English
Team:
Udacity
Project:
UD867 - Gradle
Duration:
02:10

Chinese, Simplified subtitles

Revisions Compare revisions