使用gradle进行构建打包操作

  1. 云栖社区>
  2. 博客列表>
  3. 正文

使用gradle进行构建打包操作

awesome@qa 2018-05-15 16:46:45 浏览4027 评论0

摘要: 由于我们部署的jenkins执行的Android构建操作就是由Gradle来实现,所以以下是我们在使用gradle在执行构建操作时,gradle的构建原理 一.Gradle的安装和配置 1.  我们要从Gradle的官网,去下载gradle,值得高兴的是,另外目前最新的gradle版本是2.

由于我们部署的jenkins执行的Android构建操作就是由Gradle来实现,所以以下是我们在使用gradle在执行构建操作时,gradle的构建原理

一.Gradle的安装和配置

1.  我们要从Gradle的官网,去下载gradle,值得高兴的是,另外目前最新的gradle版本是2.1,下载完之后解压到你指定的文件夹中(我的在D:\Software)

2. 打开环境变量(别告诉我你找不到),新建一个系统变量:变量名GRADLE_HOME,变量值D:\Software\gradle-1.12(gradle所在目录)

3. 在系统变量PATH路径中配置,目的是在DOS命令行中任何的目录下都可以访问到gradle

SouthEast

经过上面的3个步骤,我们已经配置好gradle了,打开DOS命令行(快捷键window+r -->cmd)输入:gradle,看到下图所示即安装成功

SouthEast

二.Gradle的task

task是gralde所能执行的最小单位,相当于Java中一个函数,task是需要用脚本语言groovy来写的,不多说,按照惯例先来一个Hello World。

1, 在任意目录下(我的目录:D:\Software\gradle-1.12\gradletest\hellogradle)新建文件build.gradle,将下面的代码粘贴上去.

view plain copy

  1. task hello {  
  2.     doLast {  
  3.         println ‘Hello World’  
  4.     }  
  5. }  

2. 进入此目录,输入:gradle hello
SouthEast


我们可以看到在上图中打印出了Hello World,一般在项目中,是不需要我们来写task的(是不是很兴奋?),这样又会带来一个新的问题,怎么找到Android自带的那些写好的task呢?

如果你想查看android中已经写好的task,我们只需要在build.gradle文件中定义如下代码


 view plain copy
  1. buildscript {  
  2.     repositories {  
  3.         mavenCentral()  
  4.     }  
  5.     dependencies {  
  6.         classpath ‘com.android.tools.build:gradle:0.12.2’  
  7.     }  
  8. }  
  9. apply plugin: ‘com.android.application’   

然后我们就可以在改目录下查看android提供的task了,打开命令行切到指定目录,输入:gradle tasks
SouthEast


列出各类task供我们使用,比如构建时用到的task,我们在android studio中运行项目的时候也可以看到这些task的。

三.利用Gradle编译安卓项目并打包成apk文件

1. 创建一个gradle能够识别的android项目目录结构,可以鼠标右键新建,也可以通过如下命令去创建


view plain copy
  1. mkdir src\main\java\com  
  2. echo > src\main\AndroidManifest.xml  

2. 打开AndroidMainfest.xml,将一下内容复制进去

view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com" />  

3.以上2步就完成了一个简单项目的配置,下面我们需要配置build.gradle文件

 view plain copy

  1. buildscript {  
  2.     repositories {  
  3.         mavenCentral()  
  4.     }  
  5.     dependencies {  
  6.         classpath 'com.android.tools.build:gradle:0.12.2'  
  7.     }  
  8. }  
  9. apply plugin: 'com.android.application'  
  10. android {  
  11.     compileSdkVersion 19  
  12.     buildToolsVersion "20.0.0"  
  13.   
  14.     defaultConfig {  
  15.         applicationId "com"  
  16.         minSdkVersion 16  
  17.         targetSdkVersion 19  
  18.         versionCode 1   
  19.         versionName "1.0"  
  20.     }  
  21. }  

4.在build.gradle文件所在目录输入:gradle assembleDebug 命令,就可以在build\outputs\apk目录下可以找到生成的apk文件


SouthEast

SouthEast


四.gradle wrapper的使用


gradle wrapper意为gradle包装器,用于封装gradle的下载与安装代码。要使用wrapper,只需要在项目的根目录下(也就是build.gradle所在的目录)调用gradle wrapper,就能生成以下四个文件。

view plain copy

  1. gradle\wrapper\gradle-wrapper.jar  
  2. gradle\wrapper\gradle-wrapper.properties  
  3. gradlew  
  4. gradlew.bat  

对于电脑里没有安装gradle的用户,可以直接通过执行gradlew,来调用gradle对应的task。比如安卓打包的命令可以变成gradlew assembleDebug,其实在执行gradlew命令时,gradle-wrapper.jar会自动下载安装gradle,安装目录在gradle-wrapper.properties里配置。然后使用安装后的gradle来执行指定的task。

用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击

网友评论

awesome@qa
文章79篇 | 关注39
关注
操作审计(ActionTrail)会记录您的云账户资源操作,提供操作记录查询,并可以将记录文... 查看详情
用配置管理(Application Configuration Management,简称 ... 查看详情
移动测试(Mobile Testing)是为广大企业客户和移动开发者提供真机测试服务的云平台... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云9.10会员日

阿里云9.10会员日