参考文章:
一步一步搞安卓开发
Java互联网架构-Gradle配置神秘面纱
一、前言
Gradle作为一个工具,可以帮助我们很容易地实现程序的配置、编译、打包等。一般说,说到程序的配置、编译、打包等,就得提到ant和maven了。
ant更多的应用于java开发项目中,使用的是xml方式来描述任务,可以很清晰地管理debug和release的不同配置文件和jar包等,比如说项目某个文件再发布的时候需要加密,但是在调试的时候则不需要,那么你告诉ant,让它来帮你完成这个区分。
maven在对jar包管理上也是使用xml的方式来描述任务的,可以非常方便地帮助我们下载jar包。
maven的任务描述不够ant灵活,定制起来非常麻烦。Gradle综合了他们的优点,它是使用Groovy语言来描述任务的。
二、简单认识
2_1_build.gradle(Project:xxxx)文件
此文件位置工程的根目录,用来描述工程编译任务的。此处主要是为了指定jar包库的位置,即是告诉gradle去哪里下载jar包之类的。
buildscript意思是设置编译脚本的运行环境。
repositories指定远程仓库,即jar包或者其他插件什么的下载位置,这里是jcenter(),当然也有其他的仓库可以指定,至于还有哪些,可以自行某度。
dependencies声明依赖包,这里面声名使用的android gradle的版本,本地没有的话gradle就会自动去下载,这里属于AndroidStudio 中的插件,这里面的依赖包存放在AndroidStudio路径下的
C:\Android\Studio\gradle\m2repository\com\android\tools\build\gradle-core\3.1.3
allprojects表示当前的工程和所属的子工程默认配置,这里指明都使用jcenter()这个仓库。
task clean(type:Delete)看字面意思也能明白,就是删掉项目根目录下的build目录,这里是删掉旧的build目录。
2_2_build.gradle(Module)文件
项目工程模块app里的编译文件,作用等同于build.gradle(Project),只不过它作用于app模块。一般来说,我们做开发的时候都会对这个文件进行配置。
apply plugin:这个按字面意思,使用的插件,肯定是Android的,默认那个就好了。
android:这里面定义一些项目模块的基本配置信息,我们构建的Android项目的所有配置都要在这里完成,比如定义编译的SDK版本,包名什么的。对于Android来说,compileSdkVersion的值就比较恶心了,它要配合着Support Library而修改,不是那么的好改,报错率极高。
compileSdkVersion: 告诉Gradle用哪个Android SDK版本来编译应用。
buildToolsVersion:Android的一些编译工具版本,如aapt,存放在ADK中的build-tools里。
applicationId:应用的包名。
minSdkVersion:应用可以运行的最低SDK版本。
TargetSdkVersion:应用运行时告诉Android系统应该使用的SDK版本,即使Android系统的版本比它还要新,没关系的,你运行出来的效果还是原来的效果,不会被新的效果取代,除非你这个值。
versionCode:应用更新使用的版本号。
versionName:应用更新使用的版本名。
testInstrumentationRunner:这个是单元测试的完意。
接着就是下面有个buildTypes:字面解释即可,编译方式可以配置在这里,比如上图就是配置编译release版时是否代码混淆,minifyEnabled就是开关,proguardFiles混淆规则。
dependencies:解释过了,与上面project不同的是,下载后的jar包存放在另一个地方,具体位置可以切换至【Project】,展开【External Libraries】选中某个库右键【Library Properties】即可查看。
compile fileTree:字面意思,libs文件夹下的.jar文件全部要加入到编译列表中。
androidTestCompile和testCompile:与单元测试有关,可理解为使用这些包的函数进行单元测试什么的。
compile:这里默认会生成一个appcompat的依赖包配置,改这个貌似也挺不好改的,要和上文说的compileSdkVersion配合着改。
网友评论