Android Studio 借助 Gradle 语法使项目更易于管理

Author Avatar
Omico Yuwen 2月 02, 2017
  • 在其它设备中阅读本文章

最近写了一个当前进程的 APP ,有方便一些高阶机油进行写轮眼校调等作用。

随着版本的衍进,修改版本号和升级 Android Support Library 变得繁复。

因此,我开始借用 Gradle 语法,让项目更易于管理。

以下开始分步骤进行教学。

git diff 的盆友,可以直接看这条 commit 快速 GET 这项技能。

https://github.com/Omico/CurrentActivity/commit/a535c03b88734bc1266dddbca5c03c5f3f017dc4

0x01

新建一个 config.gradleGradle 配置文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ext {
compileSdkVersion = 25 //你的编译 SDK 版本
buildToolsVersion = "25.0.2" //你的编译工具 SDK 版本

app = [
applicationId : "me.omico.currentactivity", //你的 APP 包名
minSdkVersion : 19, //你的 APP 最小兼容的 API 版本
targetSdkVersion: 25, //你的测试机的 API 版本
versionCode : 4, //用于版本升级所用的版本号,int 类型,可以用于判断应用是否需要升级
versionName : "1.0.3" //通俗意义上的版本号,显示给用户看
]

dependencies = [
supportLibraryVersion: "25.1.1" //Android Support Library 版本
]
}

此配置文件的作用是集中管理定义项。

0x02

接着,光定义了还是不行的,我们需要把这个配置文件引入,让 Gradle 识别。

修改你的项目根目录的 build.gradle ,加入以下代码。

1
apply from: "config.gradle"    //引入你定义的 Gradle 配置文件

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Top-level build file where you can add configuration options common to all sub-projects/modules.

apply from: "config.gradle" //引入你定义的 Gradle 配置文件

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

// 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
}

0x03

以上你已经定义并引入你的定义到工程里了。

接下来,我们来修改你的工程 app 目录下的 build.gradle ,让 config.gradle 生效。

这里直接通过修改前后的对比,这样能更为直接的说明问题。

修改前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "me.omico.currentactivity"
minSdkVersion 19
targetSdkVersion 25
versionCode 4
versionName "1.0.3"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

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

修改后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
apply plugin: 'com.android.application'

android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId rootProject.ext.app.applicationId
minSdkVersion rootProject.ext.app.minSdkVersion
targetSdkVersion rootProject.ext.app.targetSdkVersion
versionCode rootProject.ext.app.versionCode
versionName rootProject.ext.app.versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "com.android.support:appcompat-v7:$rootProject.ext.dependencies.supportLibraryVersion"
compile "com.android.support:design:$rootProject.ext.dependencies.supportLibraryVersion"
}

结束语

以上你已经完成了定义你一定看到了 Android Studio 提示需要重新同步的字样了吧。

点击 Sync Now 后运行你的 APP 验证无误后,那么恭喜你又 GET 一项技能。

下次再需要修改这些定义项的时候你只需要修改 config.gradle 就可以了。

其实 Gradle 的强大不止于此,这里只是简单说说其中的一小点。

This blog is under a CC BY-NC-SA 3.0 CN License
本文链接:https://blog.omico.me/android-studio-make-the-project-easier-to-manager-with-gradle-syntax/