Android gradle使用教程<一> 基本使用方法

Android gradle 基本使用方法

gradle 的nb之处就不多说了,直接开始讲用法吧。


1. 基本使用 -- 打包单个工程

打包脚本如下:

/*
 * Copyright (C) 2015 liangchao
 */
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

apply plugin: 'android'

android {
    compileSdkVersion 20
    buildToolsVersion "22.0.1"

    defaultConfig {
        versionCode 12
        versionName "2xyx"
        minSdkVersion 8
        targetSdkVersion 17
        applicationId "com.example.SimpleGradleExample2"
        proguardFile "proguard.cfg"
    }

    dependencies {
    }

    sourceSets { // 配置文件及文件夹路径
        main {
            manifest {
                srcFile 'AndroidManifest.xml'
            }
            res {
                srcDir 'res'
            }
            java {
                srcDir 'src'
            }
            assets {
                srcDir 'assets'
            }
        }
    }

    //签名配置
    signingConfigs {
        relaseConfig {
            storeFile file("sge.keystore")
            storePassword "sgesge"
            keyAlias "sgesge"
            keyPassword "sgesge"
        }
    }

    buildTypes {
        debug {
            debuggable true //ddms里边可以看到进程,否则没法debug
            jniDebuggable true
            renderscriptDebuggable true
            renderscriptOptimLevel 3
            applicationIdSuffix ".debug"
            versionNameSuffix ".debug"
            zipAlignEnabled false
            minifyEnabled true
            proguardFile "proguard.cfg"
        }

        release {
            minifyEnabled false
            proguardFile 'proguard.cfg'
            signingConfig signingConfigs.relaseConfig
        }
    }
}



1.1 apply plugin: 'android'  安卓工程,写成android。如果是library工程,则需要写成android-library


1.2 android { } 里边的内容,来定义android工程的一些选项。下面我们逐一解释一下。


1.2.1 compileSdkVersion , buildToolsVersion, defaultConfig 通过名字就可以知道是干什么的。

defaultConfig 中得applicationId单说一下,applicatinoId,如果不写,则默认为manifest中配置的。具体说明参见:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename


1.2.2 sourceSets 标明了 manifest , res , java , assets的存放位置。

1.2.3 signingConfigs 标明了签名的一些配置。由于一般是在release的情况下进行签名,因此只写了一个
relaseConfig。这里可以写多个config,以便于后面使用。

1.2.4 buildTypes 定义了build的一些属性。

debuggable 标示是否可以进行debug。如果写false,则在ddms中看不到进程,也就无法进行debug了。


minifyEnabled 为true,则标示进行代码的缩减,即code shrinking


zipAlignEnabled 是否zip对齐。zip align 据官网上说,是对apk一个很重要的优化,建议true吧。zipalign说明地址:http://developer.android.com/intl/zh-cn/tools/help/zipalign.html
 
renderscriptDebuggable RenderScript 可以进行RenderScript的debug。RenderScript的内容参见:http://developer.android.com/intl/zh-cn/guide/topics/renderscript/compute.html#access-rs-apis

applicationIdSuffix applicationId增加后缀,这样可以生成不同包名的apk。便于在手机上同时安装debug和release的。

proguardFile 混淆文件的地址


2. dependices 的详细解释

dependices主要是工程的依赖项。大概分为两个维度,依赖的东东和依赖的方式。

2.1 依赖jar包

compile files('libs/mathutil.jar')

compile 标示依赖的方式。files('libs/mathutil.jar')标示依赖的东东。


依赖的方式还可以是:

compile: 编译依赖,而且也导出

provided: 编译依赖,不导出

androidTestCompile: 测试工程

debugCompile: debug Build Type

releaseCompile: release Build Type.


2.2 依赖其他android-library

这个依赖,篇幅需要较多,再单独开一篇讲吧。


3. 速度优化 -- 使用gradle daemon

可以利用gradle clean --daemon和 gradle build --daemon,亲测可用。对速度的优化还是挺明显的。damon的说明地址:https://docs.gradle.org/2.6/userguide/gradle_daemon.html

工程地址:https://github.com/LiangChaoPossible/SimpleGradleExample


希望对大家有帮助,如果有不对地方,还请大家多谅解。

可以通过邮件交流。future_lc@126.com


参考文献:

1. http://tools.android.com/tech-docs/new-build-system/user-guide

2. http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename

3. http://developer.android.com/intl/zh-cn/tools/help/zipalign.html

4. http://developer.android.com/intl/zh-cn/guide/topics/renderscript/compute.html#access-rs-apis

5. https://docs.gradle.org/2.6/userguide/gradle_daemon.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值