Gradle
Gradle 是一个构建工具 是一个独立项目 类似 Ant \ Maven 这类构建工具
Ant \ Maven 这类构建工具都是基于 xml 来进行描述的,很臃肿,而Gradle 采用了一种类似java语法的 Grovvy 的语言更简洁灵活,并且完全兼容Maven 和 lvy.
Google 推出 AS 的时候选中了Gradle 作为构建工具
为了支持 Gradle 在 AS 上使用
Google 做了插件 Gradle plugin .
项目的根目录下有 build.gradle 文件里有一句代码
classpath ‘com.android.tools.build.gradle:2.1.2’
版本号代表的是 android gradle plugin 的版本,而不是Gradle 的版本 ,这个是google定的,和Gradle官方没关系
GradleWrapper
每个项目都配置一个指定版本的Gradle
通过这个wrapper 就可以支持 每个项目可以用不同的gradle来构建项目了
cmd 指令 win下 gradlew -v (./gradlew -v)
Android 项目中的 Gradle 配置文件
app 下的 build.gradle 整个项目中的最主要的gradle 配置文件
gradle-wrapper.properties 这个文件里声明了 gradle 的目录和下载路径。
这个文件里指明的gradle版本不对 也是很多导包不成功的原因之一
导入开源的项目
首先app目录下的 build.gradle 以及每个 library 下的build.gradle
首先查看 compileSdkVersion 和 buildToolsVersion .有些时候 本地版本和下载的版本不一致 ,也会导致导入失败
然后就是检查 gradle-wrapper 了 比如 AS 2.x 就不支持 gradle 1.x的版本了
几个常见的gradle命令
./gradlew -v 版本号
./gradlew clean 清除 xx/app 目录下的 build 文件夹
./gradlew build 检查依赖并编译打包
该命令会将 debug 和 release 环境的包都打出来。如正式发布只需打 Release 包
./gradlew assembleDebug 编译并打Debug 包
./gradlew assembleRelease 编译并打出 Release 包
apk 目录所在路径 YourApplication\app\build\outputs\apk
除此之外,assemble还可以和productFlavors结合使用,具体在下一篇多渠道打包进一步解释。
./gradlew installRelease Release模式打包并安装
./gradlew uninstallRelease 卸载Release模式包
所有命令在终端进行 ,必须切换到 所在项目根目录下执行 win 直接执行 gradlew
下面是系统学习下大神关于 AS 使用的 分享
http://stormzhang.com/devtools/2015/06/17/android-studio-all/
和Eclipse的区别有如下:
1、Studio中有Project和Module的概念
前面说到Studio中一个窗口只能有一个项目,即Project,代表一个workspace
但是一个Project可以包含多个Module,比如你项目引用的Android Library, Java Library等
这些都可以看做是一个Module;
2、上述目录中将java代码和资源文件(图片、布局文件等)全部归结为src
在src目录下有一个main的分组,同时划分出java和res两个文件夹
java文件夹则相当于Eclipse下的src文件夹,res目录结构则一样.
Gradle同步 在你项目运行或者更改Gradle配置的时候都要点击下这个按钮,会下载相应的依赖
AVD Manager 模拟器管理
SDK Manager 就是管理你的SDK版本
DDMS 即 Dalvik Debug Monitor Service,Dalvik调试监控服务。
====================================
// 声明是Android程序
apply plugin: ‘com.android.application’
android {
// 编译SDK的版本
compileSdkVersion 21
// build tools的版本
buildToolsVersion “21.1.1”
defaultConfig {
// 应用的包名
applicationId "me.storm.ninegag"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0.0"
}
// java版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
debug {
// debug模式
}
release {
// 是否进行混淆
minifyEnabled false
// 混淆文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
// 移除lint检查的error
lintOptions {
abortOnError false
}
}
dependencies {
// 编译libs目录下的所有jar包
compile fileTree(dir: ‘libs’, include: [‘*.jar’])
compile ‘com.android.support:support-v4:21.0.2’
compile ‘com.etsy.android.grid:library:1.0.5’
compile ‘com.alexvasilkov:foldable-layout:1.0.1’
// 编译extras目录下的ShimmerAndroid模块
compile project(‘:extras:ShimmerAndroid’)
}
除了 stormzhang的系列之多渠道打包文章外还有这篇
http://blog.isming.me/2014/11/21/use-gradle-new/
以及google实例
http://tools.android.com/tech-docs/new-build-system/user-guide
更有助于 学习 app.gradle 内的配置信息 的书写
另外 stormzhang的as系列的 三个技巧篇 有待学习