gradle配置

参考文章:
一步一步搞安卓开发
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配合着改。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,955评论 25 709
  • 说明 本文主要介绍和Gradle关系密切、相对不容易理解的配置,偏重概念介绍。部分内容是Android特有的(例如...
    jzj1993阅读 15,853评论 1 62
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,466评论 2 59
  • Gradle配置最佳实践 本文会不定期更新,推荐watch下项目。如果喜欢请star,如果觉得有纰漏请提交issu...
    Solang阅读 5,574评论 0 4
  • 导入数据 MongoDB导出 按住shift+右键在此处打开命令行 mongo mogoexport json格式...
    海洋之心_阅读 9,498评论 0 1