Android(安卓)Studio中必须懂的Gradle(一)--参考Gradle的在线文档
关于Android Studio中使用基本Gradle请参考:http://ask.android-studio.org/?/article/66 这里面有视频讲解android studio中的项目结构和gradle在其中的作用。
我在这里主要讲解一下gradle的一些常用语法。
Gradle Build Language Reference
其实学习这些常用的语法,也就是如何看懂上面的官方参考文档。
打开上面的网页,我们看到了Gradle的语言介绍。
由上图可以看到,gradle的语法中主要的分类:构建的脚本Project
初始话的脚本Gradle 设置的脚本Settings. 那么我们点击进入Settings里面。
这个Settings里面出现一个突然让你敏感的词语–Multi-Project Build。 这个Multi-Project Build主要涉及了我们android studio中的settings.gradle的设置。我们在android studio为了同时可以构建多个模块的project,我们就必须在settings.gradle中的include标签中加入多个模块的projectname.如下:
所以这里的Settings文档应该是说明我们可以怎么去设置project属性和build属性的。
继续往下拉,你会发现,这个Settings中还定义了其他的属性和方法。
我们上面用的include标签其实是一个方法。
include(projectPaths)
这个方法中需要传入一个projcetPaths,那么projectPaths参数又是什么类型呢?一个String还是一个List还是其他object呢?
那么就再点击进去include里面去。
点进去之后,我们看到了这个方法用法说明。而且上面提及到的projectPaths参数其实是用String[]类型。但注意红框中的冒号分离标示的说明,每个模块名称名称前面需要有:作为分割符。
从上面一连串的参考之后,你就会明白,为何settings.gradle可以写上这个方面了。前面也说明了,这个settings.gradle中还定义其他的方法和属性,因此我们根据上面的参考方法,自己可以试验一下。
我们可以打印一下这个apppath。
根据上面的方法,我在lib中build.gradle中加入一个type。
//所有的type相关参考https://docs.gradle.org/current/dsl/ //-------------------------复制-------------------- //参考https://docs.gradle.org/current/javadoc/org/gradle/api/file/CopySpec.htmldef myCopySpec = project.copySpec {//定义过滤规则 //除去。。。不复制 exclude('**/*.txt') from('src/main/java'){ //from 是一个闭包 "定义在一个函数内部的函数"。 include '**/*.java' }} //使用外部属性定义def copypath = 'build/outputs/mycopy'task mycopy(type:Copy ){ println("task mycopy---park") //复制到00.... delete(copypath) into(copypath) //CopySpec with(CopySpec... sourceSpecs) //Adds the given specs as a child of this spec. includeEmptyDirs = true //是否包含空的文件夹 with myCopySpec}
在你们工程文件夹build/outputs/中可以看到我们复制到outputs中的文件夹新建了一个mycopy.
更多相关文章
- 深入分析Android(安卓)(build/core/*.mk脚本)
- [安卓基础] Android自定义shape
- Qt on Android(安卓)Episode 5(翻译)
- @SuppressLint("NewApi")作用
- Android中AVD(Android(安卓)Virtual Device)不能启动的处理方法
- 【Android】ORM框架greenDao 3
- Google 地图 API for Android
- Android(安卓)Studio自定义模板 写页面竟然可以如此轻松
- Mac和Windows上Android(安卓)Studio常用的快捷键