Gradle系列(1) Gradle入门介绍及Groovy基本语法介绍

8 篇文章 0 订阅
4 篇文章 1 订阅

本系列文章是关于Android Gradle项目的一些常用知识点的归纳总结,文章提及到的内容都是项目构建脚本中经常用到的。文中内容大部分都是作者在学习《Android Gradle 权威指南》一书时总结的学习笔记,如果觉得文中内容对你有用或者有不妥的地方请留下你宝贵的建议和留言。最后关于gradle这块的知识,如果时间允许的话强烈推荐大家去拜读一下《Android Gradle 权威指南》。

Gradle系列(1) Gradle入门介绍及Groovy基本语法介绍
Gradle系列(2) Task的介绍和用法
Gradle系列(3) Gradle插件的作用及用法
Gradle系列(4) Android Gradle
未完待续、、、

1、Gradle基本入门介绍
  • 1、gradle/wrapper
    • (1) wrapper 就是对gradle的一层封装,便于团队开发过程中统一Gradle的构建版本
    • (2) 生成wrapper: 在项目的根目录下运行 gradlew wrapper(mac下运行 ./gradlew wrapper )命令
  • 2、gradle 常用命令行
    • (1) 查看所有可执行的任务 gradlew tasks
    • (2) 查看task的帮助信息 gradlew help --task :your_taskName
    • (3) 强制刷新依赖 gradlew–refresh-dependencies assemble 这种可解决缓存引起的,依赖库在代码里已经修改可以运行后依赖还是旧版本的问题。
1、Groovy基本语法
  • Groovy完全兼容Java,你可以在build脚本文件里面写任何的java代码,非常灵活方便

  • 1、字符串

    • (1) Groovy中单引号双引号都能表示字符串
    • (2) 区别: 单引号的字符串中没用运算能力,双引号字符串则具有运算能力。
      • 列子:
         def name = "张三"
         println '单引号的变量计算: ${name}'
         println "双引号的变量计算: ${name}"
      
         输出结果:
         单引号的变量计算: ${name}
         双引号的变量计算: 张三
      
  • 2、集合

    • (1) List
          task pintList{
              def numList = [1,2,3,4,5,6,7]
              println numList.getClass().name
              println numList[1] ///访问第二个元素
              println numList[-1] ///访问第最后一个元素
              println numList[-2] ///访问第倒数第二个元素
              println numList[1..3] ///访问第二个到第四个元素
      
              ///利用each函数迭代元素
              numList.each{
                  println it
              }
          }
      
    • (2) Map
      	task printlnMap{
              def map1 = ['width': 1024, 'height':768]
              println map1.getClass().name
      
              println map1['width']
              println map1.height
      
              map1.each{
                  println "Key:${it.key}, Value:${it.value}"
              }
          }
      
  • 3、函数

    • Groovy中函数的定义声明的语法,跟其他面向函数编程语言的语法是非常的相似的,列如kotlin方法的声明和定义。
    • (1) 函数的括号是可以省略的
          task invokeMethod{
              method1(1,2)
              method1 1,2 ///括号可以省略
          }
          def method1(int a, int b){
              println a+b
          }
      
    • (2) return关键字是可以省略的
        task printlnMethodReturn{
            def add1 = method2 1,2
            def add2 = method2 5,3
            println "add1:${add1},add2:${add2}"
        }
        def method2(int a, int b){
            if(a>b){
                a
            }else{
                b
            }
        }
      
    • (3) 代码块可以做为参数传递,其实这就是闭包参数的用法
          ///numList是一个List
          numList.each({ println it})
      
          ///如果方法的最后一个参数是闭包,则闭包可以放到方法外面
          numList.each(){
              println it
          }
      
          ///方法的扩号可以省略,就变成了我们平时经常看到的样式了
          numList.each{
              println it
          }
      
  • 4、闭包

    • 闭包其实就是一段代码块
    • (1) 集合的each方法我们前面已经用过了,下面我们就以其为例,实现一个类似的闭包功能。
        task helloClosure{
            customEach{
                println it
            }
        }
      
        def customEach(closure){
            ///模拟一个十个元素的集合,开始迭代
            for( int i in 1..10){
                closure(i) /// 这里调用的就是上面{ println it} 代码块
            }
        }
      
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值