android中的build.gradle是干啥用的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中的build.gradle是干啥用的相关的知识,希望对你有一定的参考价值。

 为什么要用Gradle?
  Gradle是比较先进的构建系统,也是一个很好的构建工具,允许通过插件自定义构建逻辑
  以下是为什么android Studio选择Gradle的主要原因:
  使用领域专用语言(Domain Specific Language)来描述和处理构建逻辑。(以下简称DSL)
  基于Groovy。DSL可以混合各种声明元素,用代码操控这些DSL元素达到逻辑自定义。
  支持已有的Maven或者Ivy仓库基础建设
  非常灵活,允许使用best practices,并不强制让你遵照它的原则来。
  其它插件时可以暴露自己的DSL和API来让Gradle构建文件使用。
  允许IDE集成,是很好的API工具
  需要准备:
  Gradle 1.6 or 1.7
  SDK with Build Tools 17.0.0 (released 5/16/2013)
  Basic Project
  在Gradle项目的根目录下,有个叫build.gradle的文件,它描述了这个项目的整体构建基础。
  build文件
  最基本的java程序,它的build.gradle文件就一句话:
  apply plugin: 'java'
  最基本的Android项目,它的build.gradle如下:
  buildscript
repositories
mavenCentral()


dependencies
classpath 'com.android.tools.build:gradle:0.5.6'



apply plugin: 'android'
android
compileSdkVersion 17


  我们一步步来分析一下上面三部分的内容。
  buildscript... 配置了驱动build的代码,它声明将在Maven中央仓库,取一个classpath dependency,也就是Android plugin for Gradle v0.5.6
  apply plugin 指明了用到的plugin是android,就像前面java程序中,用的plugin是java一样
  android... 中配置了所有android构建的参数,这里也就是Android DSL的入口点。
  默认的,只有目标编译环境是必要的,也就是compileSdkVersion这个属性。这和以前在project.properties中的target属性类似。
  值得注意的是,如果你在Android项目中写 apply plugin:java 而不是apply plugin:android的话,将会build失败。
参考技术A

主要配置你的软件版本信息、引用库的配置,以及编译所需的配置

build.gradle是gradle的配置文件,类似于maven中pom.xml文件,以下是build.gradle的简单示例:

apply plugin: 'java'

group = 'org.yousharp'

version = '1.0-SNAPSHOT'

sourceCompatibility = 1.7

targetCompatibility = 1.7

repositories

mavenCentral()

maven url "repo.maven.apache.org/maven2"

dependencies

compile group: 'com.google.guava', name: 'guava', version:'17.0'

compile group: 'redis.clients', name: 'jedis', version:'2.6.0'

testCompile group: 'junit', name: 'junit', version:'4.11'


参考技术B 项目自动化构建工具。就是它的配置文件 参考技术C gradle就相当于一个构建系统,将一套代码按照gradle中的配置构建出相应的apk;
安卓中每一个module下都含有一个build.gradle,其中第一句就是apply plugin:来指定这个文件夹是是library,还是application:

application的gradle主要指定当前flavor所生成apk的包名,签名,apk文件名,编译sdk版本,versionName/code,以及dependencies(依赖库)等等

library的gradle主要指定改library的编译sdk版本号,以及依赖库等;
其实As早已将这些配置已可视化的形式提供给开发者了,在As中ctrl+shift+Alt+S,左侧可以选择不同的module,右侧可对其常用属性进行修改,然后对应gradle会自动添加/修改相应的代码,而不用你手动去写代码;
但是最好自己去找一些Gradle的语法知识学习一下,对于高级开发来说还是很有必要的
参考技术D

    在编写程序的时候,有时候我们需要兼容不同系统版本的手机来进行真机测试,所以有时候我们需要修改sdk或者其他的东西的版本号,这时候我们就需要了解build.gradle文件了。

    首先,在Android studio的一个工程里,在Gradle Scripts目录下,有一个文件build.gradle(Module:app),打开。这里我随便选了一个工程的build.gradle文件做例子:

apply plugin: 'com.android.application'

android
   compileSdkVersion 21
   buildToolsVersion "21.1.2"

   defaultConfig
       minSdkVersion 14
       targetSdkVersion 21
       versionCode 1
       versionName "1.0"
   
   buildTypes
       release
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       
   


dependencies
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile project(':xDroid')
   compile project(':UniversalImageLoader')
   compile project(':xdroidrequest')
   compile project ( ':library')



compileSdkVersion 21,说明要运行该源码,你必选已经安装了android API 21。
buildToolsVersion 21.1.2 说明要运行该源码,你必须已经安装了 android sdk build-tools 21.1.2。
minSdkVerison 表示向下低至android API 14,即androd 4.0和4.0以上的版本都可以运行该工程。
targetSdkVerision 表示采用的目标android API是 API 21即 android 5.0。

 3.下面的dependencies里指明的就是一些需要用到的第三方库。

 

gradle文件可以有更多的内容,更多详情可以查看百度文库 http://wenku.baidu.com/link?url=dU5_gdgmk-NKE9U4Z1fTarFWFXf6jsHHMoxxVwRc0P4ZRr__OiZHhIhiSQMOla6wqa9FxKdQCfGv3gOZz1e7pemG9g58loNdFObm9g9A8DK

以上是关于android中的build.gradle是干啥用的的主要内容,如果未能解决你的问题,请参考以下文章

RippleDrawable 遮罩颜色,它是干啥用的?

手机里的android文件夹是干啥用的

hybris 中的 hjmpts 列是干啥用的?

ExpressJS Generator 中的 Views 文件夹是干啥用的?

android rom /system/lib/ 中好多的.so库,每个.so具体是干啥用

PHP 的 serialize() 函数是干啥用的?