Gradle for Android(一)

Gradle是一种基于Groovy的动态DSL,而Groovy语言是一种基于jvm的动态语言。这里只分享实际开发中会用到的场景,您不需要去学习Groovy语言,知道Java的您是很容易阅读Groovy语言的。
系列博客涉及的知识点有:Gradle基本配置、依赖管理、全局设置、自定义BuildConfig、混淆、多渠道打包、配置签名信息、单元测试,是不是迫不及待了啊,快来学习学习。

基本配置

新建项目,目录结构如下:

app/build.gradle

初始化的Gradle配置:

apply plugin: ‘com.android.application‘

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.wuxiaolong.gradle4android"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
        }
    }
}

dependencies {
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    testCompile ‘junit:junit:4.12‘
    compile ‘com.android.support:appcompat-v7:23.2.1‘
    compile ‘com.android.support:design:23.2.1‘
}
apply plugin: ‘com.android.application’,表示该module是一个app module,应用了com.android.application插件,如果是一个android library,那么这里写apply plugin: ‘com.android.library’

compileSdkVersion:基于哪个SDK编译,这里是API LEVEL

buildToolsVersion:基于哪个构建工具版本进行构建的。

defaultConfig:默认配置,如果没有其他的配置覆盖,就会使用这里的。
applicationId:配置包名的
versionCode:版本号
versionName:版本名称

buildTypes是构建类型,常用的有release和debug两种,可以在这里面启用混淆,启用zipAlign以及配置签名信息等。

dependencies:不属于Android专有的配置了,它定义了该module需要依赖的jar,aar,jcenter库信息。

gradle-wrapper.properties

声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

根目录的build.gradle

定义在这个工程下的所有模块的公共属性

buildscript {
    repositories {
        jcenter()//使用jcenter库
    }
    dependencies {
        classpath ‘com.android.tools.build:gradle:1.5.0‘// 依赖android提供的1.5.0的gradle build

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
//为所有的工程的repositories配置为jcenters
allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

setting.gradle

包含哪些模块,比如有app和library:

include ‘:app‘,‘:library‘

依赖管理

本地依赖

jar

默认情况下,新建的Android项目会有一个lib文件夹

dependencies {
       compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])//即添加所有在libs文件夹中的jar
       //compile fileTree(‘libs/WuXiaolong.jar‘)//不需要这样一个个去写了
}

so包

用c或者c++写的library会被叫做so包,Android插件默认情况下支持native包,你需要把.so文件放在对应的文件夹中

app
   ├── AndroidManifest.xml
   └── jniLibs
       ├── armeabi
       │   └── libiconv.so
       ├── armeabi-v7a
       │   └── libiconv.so
       ├── mips
       │   └── libiconv.so
       └── x86
           └── libiconv.so

aar文件

library库输出文件是.aar文件,在library工程build/output/aar/下

直接依赖library

dependencies {
       compile project(‘:library名字‘)
       compile project(‘:libraries:library名字‘)//多个library,libraries是文件夹名字
  }

依赖.aar文件
创建一个aars文件夹,然后把.aar文件拷贝到该文件夹里面,然后添加该文件夹作为依赖库:

repositories {
    flatDir {
        dirs ‘aars‘
    }
}

或者:

 dependencies {
       compile(name:‘libraryname‘, ext:‘aar‘)
}
时间: 2024-12-28 22:02:15

Gradle for Android(一)的相关文章

gradle打包android (实现外部导入签名文件、多渠道打包、导入ant脚本)

近期一直在做android自己主动打包,之前已经完毕了用纯命令行的形式打包.原生态ant脚本打包.和基于android的SDK的打包.而且实现了多渠道打包,后来同事推荐了gradle,网上的资料说gradle各种好,自己也感兴趣是实现一下.事实上一般来说因为android对eclipse的支持减弱,大部分的人都是用gradle与android studio融合,这样面的样例也会比較多,但笔者所在的项目还是在eclipse的比較多.因为开发者在移植过程中发现报错比較多所以一直没有全然移植(好吧,事

[Gradle] Gradle 构建 android 应用常见问题解决指南

转载地址:http://www.cnblogs.com/youxilua/p/3348162.html 1: 使用最新的gradle android插件 以前我们写的时候会这么写 dependencies { classpath 'com.android.tools.build:gradle:0.5.0' } 不过,由于android gradle 插件的开发还是很活跃的,而且目前而言,可能还存在一些我们不知道的坑,但是,别人踩过,后边,官方修复,为了不踩坑,我建议android gradle

Gradle for Android(二)全局设置、自定义BuildConfig

全局设置 如果有很多项目,可以设置全局来统一管理版本号或依赖库,根目录下build.gradle下: ext {    compileSdkVersion = 23    buildToolsVersion = "23.0.2"    minSdkVersion = 14    targetSdkVersion = 23 } app/build.gradle android {    compileSdkVersion rootProject.ext.compileSdkVersion

使用gradle构建android项目(续)

在几个月之前,我已经写过一篇使用gradle构建android项目的博客了http://blog.isming.me/2014/05/20/android4gradle/,那篇文章已经介绍了如何使用gradle进行项目构建,以及为谷歌会推荐使用gradle.当时android的gradle插件是0.11.0,现在插件的版本已经是0.14.3了,对于一些老的方法和api,有一些已经被移除,无法使用.因此有必要再写一篇博客介绍这些被移除的部分和替代方案.同时由于个人学识原因,当时没有介绍的一些技巧,

使用Gradle构建Android项目

新项目中,使用了Google I/O 2013发布的新工具,使用Gradle构建android项目,并且在新版的Intellig IDEA以及google的Android Studio对其支持.本文就介绍一下怎么使用gradle构建android项目,进行多个版本编译. Gradle是什么? Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具.是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy. 使用gradle的目的: 更容易重用

Gradle 配置 Android 工程

# Gradle 配置 Android 工程 # 随着Android studio 的普及,gradle 也开始在android 开发着中普及起来.这里分享一下我的grale 脚本以及对gradle的认识. 1.Gradle 的基本结构 整个工程的gradle 由 project build.gradle, seetings.gradle,gradle.properties,module build.gradle 组成. ## 1.project build.gradle ## projects

【Android Studio探索之路系列】之八:Gradle项目构建系统(二):Gradle for Android脚本语法

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 在介绍Gradle for Android脚本语法语法之前,我们先来了解一下Android Studio工程中几个常见的Gradle脚本文件的相关功能,这样我们会有个大致的印象,而后我们再详细的去讨论相关的语法表达. Android Studio中,Gradle由一个顶级配置文

用Gradle 构建android程序

前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目的用户指南全部看完, 让不会用gradle 的人也用gradle构建android项目,让打包(注意,打包和构建是两码事)多版本android不再痛苦.最后,题外话:珍惜生命,远离ant.... Gradle build android 历史 Android Tools 主页 ,大概是今年2月份发布

Gradle with Android

[Gradle with Android] The Android Studio build system is based on Gradle, and the Android plugin for Gradle adds several features that are specific to building Android apps. 1.Update the Android Plugin for Gradle You can specify the Android plugin fo

Gradle for Android 系列:初识 Gradle 文件

读完本文你将了解到: settinggradle 主目录下的 buildgradle 模块下的 buildgradle 备注 注意 applicationId 和 package name 其实不是一个东西 总结 我们用 Android Studio 新创建一个项目时,会自动生成 3 个 Gradle 文件: 接下来介绍这三个文件的作用. 1. setting.gradle 上篇文章:为什么 Gradle 这么火 中介绍了, 一个 Gradle 构建通常包括三个阶段:初始化,配置,和执行. se