Gradle详情以及代码讲解

  安卓开发的都会知道Gradle是什么?但是只是知道它是做什么的。对于初学者更不会去管内部代码的意思。

想当初,自己也是那样,不知道Gradle里面的代码意义何在,在网上看大神的博客,也只能吸收三分之一,做过几个项目之后,不得不对Gradle进行解读了;

   

1.什么是Gradle?
Gradle是一种依赖管理工具,基于Groovy语言,面向java应用为主,它抛弃了基于xml的各种繁琐配置,取而代之的是一种基于Groovy的领域特定(DSL)语言,as中新建项目成功后自动下载Gradle

 

2.编译过程分为三个阶段:
(1)初始化阶段:创建新的project对象,如果有多个build.gradle也会创建多个project
(2) 配置阶段:在这个阶段,会执行所有的编译脚本,同时还会创建project的所有的task,为最后一个阶段做准备
(3)执行阶段:在这个阶段,gradle会根据传入的参数决定如何执行这些task,真正action的执行代码就在这里;

3.Gradle文件中代码具体含义:

下面根据我之前开发的一个项目中的Gradle文件进行讲解:(这个文件我有删除的地方,不能透漏给大家,不过知识点还是很全面的)

红色字体是代码,黑色字体是对代码的讲解(如果有不对的地方还是希望大神们多多提点)

代码如下:

//Library工程必须加载此插件。注意,加载了Android插件就不要加载Java插件了。因为Android
//插件本身就是拓展了Java插件
apply plugin: 'com.android.application'

android {
/*
*compileSdkVersion告诉gradle使用哪个版本Android SDK编译你的应用,
* 使用任何新添加的API就要使用对应level的Android SDK.
* 他们三者的关系
minSdkVersion <= targetSdkVersion <= compileSdkVersion
理想情况下应该是
minSdkVersion (lowest possible) <=targetSdkVersion == compileSdkVersion (latest SDK)
理想情况下:用较低的 minSdkVersion 来覆盖最大的人群,用最新的 SDK 设置 target 和 compile 来获得最好的外观和行为。
* */
compileSdkVersion 24 //是你sdk版本号,也就是你API的leavel 例如:API-19、API-20、API-21等等。
buildToolsVersion "24.0.1" //是你构建工具的版本 其中包括你的打包工具aapt,dx等
//默认配置
defaultConfig {
applicationId "你的包名"
/*
*minSdkVersion限制安装application所需要的系统最低版本,
* 低于该版本的系统都不可以安装该application。
* 同时不能使用该level版本SDK所不具备的API
* */
minSdkVersion 14
/*
*targetSdkVersion是Android提供向前兼容的主要依据
* ,表明该application已经兼容从minSdkVersion至tartgetSdkVersion之间所有api的变化。
* 在targetSdkVersion更新之前系统不会应用最新的行为变化。
* */
targetSdkVersion 23
versionCode 3
versionName "1.0.6"
renderscriptSupportModeEnabled true //系统自带图片的模糊效果
/*
* Android基于JAVA语言,JAVA语言在编译之后都会生成字节码文件.class,
* 在Android中,这些文件都被存储在一个.dex文件中。由于DEX文件的格式限制,
* 其中的Method、Field、Class的个数都不能超过short类型的最大值65535,
* 如果超过了这个值,就会报错误。

为了解决这个问题,Google - Android在API 21的时候为广大程序员提供了一个通用的解决方案,
就是今天要说的MultiDex方案。这个方案让Android系统可以在原始的DEX文件存满之后自动生成一个新的DEX文件,
从而解决这个DEX溢满的问题。
* */
multiDexEnabled = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
/*设置想兼容所有cpu的abi*/
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a','x86','x86_64'
}
/*
*manifestPlaceholders 可以替换androidmanifest文件中的标签,
* 可作为快速渠道打包替换渠道名的一种方式,
* 也可以自定义标签用来替换需要的文本,多作为不同环境不同key的修改。
* */
manifestPlaceholders = [
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY : "您的JPUSH_APPKEY ",
JPUSH_CHANNEL: "developer-default",
]
}
//签名信息配置
signingConfigs {
config {
keyAlias 'bluemodemo.keystore'
keyPassword 'bluemodemo'
storeFile file('D:签名文件目录')
storePassword 'bluemodemo'
}
}
//打包apk重命名
buildTypes {
release { //发布版本的签名设置
minifyEnabled false //是否启用Proguard 就是对代码进行混淆和压缩
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
debug { //调试版本的签名设置
signingConfig signingConfigs.config
}
}
}
//buildscript中的声明是gradle脚本自身需要使用的资源。
// 可以声明的资源包括依赖项、第三方插件、maven仓库地址等。
// 而在build.gradle文件中直接声明的依赖项、仓库地址等信息是项目自身需要的资源。
buildscript { //这个属于在buildscript中的声明
repositories {
mavenCentral()
}
//利用Gradle配置ndk环境
dependencies {
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.0'
}
}
//依赖配置
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs') //libs下的所有jar包引入
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
//
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:24.2.1'
compile project(':lib_litepal')/ /项目的引入

}


针对Gradle的总结,我总结了这么多,希望对大家有所帮助,Gradle文件是安卓开发的核心,初学者一定要仔细专研

Android Gradle权威指南》作为一本关于Android Gradle构建系统的实用性指南,是一本很好的学习手册。这本书完整地详细讲解Android Gradle构建工具,从Gradle构建系统的基本逻辑到高级定制构建过程。 书中共分为5个部分:Gradle 介绍、构建基础、插件扩展、Gradle实战和Gradle高级定制。 在第一部分,作者对Gradle进行了全面的介绍,解释了它的背景、优势以及与其他构建系统的差异。此外,还介绍了GradleAndroid中的应用。 在第二部分中,作者详细介绍了构建基础,包括Gradle构建模型、构建生命周期和Gradle任务等方面。此外,还介绍了如何使用Gradle进行构建和调试。 在第三部分,作者详细介绍了如何使用插件扩展Gradle,包括如何创建自定义插件,如何在Android中使用Gradle插件等。 在第四部分,作者以实战为导向,通过实际的例子向读者展示如何使用Gradle构建Android应用程序,包括如何自动化构建、如何进行多渠道发布等。 最后,在第五部分,作者介绍了如何进行Gradle高级定制,包括如何自定义任务、如何自定义插件以及如何使用Gradle API等。 总之,对于那些想要学习如何使用Gradle构建Android应用程序的开发人员来说,《Android Gradle权威指南》是一本很好的学习手册。此外,书中详细的实战篇章和高级定制,也可以为读者提供更加深入的学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值