Android Gradle

发布于 2024-08-15 04:09:53 字数 5434 浏览 11 评论 0

Google I/O 2013 发布了新的开发工具 Android Studio 和新的构建系统 Gradle , Android Studio 自不必说,这是 Android IDE 的未来。这篇文章就来学习下 Gradle。

什么是 Gradle?

Gradle 是以 Groovy 语言为基础,面向 Java 应用为主,基于 DSL 语法的自动化构建工具。说到 Java 的自动化构建工具,大家一定对 Ant 和 Maven 都不会陌生,对,Gradle 就是这样一种类似的工具,不过它比 Ant 和 Maven 强大的多,而且使用起来更加方便简单并且兼容 Maven。

下面列举了一些使用 Gradle 构建 Android 项目的好处:

  • 在 IDE 环境和命令行下使用同一个构建系统
  • 改进的依赖关系管理
  • 更容易地集成到自动化构建系统

安装 Gradle

如果你是用 Android Studio,第一次运行的时候需要自动安装 Gradle,这个过程很漫长,而且有可能需要翻墙才下载的了,所以很多用户以致于认为死机了,所以最好的办法是手动来安装吧。

由于自己是 mac 电脑,所以以下仅以 OSX 系统为例,Windows 系统的请自行网上搜索安装过程。

首先去 Gradle 官网下载最新版本,目前最新版本是 1.11,如下图直接下载并解压 gradle-1.11-all.zip 放到一个目录下(当然你可以选择直接下载 bin),之后建立软连接:

cd /usr/bin
ln -s /Users/storm/gradle/bin/gradle gradle
#-> /Users/storm/gradle/bin/gradle 是我放 gradle 的目录

之后在命令行下输入 gradle -v,如果显示了版本的信息则安装成功了。

gradle -v

------------------------------------------------------------
Gradle 1.11
------------------------------------------------------------

Build time:   2014-02-11 11:34:39 UTC
Build number: none
Revision:     a831fa866d46cbee94e61a09af15f9dd95987421

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Ivy:          2.2.0
JVM:          1.6.0_65 (Apple Inc. 20.65-b04-462)
OS:           Mac OS X 10.9.1 x86_64

Gradle 基本概念

如果你用 Android Studio 新建一个项目的时候,默认生成一大堆关于 gradle 的东西,其中最重要的是一个 build.gradle 的文件,内容如下:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.8.+'
    }
}
apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.0.+'
}

buildscript 节点的内容完全不用动,大概意思就是支持 maven,声明 Gradle 的版本,刚开始很纳闷 0.8 是什么意思,Gradle 的版本不是 1.11 么,我搜了好久都不知道这个数字和版本有什么关系,后来在 http://tools.android.com/tech-docs/new-build-system 上有一项 release note,才大概知道是如何对应起来的。

apply plugin 节点声明构建的项目类型,这里当然是 android 了

android 节点设置编译 android 项目的参数,接下来,我们的构建 android 项目的所有配置都在这里完成。相信上述都能看懂,就简单的字面意思。

构建一个 Gradle Android 项目

上述算是一个最基本的 Android Gradle 配置文件了,但是如果项目中引用了一些第三方的 jar 包,则需要添加些东西,比如项目依赖了一个 sunpport_v4 的 jar 包,则完整的 build.gradle 文件如下:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.8.+'
    }
}
apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
	// 单文件依赖
    compile files('libs/android-support-v4.jar")
    // 某个文件夹下面全部依赖
    compile fileTree(dir: 'libs', include: '*.jar')
}

接着在命令行 cd 到项目目录下

gradle clean

如果是第一次使用 gradle 构建,则会下载相关依赖包并且对环境进行初始化,如果出错了,一般可能是下载超时,试多几次即可,最后你会看到如下提示: BUILD SUCCESSFUL
完成以上的步骤,就可以正式使用 gralde 构建你的 android 项目了。

接着执行

gradle build

就完成了 android 项目的构建了。如果,你是照着以上步骤走的话,你将会在项目目录里面看到一个 build 的目录,里面就是用 gradle 构建 android 项目的全部东西了。最终打包的 apk 就在 build/apk 目录下了。然后,你会发现,两个 apk 一个是 [项目名]-debug-unaligned [项目名]-release-unsigned ,看名字就猜到一个是调试模式没有进行优化的 apk(可直接安装),一个是 release 模式但没有签名的 apk(不可直接安装)。

打签名包

默认输出 release apk 是没有签名的,那么我们需要签名的很简单,只需要在 android{}里面补充加上如下代码即可。

signingConfigs {
    myConfig {
        storeFile file("storm.keystore")
        storePassword "storm"
        keyAlias "storm"
        keyPassword "storm"
    }
}
    
buildTypes{
    release {
        signingConfig  signingConfigs.myConfig
        runProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    } 
}

然后,运行

gradle clean 
gradle build 

接着在 build/apk 目录下就生成了我们需要的签名的 apk。

更多

实际项目中我们的 app 可以会很复杂,比如不仅引用到一些 jar 文件,也可能会引用一些 Android Library 项目以及一些.so 文件,而且实际发布的时候我们可能不仅需要发布到一个平台上,目前 Android 大大小小可能得十几个平台,所以用 Gradle 就无法解决这些问题呢,答案是否定的,Gradle 通过一些其他的配置都可以解决,只是稍微要麻烦些,等待以后有时间有精力的时候再总结下。

顺便说下 Gradle 是 Google 大力支持的,所以和 Android Studio 类似,都是 Android 的未来,作为 Android 开发者有必要学习并跟上时代的步伐。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
22 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文