Android ant在引入Android Studio之前,android应用程序使用ant (在Eclipse和思想中)构建,
我已经有了使用ant构建的现有android应用程序,接下来我将演示如何将应用程序迁移到Gradle中,
我已经为基于ant的项目使用IntelliJ IDEA,并将Android Studio与Gradle android项目一起使用,
现有构思项目下面是我的退出项目(使用ant构建)
项目名称是SenZors,它包含src,res,lib,assert等,
基于Gradle的项目结构基于Gradle的项目如下所示└── project/
└── module/
└── build.gradle/
└── build.gradle
└── settings.gradle主项目包含build.gradle和settings.gradle文件,
每个模块包含单独的build.gradle文件,
项目与模块项目是完整的Android应用。 项目可以由一个或多个模块组成。
模块是可以独立生成。测试或调试的项目的组件,
有三种类型的模块Java库模块
Android库模块
Android应用程序模块在上面的项目结构module是一个应用程序模块,
许多Android应用程序只包含一个应用程序模块。 构建系统为应用程序模块生成一个APK包,
settings.gradle文件这个文件告诉gradle要构建哪些模块,例如,SenZors,include ':senz'这指定在构建SenZors项目时包含senz模块,
顶层build.gradle文件它是顶级gradle构建文件,它可以用来定义所有子模块通用的配置选项,
我将在以后给出有关此build.gradle文件内容的详细信息,
模块文件的build.gradle每个模块包含单独的build.gradle文件,因此模块可以独立构建,
它可以定义android特定的设置,依赖设置。
我将在以后讨论有关此文件内容的更多详细信息,
Gradle应用程序模块结构我的主应用程序模块名是senz,└── senz/
└── build/
└── libs/
└── src/
└── main/
└── java/
└── res/
└── asserts/
└── build.gradle将现有ant项目迁移到gradle时,我们需要根据gradle项目结构移动ant项目内容,
将SenZors迁移到gradle主要项目是SenZors,我使用senz作为主要应用模块,
定义项目结构下面是创建项目结构的步骤1. Create new application module directory `senz` in `SenZors`
mkdir -p SenZors/senz/src/main/java
2. Move source codes to senz
mv SenZors/src/com SenZors/senz/src/main/java
3. Move res and asserts
mv SenZors/res SenZors/senz/src/main
mv SenZors/asserts SenZors/senz/src/main
4. Move libs
mv SenZors/libs SenZors/senz/
5. Move AndroidManifest
mv SenZors/AndroidManifest.xml SenZors/senz/src/main
6. Create gradle build files
touch SenZors/build.gradle
touch SenZors/settings.gradle
touch SenZors/senz/build.gradle
定义settings.gradle定义要在settings.gradle文件(我们只有一个应用程序模块senz )中生成的模块,include ':senz'
顶层build.gradlebuildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
# Gradle wrapper task
task wrapper(type: Wrapper) {
gradleVersion = '1.12'
}这里有两个主要部分
buildscript设置在这里 buildscript {. .. } 配置驱动生成的代码
它声明它使用Maven中央存储库,并且在Maven工件上存在类路径依赖项,
这个工件是包含Gradle插件的库在版本0.9.+中包含了,
Gradle包装任务Gradle包装器是启动Gradle构建的首选方式,
Gradle包含用于Windows支持的批脚本和shell script支持os x和Linux,
这些脚本允许你在不需要在系统(这对于实现与jenkins的集成非常有帮助)上安装Gradle的情况下运行Gradle构建,
在上面的gradle中,我们定义了gradle包装器,带有gradle版本1.12 (gradleVersion是你希望项目使用的版本),
现在执行以下命令gradle wrapper此命令将在项目的root中生成更多的文件,└── SenZors
└── gradlew
└── gradlew.bat
└── gradle
└── wrapper
└── gradle-wrapper.jar
└── gradle-wrapper.properties
. ..
└── build.gradle
└── settings.gradle第一次运行指定版本的Gradle包装器时,它会下载,并且缓存该版本的Gradle二进制文件,
这些Gradle包装器文件被设计为提交到源代码管理。
然后,谁可以在不需要首先安装和配置特定版本的Gradle的情况下构建项目,
现在你可以使用./gradlew build来构建项目,
senz模块build.gradle文件apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion" 19.1.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName" 1.0"
}
buildTypes {
release {
runProguard false
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
debuggable true
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.android.support:support-v4:19.1.0'
compile 'com.google.android.gms:play-services:5.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
}这里有几个有趣的东西
应用插件:'android"'它应用 Android plugin for Gradle 到此版本
Android特定生成选项android %7B...%7D配置所有android特定的构建选项,
它指定SDK版本,发布/调试生成配置。
依赖项依赖项元素在android元素的外部和之后
此元素声明此模块的依赖项
与项目同步打开Android Studio并导入SenZors项目。 它将同步gradle android项目
一定要打勾 use default gradle wrapper Android Studio首选项中的选项
Finalised项目目录结构如下所示

生成自# build project from command line
./gradlew build
# list all available gradle tasks
./gradlew tasks
引用