• Gradle学习系列(二)


         AS的逐渐成熟和完善,已有越来越多的项目开发都开始转向AS了,必然的对Gradel的认识和使用是很有必要了。我们已经知道 Gradle 是用来架构 Java项目了,对于Android Project来说,说白了我们就是用它来打包。因为在这一块,等你接触之后,你就会发现相比较Ant等其它打包工具来说,它是有多么的方便和高效。然而本系列的第一篇已大致的介绍了Gradle的基础知识,本章开始将重点讲讲 用Gradle 打包细节以及使用过程中遇到的一些常见问题和错误。本章主要分为两个板块,第一个版块,主要介绍gradle的常用的也是最基本的命令,第二个版块,主要列出打包及其使用过程中的常见错误问题。本节 将先 介绍第一个版块!

        1.gradle -v 

         当我们拿到一个用Gradle架构的项目时候,有时候我们想快速的编译这个project 看其运行效果怎样,这时候我们可以采取最简单的方式,就是直接cmd环境进入该项目根目录下,输入 gradle -v命令,若果是第一次使用的时候,这条命令将会去更新下载本项目的Gradle,这个过程是灰常慢的如果你没翻墙。在此之后呢,你会看到其输入了当前project的Gradle 版本。

        2.gradle clean

         当我们在正式打包之前,灰常建议先使用这条命令,它的作用则是将清除之前project中build中内容,同时它还会主动下载Gradle需要的依赖包若果你还没 配置完全,用来初始化运行环境。同样的这个过程也是灰常的慢 如果你没有翻墙的话。当我们看到 build successed 的时候,就OK啦,接下来就可以正式打包啦!

        3.gradle build

        这条命令就是用来打包了,在clean成功之后,我们就可以使用它了,当然我们也可以直接使用它,效果怎样你尝试了就知道了!默认情况下,它会打包出两种格式:debug和release,位于 project/app/build/outputs/apk 目录下。原因看就是因为我们在该项目的 build.gradle文件中, 对 buildType 默认配置了 debug和release,如图:

     Gradle打包的时候会依据这个属性的配置来决定打包的格式。同时build它是默认打包出所有格式渠道包,我们知道当前的APP市场这么多,当我们需要发布某个项目时候,就需要编译各个渠道apk,Gradle在这一块-多渠道打包可是灰常厉害的,各个渠道的配置在放在 productFlavors {}中,如图:

    这里面就列举了百度应用和360这两个市场的渠道,更多的渠道只需依次添加ok了。 然而有时候,我们并不想全部打包或者只想编译指定渠道包,那么这时候就得用到下面一个命令了assemble 。

        4.gradle assemble

         这个命令将会定制化打包,比如 gradle assembleDebug 或者 gradle assembleRelease,这就表示只会打出Debug或者Release格式的各个渠道包。也可以使用 gradle assemblebaiduyingyongDebug ,这就表示只会打出debug格式百度应用市场的渠道包,可以看出若果没用指明渠道市场,那么它会打出指定格式下(debug/release), productFlavors 里面列举的各个市场的渠道包,同理 当未给出指定格式和渠道 如:gradle assemble,那么它将打出每个格式下, productFlavors 里面列举的各个市场的渠道包。

        最后分享奉献一份自己的 gradle 配置,需要的话可以参考哦,希望对你有帮助!

    apply plugin: 'com.android.application'


    android {


    compileSdkVersion 21
    buildToolsVersion "21.0.2"


    defaultConfig {


    applicationId "com.example.spencerwang.myapplication"


    minSdkVersion 15


    targetSdkVersion 21


    versionCode 1


    versionName "1.0"


    }


    buildTypes {

    debug {

    versionNameSuffix "-debug"
    minifyEnabled false
    zipAlignEnabled false
    shrinkResources false
    signingConfig signingConfigs.debug

    }

    release {

    minifyEnabled true
    zipAlignEnabled true
    shrinkResources true// 移除无用的resource文件
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //混淆编译
    signingConfig signingConfigs.release

    }

    }

    lintOptions {

    abortOnError false

    }

    //签名配置

    signingConfigs {

    debug {
    }

    release {

    storeFile file("keystore")
    storePassword "password"
    keyAlias "alias"
    keyPassword "password"

    }

    }

    productFlavors {

    baiduyinyong {}
    360{}

    }

    dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.2'
    compile 'com.android.support:support-v4:21.0.2'

    }


    }

        以上者几个命令,就是在打包时候需要的用到的,相信掌握它 应该不成问题!嘎嘎~     下一篇就来讲讲打包中常见的错误及其解决方法!

        

  • 相关阅读:
    LinkedHashSet的实现原理
    HashSet的实现原理
    HashMap的实现原理
    pl/sql 笔记之存储过程、函数、包、触发器(下)
    pl/sql 笔记之基础(上)
    第三方网站微信登录实现
    kafka connect 创建、删除连接器connector(非常重要!!!!)
    Kafka Connect JDBC-Source 源连接器配置属性
    kafka connect(非常重要)
    kafka connect 使用说明
  • 原文地址:https://www.cnblogs.com/kevinOne/p/4277650.html
Copyright © 2020-2023  润新知