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

1.gradle -v

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

2.gradle clean

当我们在正式打包之前,灰常建议先使用这条命令,它的作用则是将清除之前project中build中内容,同时它还会主动下载Gradle需要的依赖包若果你还没 配置完全,用来初始化运行环境。同样的这个过程也是灰常的慢 如果你没有FQ的话。当我们看到 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'

}

}

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

Gradle学习系列(二)的更多相关文章

  1. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  2. Maven学习系列二(1-5)

    Maven学习系列二(1-5) 本文转自 QuantSeven 博客,讲解精炼易懂,适合入门,链接及截图如下 http://www.cnblogs.com/quanyongan/category/47 ...

  3. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  4. DocX开源WORD操作组件的学习系列二

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  5. [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参

    [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...

  6. RabbitMQ学习系列二-C#代码发送消息

    RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...

  7. .net reactor 学习系列(二)---.net reactor界面各功能说明

    原文:.net reactor 学习系列(二)---.net reactor界面各功能说明         安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.c ...

  8. 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)

    项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...

  9. ASP.NET MVC学习系列(二)-WebAPI请求

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...

  10. Gradle学习系列之一——Gradle快速入门

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

随机推荐

  1. kaggle-泰坦尼克号Titanic-1

    大家都熟悉的『Jack and Rose』的故事,豪华游艇倒了,大家都惊恐逃生,可是救生艇的数量有限,无法人人都有,副船长发话了『lady and kid first!』,所以是否获救其实并非随机,而 ...

  2. 前端福利之overflow-scrol 怎么隐藏滚动条(转)

    最近用vue写wap站的时候遇到了微信打开页面滚动条无法隐藏的问题. 对于隐藏滚动条,我们最常用的方法首先是: 1.使用以下CSS可以隐藏滚动条: .container::-webkit-scroll ...

  3. CentOS 7.4 shell 不显示当前用户和路径的问题

    步骤如下:   vim ~/.bash_profile (不用管.bash_profile这个文件有几个,自己新建一个也是可以的)    在最后加上 export PS1='[\u@\h \W]\$' ...

  4. 学生信息系统(json模块解决数据持久化)

    将学生管理的案例,学生信息由原来的只有姓名,拓展为包含,姓名,年龄,两个属性:完成对应的增.删.查.改,操作 import json,os,time,sys student_list = [] Fil ...

  5. Spring中ApplicationContext和beanfactory区别---解析二

    一.BeanFactory 和ApplicationContext Bean 工厂(com.springframework.beans.factory.BeanFactory)是Spring 框架最核 ...

  6. Async 和 Await 的异步编程 资料汇总

    使用 Async 和 Await 的异步编程 https://msdn.microsoft.com/zh-cn/library/hh191443(v=vs.120).aspx 异步程序中的控制流 ht ...

  7. Eavl() 数据绑定格式化时间

    <%#Eval("字段名","{0:yyyy-MM-dd}") %> 或者 <%#((DateTime)Eval("news_tim ...

  8. JVM垃圾收集器(2)

    此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.G1 说明: 从上图来看,G1与CMS相比,仅在最后的"筛选回收"部分不同(CMS ...

  9. Ubuntu add-apt-repository: command not found

    在Ubuntu下,时不时会有这个错误的. add-apt-repository: command not found 这个是缺少程序,安装一下就可以了.只是不知道安装的名字. 按以下命令走一趟就可以的 ...

  10. 深入了解java虚拟机(JVM) 第十二章 类加载器

    一.什么是类加载器 类加载器是一个用来加载类文件的类,Java源代码通过javac编译器编译成类文件,然后JVM来执行类文件中的字节码来执行程序.需要注意的是,只有被同一个类加载器加载的类才可能会相等 ...