目录

  • 目录
  • 前言
  • Gradle简介
  • Gradle安装
  • Gradle构建项目
    • XYALLappbuildgradle模块gradle配置文件
    • XYALLbuildgradle整个项目的gradle配置文件
    • XYALLgradlewrappergradle-wrapperpropertiesgradle版本统一管理文件
    • settingsgradle项目模块引用配置文件
    • 编译

前言

由于生产力很大一部分取决于生产工具的使用,为了紧跟时代的潮流,我也从Eclipse切换到Android Studio来进行Android开发。

使用Android Studio的时候,最先遇到的难点应该就是Gradle的安装、配置和使用。这篇文章就针对我遇到的坑讲解一下如何在Android Stduio中配置Gradle。

Gradle简介

Gradle与Ant、Maven类似,是一种项目构建工具,之前使用的Eclipse是使用Ant来实现项目构建的。

Gradle基于Groovy语言,面向Android应用为主,它抛弃了基于XML的各种繁琐的配置,取而代之的是一种基于Grovvy的内部领域特定语言(DSL)。

Gradle安装

在Android Studio中第一次创建项目的时候,会自动下载Gradle。但是,由于国内互联网大环境影响,所以一般不使用代码的话,下载都会失败。所以这里介绍一种如何让Android Stuido使用已经下载好的gradle版本的方法。

首先,File->Settings->搜索gradle,将gradle的默认下载目录指定为:~/.gradle。同时,不要着急立刻将从网上下载的最新的gradle版本放到这个目录下,因为Android Studio对目录结构是有要求的。

Ubuntu下,Gradle默认的目录结构如下:

可以看到,其中有串很诡异的无规律的字符串,这个是Android Studio自动生成的,你从网上下载的zip包必须要放到这个目录下才行。所以我推荐的做法是:

  1. 让Android Studio先自行下载一会Gradle,这样可以确定Gradle的安装目录和Gradle的版本。
  2. 从Gradle的官网上下载指定的版本(不一定是最新的,我安装的Android Studio需要的是gradle-2.4版本),然后将下载的zip包扔到那个无规律字符串目录下。记住:不需要解压,android studio自己会去解包
  3. 在你自己的.bashrc文件里,配置一下GRADLE_PATH,如下:
# add gradle pathexport GRADLE_PATH=/home/wzy/.gradle/wrapper/dists/gradle-2.4-all/6r4uqcc6ovnq6ac6s0txzcpc0/gradle-2.4export GRADLE_USER_HOME=/home/wzy/.gradleexport PATH=$GRADLE_PATH/bin:$PATH

××××

Gradle构建项目

使用Gradle来构建项目的时候,需要对Gradle的配置文件有个大概的了解,以我的一个测试应用项目为例,Gradle的配置文件主要有:

  1. 每个模块的gradle配置文件。
  2. 整个项目的gradle配置文件。
  3. 统一管理gradle的gradle-wrapper配置文件。
  4. 整个项目的模块引用配置文件。

如下图所示:

接下来,我根据上述标记的红色部分进行逐一讲解。

XYALL/app/build.gradle(模块gradle配置文件)

我们首先来看一下这个配置文件的内容:

// 声明是android程序apply plugin: 'com.android.application'android {    // 编译SDK的版本    compileSdkVersion 23    // build tools的版本    buildToolsVersion "23.0.1"    defaultConfig {        // 应用包名        applicationId "com.example.wzy.xyall"        // 支持最低设备sdk的版本        minSdkVersion 19        // 支持目标设备sdk的版本        targetSdkVersion 23        // 应用版本号        versionCode 1        // 应用版本名称        versionName "1.0"    }    buildTypes {        release {            // 是否进行混淆            minifyEnabled false            // 混淆文件的位置            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    // 移除lint检查的error,防止编译终止    lintOptions {        abortOnError false    }}dependencies {    // 编译libs目录下所有的jar包    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:23.0.1'}

有几点需要说明:

  1. 文件开头apply plugin,如果是编译apk,值为’com.android.application’,如果编译的是库,则需要改为’com.android.library’。
  2. buildToolsVersion必须是你本地安装的版本,可以通过SDK MANAGER来进行查看。这个值配置不对,会造成编译错误。

XYALL/build.gradle(整个项目的gradle配置文件)

文件内容如下:

buildscript {    repositories {        // gradle插件下载中心为jcenter        jcenter()    }    // gralde插件的具体版本。    dependencies {        classpath 'com.android.tools.build:gradle:1.3.0'    }}// 项目中使用到的库、jar包的下载中心allprojects {    repositories {        jcenter()    }}

XYALL/gradle/wrapper/gradle-wrapper.properties(gradle版本统一管理文件)

文件内容如下:

#Mon Sep 21 12:15:49 CST 2015distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip

gradle-wrapper的作用就是使用统一的方式来管理gradle,保证gradle使用的是统一的版本。说明几点:

  1. android studio首先从distributionBase/distributionPath查找gradle。
  2. 然后,从zipStoreBase/zipStorePath查找gradle。
  3. 如果上述都没有找到合适的gradle,则从distributionUrl指定的url去下载gradle。

注意:这里需要在.bashrc中增加GRADLE_USER_HOME的变量定义。

settings.gradle(项目模块引用配置文件)

这个是全局的项目配置文件,里面主要声明一些需要加入gradle的模块。

include ':app'

示例项目的配置表示只要app模块的build.gradle加入到编译中。

编译

上述配置完成后,就可以使用gradle编译项目了。常用的构建命令如下:

  1. gradle clean: 清除之前的构建。
  2. gradle test:执行测试。
  3. gradle compileJava:编译java。
  4. gradle check:代码检查。
  5. gradle build:构建打包。

最后再提示一下,构建打包完成后,编译出来的apk位于:$项目/app/build/outputs/apk/目录下。

更多相关文章

  1. Androrat 编译运行错误集
  2. Android(安卓)网络框架Volley JAR包生成
  3. NDK HOWTO
  4. 【Android】问题记录2019/3/18:上传APP到Google Play因为权限问题
  5. 创建一个android项目与创建一个android虚拟设备
  6. [置顶] 解决Android(安卓)SDK和Android(安卓)Studio不能更新的问
  7. Gradle命令为Unity导出Jar备忘
  8. Android(安卓)studio导入eclipse项目找不到R文件
  9. Unity 打包错误:CommandInvokationFailure: Failed to build apk

随机推荐

  1. unbuntu 下android(MT6573) 编译环境设置
  2. android 设置线程优先级 两种方式
  3. Android课程设计,生活记事本
  4. android将图片转成字符串,再将字符串转成
  5. Android模仿engadget菜单
  6. Android 相关网址
  7. 从J2EE转向Android的第二天
  8. android5.1 按下power键 系统不休眠
  9. Android studio移动项目到另外一个文件夹
  10. android典型代码系列(二)------sqlite数