• Gradle的概念与基本结构

    自动化构建
    服务器君一共花费 18.323 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具。是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy。

    使用gradle的好处有:

    • 更容易重用资源和代码;
    • 可以更容易创建不同的版本的程序,多个类型的apk包;
    • 更容易配置,扩展;
    • 更好的IDE集成;

    Gradle环境需求:

    • Gradle1.10或者更高版本,grale插件0.9或者更高版本.
    • android SDK需要有Build Tools 19.0.0以及更高版本

    Gradle基本结构

    使用ide创建的gradle构建的项目,会自动创建一个build.gradle,如下:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.9.0'
        }
    }
    apply plugin: 'android'
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"
    }
    

    可以看到,构建文件主要有三个区域:

    • buildscript{…}:Configures the build script classpath for this project. 设置脚本的运行环境。
    • apply plugin: ‘android’ :设置使用android插件构建项目。
    • android{…}: 设置编译android项目的参数。

    任务task的执行

    通常会有以下任务:

    • assemble The task to assemble the output(s) of the project(输出一个项目文件,android就是打包apk)
    • check The task to run all the checks.(运行检查,检查程序的错误,语法,等等)
    • build This task does both assemble and check (执行assemble和check)
    • clean This task cleans the output of the project(清理项目输出文件)

    上面的任务assemble,check,build实际上什么都不做,他们其实都是其他任务的集合。

    执行一个任务的方式为gradle 任务名, 如gradle assemble

    在android项目中还有connectedCheck(检查连接的设备或模拟器),deviceCheck(检查设备使用的api版本)

    通常我们的项目会有至少生成两个版本,debug和release,我们可以用两个任务assembleDebug和assembleRelease去分别生成两个版本,也可以使用assemble一下子生成两个版本。

    gradle支持任务名缩写,在我们执行gradle assembleRelease的时候,可以用gradle aR代替。

    基本的构建定制

    我们可以在build.gradle文件中配置我们的程序版本等信息,从而可以生成多个版本的程序。

    支持的配置有:

    • minSdkVersion 最小支持sdk版本
    • targetSdkVersion 编译时的目标sdk版本
    • versionCode 程序版本号
    • versionName 程序版本名称
    • packageName 程序包名
    • Package Name for the test application 测试用的程序包名
    • Instrumentation test runner 测试用的instrumentation实例

    例如:

    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"
        defaultConfig {
            versionCode 12
            versionName "2.0"
            minSdkVersion 16
            targetSdkVersion 16
        }
    }
    
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [数据库技术] MySQL中英文混合排序 4 个条目
  2. [数据结构] 图的定义 1 个条目
  3. [移动开发] Android 开发调试工具 ADB 3 个条目
  4. [移动开发] Android根基概念Context 8 个条目
  5. [搜索引擎优化] 百度搜索引擎优化指南 3 个条目
  6. [Python程序设计] Django数据库模型 6 个条目
  7. [Python程序设计] urls.py设置技巧 8 个条目
  8. [智力开发与知识管理] 超越整体性学习 5 个条目
  9. [移动开发] ListView 使用相关问题集 1 个条目
  10. [PHP程序设计] 声明式编程范式 12 个条目
  11. [计算机算法] 两数交换的各种算法细节 2 个条目
  12. [PHP程序设计] PHP与函数式编程 1 个条目
窗口 -- [博客]