Android学习系列教程(4)- Gradle构建项目

如果用过Eclipse写过Java项目的同学一定还记得,当一个项目需要依赖第三方库的时侯,我们需要先去下载.jar文件,然后再Build Path,或者直接打开Build Path设置,再Add Jar文件进去,这两种操作都绕不开的就是都需要把第三方依赖库.Jar文件”引入”到项目中,我们程序中才能Load到 .Jar文件中的 .Class类文件。

而在Android Studio中这一切都是通过Gradle去完成的。

Gradle是什么

Gradle是一个项目自动化构建工具。它可以帮你管理项目中的第三方包依赖关系,项目编译,项目打包,项目部署等,也通过编辑build.gradle来定义自己需要的构建逻辑。

我们回到上一篇文章中的第4小点Gradle Scripts文件夹。与gradle有关的有4个文件:

将项目结构切换成Project模式能更直观的看到这4个文件在项目中的路径

我们先来看第①个文件build.gradle,这个文件的作用是对工程整体gradle的配置,比如配置gradle的版本为4.0.1、配置依赖库的仓库URL为mave 'https://maven.aliyun.com/repository/public/'仓库 、'https://maven.aliyun.com/repository/google'仓库、google仓库、jcenter仓库:

buildscript {
	repositories {
		maven { url 'https://maven.aliyun.com/repository/public/' }
		maven { url 'https://maven.aliyun.com/repository/google' }
		google()
		jcenter()
		
	}
	dependencies {
		classpath 'com.android.tools.build:gradle:4.0.1'
	}
}

allprojects {
	repositories {
		maven { url 'https://maven.aliyun.com/repository/public/' }
		maven { url 'https://maven.aliyun.com/repository/google' }
		google()
		jcenter()
	}
}

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

接着看第②个文件工程目录下的gradle.properties:

org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.enableJetifier=true

分别表示CPU分配1536m的内存给gradle的JVM、项目使用AndroidX依赖库而非Support依赖库、Android插件会通过重写其二进制文件来自动迁移现有的第三方库,以使用AndroidX依赖项

第③个文件gradle文件夹下的gradle-wrapper.properties:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

这个比较好理解了,就是设置gradle的版本为6.1.1-all

第④个文件app文件夹下的build.gradle:

apply plugin: 'com.android.application'

android {
	compileSdkVersion 28
	defaultConfig {
		applicationId "com.example.myapplication"
		minSdkVersion 16
		targetSdkVersion 28
		versionCode 1
		versionName "1.0"
	}
	buildTypes {
		release {
			minifyEnabled false
			proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
		}
	}
}

dependencies {
	implementation fileTree(dir: 'libs', include: ['*.jar'])
	implementation 'androidx.appcompat:appcompat:1.1.0'
	implementation 'androidx.recyclerview:recyclerview:1.1.0'
}

这个文件是我们平常开发中最经常会修改的gradle文件。下面采用注释的方式来一行一行的解释每行的意思:

// com.android.application 表示这是一个应用程序模块,可直接运行
	apply plugin: 'com.android.application'

	android {
	// 使用android sdk API28,也就是Android 9.0来编译你的项目
		compileSdkVersion 28
		defaultConfig {
		//  应用程序的包名
			applicationId "com.example.myapplication"
		// 你的项目只能运行在API 16以上,也就是Android 4.1以上
			minSdkVersion 16
		// 目标版本API 28,即你的项目已在Android 9.0上做过充分测试,并且兼容Android 9.0以下版本
			targetSdkVersion 28
		// 项目版本号
			versionCode 1	
		// 项目版本名
			versionName "1.0"
		}
		buildTypes {
			release {
			// 项目打包为release版本时不开启代码混淆
				minifyEnabled false
			// 代码混淆规则文件
				proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
			}
		}
	}

	// 第三方依赖库及版本
	dependencies {
		implementation fileTree(dir: 'libs', include: ['*.jar'])
		implementation 'androidx.appcompat:appcompat:1.1.0'
		implementation 'androidx.recyclerview:recyclerview:1.1.0'
	}

Gradle有什么用

从上面4个文件可以看出,我们可以自由配置Gradle版本号、Gradle仓库地址、Gradle Build版本号,可以配置项目打包的一些配置如applicationId项目包名、targetSdkVersion 版本号、是否开启代码混淆、混淆文件路径、第三方依赖库及版本等。

相比Eclipse来说Android Studio的Gradle构建工具真是香啊。

------转载请注明出处,感谢您对原创作者的支持------

有偿提供技术支持、Bug修复、项目外包、毕业设计、大小作业

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值