Android Studio使用Gradle构建示例

前言

最近遇到了问题,大概是 APPT2 ERROR 错误,这个错误很常见,说的是 .9图片 有问题,但是网上的回答都非常的零散和不够系统。编译的时候从 LOG终端 中也看不了太多信息。网上的建议是加编译参数 --stacktrace --debug ,所以就想着把 Gradle 构建系统详细了解下。
以下说的大多是学习总结,一些概念可能描述的不准确,更多信息请参考文中和文末的资料链接。

问题

  1. Android Studio, Gradle, Groovy 的关系
  2. Android Studio 生成的项目中 build.gradle , settings.gradle , gradle.properties , gradle-wrapper.properties 这些文件的作用
  3. 如何构建不同渠道的多个包
  4. 如何构建服务器地址不同的包,甚至逻辑不同的版本,而不是新开分支

回答

Android Studio, Gradle, Groovy 的关系
  • Groovy 是基于JVM的一门语言,类似于其他基于JVM的语言一样,如 JAVA , KOTLIN 等,最终生成JAVA字节码运行在JVM虚拟机上。 我们从 Groovy官网 中下载安装,并了解 语言特性

      println ("Groovy Demo")
      def num1 = 6
      num2 = 3
      
      ppp "你好","Groovy"
      println "$num1 的平方是 ${sqrt(num1)}"
      println "$num1 + $num2 = ${ add(num1,num2)}"
      println "平方求和 ${sqrtSum(num1, num2, {var1, var2->var1 + var2})}"
      
      
      def ppp(m1, m2) {
         println "$m1 $m2"
      }
      def sqrtSum(var1, var2, action) {
          return sqrt(action(var2, var2) )
      }
      def add(x, y) {
          x + y
      }
      def sqrt(x) {
          x * x
      }
      def mul(var1, var2) {
          return var1 - var2
      }
      def div = {
          int var1, int var2->
          var1 / var2
      }
    

    Groovy 了解个大概,有个概念差不多了。具体的可以参考官网。

  • Android Studio 编译时就是把整个构造任务委托给 Gradle 来处理,可以构建Android项目还有 Ant , Buck 等。 Gradle 可以说是脚本,或者是语言,又或者是一个平台。 Groovy 基于JVM,Gradle 基于 GroovyGradle 可以实现自动化打包,自动化测试,项目依赖管理等功能。 Gradle 基于 约定优先配置 原则,能够非常智能的知道该如果加载库,编译源码,加载资源,以及生成目标产物的最终位置。而配置的各种的插件,就是定义了一系列的规则。比如,java插件,android插件。

      apply plugin: 'com.android.application'
    

    Gradle 编译的时候是执行一系列的task,可以使用下列命令查看所有的task

      gradle task --all
    

    常用的有 assemble , assembleDebug , assembleRelease , build , clean
    下面的代码直观感受下,如何编写 build.gradle , 以及如何执行的。我们先新建文件夹 GradleDemo ,然后新建文件 build.gradle , 基本结构就好了。在 build.gradle 写上下面的代码:

      println "Gradle demo"
      
      
      task sayHello {
          println "hello from task 'sayHello'"
      }
    

    如果我们执行 gradle task --all 将会看到 sayHello 这个 task , 我们执行下

    gradle sayHello

    将会看到如下输出

    Gradle demo

    hello from task ‘sayHello’

    :sayHello UP-TO-DATE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值