原文地址: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7
翻译:Android Studio 中文组(大锤译)

续Gradle(二)

通用任务

        将一个plugin运用到build file中时,会自动创建一系列的构建任务(build task)去运行。Java plugin和Android Plugin也都会如此。
我们对于任务的约定有以下四个:

         assemble任务,汇集所有项目输出
        
         check任务,运行所有校验

         build任务,既汇集又校验
        
         clean任务,清除所有项目输出

       assemble, check and build任务自己本身不做任何事情,它们只是plugin锚点,真正任务的是由plugin来添加执行。
这样做的好处是,不管你在什么项目中,你都可以调用同样的命令来执行。

        通过命令行,你可以得到更高级别的任务,命令如下:
  1. gradle tasks
复制代码 列出当前运行的所有任务,以及查看他们之间的依赖关系:
  1. gradle tasks --all
复制代码 注: Gradle会自动地检测一个任务中申明的输入和输出。当重复执行两次build任务时,Gradle会报告当前所有任务是UP-TO-DATE的状态。

Java项目的任务

        Java plugin会创建两个任务,分别挂到锚任务中,如下:

         assemble
                 jar  This task creates the output.
         check
                 test This task runs the tests.

  •                    jar 任务是编译执行Java源代码。
  •                    test任务是运行unit test


   通常,java项目中的任务只会用到assemble和check这两个,更多的其他task详见 此处


Android 任务

   Android的任务比通用的四大任务多了“connectedCheck”和“deviceCheck”,这是想要让项目忽视设备是否连接,正常执行check任务。

         assemble任务,  汇集所有项目输出

         check任务,运行所有校验

         connectedCheck 任务,运行所有需要链接设备或模拟器的校验, 并行运行

         deviceCheck 任务,运行调用远程设备的校验,运用于CI Servers

         build任务,既汇集又校验

         clean任务,清除所有项目输出

注:build任务不依赖与deviceCheck或connectedCheck

一个安卓的项目至少有两个输出,一是debug apk,二是release apk.这两个输出都有自己对应的锚任务,来实现它们各自的构建
调用assemble任务时会同时调用assembleDebug和assembleRelease来保证有两个输出。

assemble
        - assembleDebug
        - assemblRelease


         Tip : Gradle 支持Camel命名方式的简写,比如在输命令行时,可以用 aR 代替 assembleRelease ,如果没有其他别的任务也是aR简写的话:
  1. gradle  aR =  gradle assembleRelease
复制代码
Check
任务也有它们自己的依赖关系:
         check
                --- lint (目前还没实现,汗一个)
         connectedCheck
                --- connectedInstrumentTest
                --- connectedUiAutomatorTest (这个也还没实现……)
         deviceCheck
                依赖于任务创建时,其他插件实现测试的扩展点

最后, 为了能够安装卸载,Android plugin 为所有的build类型(debug,release,test)都创建了 install/uninstall  任务,但需要signing。

更多相关文章

  1. 修改android studio 新建项目的build.gradle的仓库源
  2. Android 实用开源项目集合 持续更新
  3. GitHub 优秀的 Android 开源项目(值得研究)
  4. Android的一些开源项目集锦 以备以后研究
  5. Android中必须学习的八大开源项目
  6. 网丁:新项目技术知识点
  7. android studio 3.1.1 创建项目编译不过的问题解决
  8. android studio 3.0 升级 项目遇到的问题更改
  9. android 之用Hello World做项目结构分析

随机推荐

  1. Android(安卓)怎样获得手机信息(四)
  2. Android控件篇
  3. 快手内推
  4. Android控件RecyclerView与ListView的异
  5. Android(安卓)OpenGLES2.0(二)——绘制一个
  6. 新浪微博开放平台开发-android客户端(1)
  7. Android(安卓)anr介绍
  8. Android(安卓)RxJava 2.0:手把手带你 源码
  9. Android(安卓)开发工具介绍-SDK工具和平
  10. android的环境搭建