gradle,以前就想系统看一看,因为我们用的maven比较多,gradle很少,几乎不用,
gradle是基于groovy语言编写的,只需要配置就可以自动管理依赖.
?
去看看androidstudio的工程目录
app是,手机app的模块,是主要模块.
build是临时文件
gradle是自动装的gradle的编译环境.
build.gradle 项目根目录,里面的设置会对,所有的模块起作用,脚本的依赖库,插件的依赖库都在这里.
settings.gradle 当前项目里有哪些模块,会写到这里.
?
可以打开settings.gradle可以看到里面,包含了模块,因为现在我们只有
app这个模块所以他只有一个,这里还需要注意 :app :号是文件目录的意思,这里有一个冒号,说明是在根目录.
?
有子目录的情况我们演示一下,比如我这里新建一个模块
?
选择android library,然后点击下一步
?
填写名字,下一步
?
选择blank activity 下一步
?
然后输入名字下一步
?
可以看到mylibrary创建好了,然后我们再去创建个
directory
?
输入文件夹名
?
创建好了library这个文件夹,我们可以把这个,app模块需要引用的,
mylibrary这个模块,拖入到library这个文件夹中去
?
然后我们在这个settings.gradle中,把mylibrary引入进来.
可以看到引入的时候,这里因为有子文件夹,就是:library:mylibrary 这样写的.
?
然后点击上面图标编译一下,可以看到没问题
?
然后再去看这个build.gradle,可以看到
repositories这个部分是,引入的依赖,可以看到
下面有个
allprojects,都引入jcenter了,这里说明,这个jcenter对引入的所有的依赖都支持
然后classpath这里,gradle:1.2.3 这里是引入的一个gradle的版本
?
然后我们展开,再看看这里,依然怒的一些jcenter库的地址,
JCenter是Goovy Grape内的默认仓库,Gradle内建支持jcenter()仓库
?
然后再去看一些文件是什么文件:
aidl文件
AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于定义服务器和客户端通信接口的一种描述语言
jni是c语言文件
so文件是放在jnlibs文件
然后这里的build.gradle是,当前模块的gradle文件
?
可以看到在最外层有个build.gradle文件,在每个模块的下面比如app下面也有个
build.gradle,这个是针对app模块有效的,而最外层是针对所有的模块有效的.
?
然后这里要注意,这里的app模块中的buildToolsVersion这个版本,要对应
我们可以打开apk sdk manager,要对应这里的版本,不能乱写,找不到报错
?
然后下面这里是引入的一些依赖,以后我们会在这里引入依赖
?
然后左侧,可以看到outputs是对于app程序来说,这里是编译出的apk文件
?
对于这里的mylibrary模块来说,编译出来的是个.aar文件.
?