Android Gradle 学习 一

Android Gradle 学习 一

Gradle 介绍

Gradle 支持很多语言,其中支持Android,在开发Android过程中,我们可以使用Gradle构建我们的程序,包括构建类型,风格,签名配置等
个性化可以自定义的一些功能。

默认(Project)视图中的项目布局如图

可以看见有多个Gradle文件,其中,在外部app外面一层的build.gradle文件是整个项目的gradle文件,app里面的属于app这个项目的gradle配置,相当于子类和父类的关系,比如一些公共的属性可以定义在外层的Gradle文件也可以定义在app路径下的gradle都是可以的。只是在外层定义如果有多个子项目,子项目同样可以引用gradle定义的资源属性。

Project build.gradle配置如下

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.3.2'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

buildscript顶级构建文件中的块告诉Gradle在哪里下载该插件。

默认情况下,该插件是从jcenterBintray JCenter Artifactory存储库中下载的。支持其他存储库(特别mavenCentral()是默认的Maven存储库),但JCenter现在是默认的。来自JCenter的所有内容都通过具有安全HTTPS连接的CDN提供。它也往往更快。

该 allprojects 表示顶级项目和任何子项目都默认使用jcenter()存储库来解析任何Java库依赖关系。

setting.gradle

include ':app'

表示引用app这个模块,如果你还有其他model被引用,这里也会显示其他model的名称。

