Chinese, Simplified 字幕

← a4U_IGqqs6w

a4U_IGqqs6w

埋め込みコードを取得する
4言語

Showing Revision 4 created 04/13/2016 by Udacity Robot.

  1. 假设我们想更改
    Java 项目中的编译标记。
  2. 我们只需向 Java
    编译任务中添加一些配置即可。
  3. Java 项目的任务数量是确定的,
  4. 例如编译 Java、jar、test 等。
    但 Android 项目不同于一般的 Java 项目,
  5. Android 项目的
    任务数量是不确定的,
  6. 取决于我们声明的
    构建类型和产品风格。
  7. 此外,这些任务
    的名称已生成,而
  8. 这些名称则是基于任务
    所代表的特定变量生成的。
  9. 不仅是名称,这些任务
    也是在项目配置生命周期的
  10. 末期创建的。
  11. 这意味着,在大多数情况中,
  12. 我们无法直接在
    构建脚本时引用这些任务。
  13. 从根本上来说,
    我们需要解决两个问题。
  14. 首先,我们需要可以
    引用不需要知道任务的
  15. 实际名称就能用于构建
    特定变量的每个任务的方式。
  16. 这个非常简单,我们
    只需为每个变量配置
  17. 特定类型的所有任务。
  18. 其次,我们需要能
    在所有构建变量都建立后,
  19. 再对相应任务
    进行配置的方式。
  20. 这种方式意味着,在某个任务
    存在前,我们无法对其进行配置。
  21. 对于第一个问题,
    通过将所有
  22. 要包括到与所给任意
    变量相关的任务中的信息
  23. 组合至单个对象中的方式,
    Android Gradle 插件可自行解决。
  24. 这些对象的类型
    主要有三种,即 Application Variant、
  25. Library Variant 或 Test Variant。
  26. 我们需要哪种类型的变量
    取决于我们构建的项目类型。
  27. Application Variant 和
  28. Library Variant 分别是为
    Android 应用程序和库创建的。
  29. 而 Test Variant 则是为
    设备上的 APK 测试创建的。
  30. 每个变量都有其
    特定的属性,但它们也可以
  31. 执行常见的任务,
    例如编译 Java、合并资源等。
  32. 因此,Android Griddle 插件
    已非常完美,足以稳妥得为我们
  33. 打包某个变量的所有信息,
  34. 但仍然存在的问题是,
    我们如何引用这些变量对象呢?
  35. 被 Gradle 称之为
    “实时集合”的程序可解决这个问题。
  36. 实际上,随着
    Android 插件创建变量,
  37. 这些变量将被
    添加到一个奇特的集合中。
  38. 这些集合允许我们
    为不存在的对象
  39. 定义配置。
  40. Gradle 将记住
    这些配置,并在添加了
  41. 新对象时执行这些配置。
  42. 通过呼叫
    变量集合中的 all 方法,
  43. 我们可以指定此配置。
  44. 例如,如果我们
    想为应用程序变量配置
  45. 所有 Java 编译任务,
    以添加编译器参数时,
  46. 我们就可以执行类似操作。
  47. 不管我们配置了
    多少种产品风格,这种方法
  48. 现在都可以为每个调试版本
    类型配置每个 Java 编译任务。
  49. 您也就没有必要
  50. 猜测每个任务
    的最终名称是什么了。