app.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23 //运行的sdk大小
    buildToolsVersion "23.0.3" //构建工具版本

    defaultConfig {
        applicationId "com.kousenit.myandroidapp" //包名
        minSdkVersion 19 //最小sdk
        targetSdkVersion 23 //目标sdk
        versionCode 1 //版本号
        versionName "1.0" //版本名称
    }
    buildTypes { //构建类型
        release { //release版本   默认debu版本 这里没有写出
            minifyEnabled false //是否开启混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
}

apply plugin

这里引入的是 com.android.application 表示将android插件添加到构建系统中,从而实现android DSL, 如果这是一个model或者一个libary 引入的就会是一个

apply plugin: 'com.android.library'

一个程序中可以引入多个library 但是只有一个application。

dependencies

这里的dependencies块由三行组成,第一行表示 fileTree中 libs目录中包含.jar的文件,引入到编译类路径中;第二行告诉Gradle下载Junit 4.12版本,并且只参加测试编译,正式签名环境不会参与编译;第三行表示告诉gradle 下载com.android.support:appcompat-v7这个包,并且是23.3.0版本,然后编译。如果有其他需要下载的也可以通过此方式引入。

其他属性上面已经注释给出了。

注意:您必须指定使用的编译目标compileSdkVersion和通过构建工具版本buildToolsVersion。这两个值都应该分配给最新的可用版本,因为它们是向后兼容的,并包括所有当前的错误修复。 (尽量保持最新的)

gradle命令行构建程序

可以使用gradle build 或者 gradlew build 那么gradle和gradlew有什么区别呢,
//gradlew:您不需要安装Gradle才能构建Android项目。Android Studio附带了一个Gradle发行版(以插件的形式),并且包含专门的功能来支持它。该 术语“Gradle wrapper”是指Android应用程序的根目录中的gradlew.bat脚本和脚本,其中结尾的“w”表示“包装器”。Gradle包装器的目的是允许客户端运行Gradle,而不必先安装它

#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip

该 distributionUrl 属性表示包装器将下载并安装Gradle版本2.10。1第一次运行后,Gradle分发将缓存在zipStorePath目录下的文件夹中zipStoreBase,然后可用于随后执行Gradle任务。

该 初始下载可能需要几分钟,具体取决于您的Internet连接速度。然而,它只需要完成一次。之后,随后的版本将使用缓存的版本。

Gradlew 是包装器,自动下载包装里定义好的gradle 版本,保证编译环境统一,gradle 是用本地的gradle(可以自己下载gradle配置 通过本地配置的方式构建)

使用Gradle执行任务

例如 gradle clean build ,在需要执行的任务名称前面加上gradle即可,想要找到需要执行的task可以通过查看android studio右侧gradle工具栏查看

也可以通过双击的方式运行。

gradle依赖关系

gradle支持几种不同的列出依赖方式。最常见的是使用冒号分隔的组,名称和版本值的引号。
例如:
compile ‘com.android.support:appcompat-v7:23.3.0’

组是 ‘com.android.support’ 名称是: appcompat-v7 版本号是:23.3.0;

注意

gradle 文件使用Groovy,它支持单引号和双引号字符串。双引号允许插值或可变替换,但是否则相同。见附录A的细节。

依赖关系与配置相关联。Android的项目包括compile, runtime,testCompile,和testRuntime配置。插件可以添加其他配置,您还可以定义自己的配置

依赖关系的完整语法

`testCompile group: 'junit', name: 'junit', version: '4.12'`

快捷语法

`testCompile 'junit:junit:4.12'`

用合适的方式指定具有加号的版本号

`testCompile 'junit:junit:4.+'`

不推荐用这样的方式,这样的方式,这告诉Gradle,编译项目的测试需要大于或等于4.0的任何版本的JUnit。虽然这样做,它使得构建更少的确定性,因此较不可重现。显式版本号也可以防止特定API的更新版本中的更改

gradle 项目同步

当你添加一个依赖项以后需要同步项目 这时应该怎么做呢,可以通过提示来重新构建 例如右上角sync now

在这种情况下,retrofit依赖关系也会将库okhttp和okio库添加为传递依赖关系,如图1-12所示。

如果您错过了单击该Sync Now链接的机会,Android Studio将为工具栏提供一个特殊图标,用于相同的目的以及一个菜单项。

传递依赖

有的引入的包可能包含其他的包,也可能需要其他包的支持,这个时候可以自行查找对应文档看是否需要添加其他包,也可以查看该包下面是否已经存在了你想要添加的包,

例如:

可以发现com.android.support:appcompat-v7包下面包含了com.android.support:support-v4 因此我们也不必在单独的引入v4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Android Gradle权威指南》是一本介绍如何使用Gradle构建Android应用程序的权威指南。本书详细介绍了Gradle的基本概念、构建脚本的编写、依赖管理、多模块构建、构建变体、构建优化等方面的内容。对于想要深入了解Gradle构建Android应用程序的开发者来说,这本书是一本非常好的参考书籍。 ### 回答2: 《Android Gradle权威指南》是一本详细介绍了Android Gradle构建系统的权威指南。Gradle是一种基于Groovy语言的构建自动化工具,而Android Gradle是针对Android应用开发的定制版本。 该指南从基础概念、Gradle的安装和配置开始介绍,随后介绍了Gradle构建脚本的语法和结构。读者将学会如何编写Gradle脚本以管理项目依赖、构建和打包Android应用。 此外,《Android Gradle权威指南》还深入介绍了Gradle的高级功能,如多模块项目管理、变体构建、构建缓存、增量构建等。读者将可以通过使用这些高级功能提高构建效率和减少构建时间。 该指南还对Android Gradle插件的特性进行了解释和演示。它详细介绍了如何使用插件进行代码混淆、资源压缩、构建变体等。此外,读者还能学到如何定制构建过程,处理不同环境和变体。 总的来说,《Android Gradle权威指南》是一本全面而深入的Gradle学习指南,适合已有Gradle基础的Android开发者。通过阅读本书,读者将能够更好地理解和使用Gradle构建系统,以及优化和自定义Android应用的构建过程。 ### 回答3: 《Android Gradle权威指南》是一本介绍如何使用Gradle构建Android应用程序的权威性参考书。Gradle是一种功能强大的构建工具,广泛应用于Android开发中,它以脚本方式定义构建过程,提供了高度灵活性和可扩展性。 这本书首先介绍了Gradle的基本概念和特点,包括项目结构、任务和依赖管理。然后,它深入解析了在Android开发中使用Gradle的各个方面。书中包含了大量实用的示例代码和详细的操作步骤,帮助读者更好地理解和掌握Gradle的使用。 《Android Gradle权威指南》的内容覆盖了Android项目的各个方面,包括构建类型、变体、签名、多模块项目、任务定制等。此外,它还介绍了如何使用Gradle进行自动化测试、发布和持续集成,以及如何优化构建速度和性能。 这本书的优点在于它权威而全面地介绍了Android开发中Gradle的使用,从基础知识到高级技巧都有涉及。同时,作者对相关概念和原理进行了深入讲解,使读者能够更好地理解Gradle的内部工作原理。 总之,对于想要更好地掌握GradleAndroid开发中的应用的开发者来说,《Android Gradle权威指南》是一本非常有价值的参考书。无论是初学者还是有一定经验的开发者,都能从中获得实用的技巧和知识,提升在Android开发中的效率和质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值