AS中的gradle学习整理

本文详细介绍了gradle在Android Studio中的作用,包括构建过程、错误查看、Gradle脚本的位置以及基本语法,如本地和远程依赖管理。同时,文章还深入探讨了Project和Module的gradle配置,例如设置.gradle文件、仓库源声明、版本控制和模块配置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、gradle作用

  1. 相当于eclipse ant
  2. 用于构建

1.1 构建

  • 构建:生成app的过程,执行一些的命令(appt,aidl,javac,dex,apkbuilder,jarsinger,zipalign)
  • 依赖管理:管理依赖的jar包

1.2 查看错误

  • 方式:
    1. message控制台进行查看
    2. gradle console控制台进行查看
    3. log文件路径: C:\Users\用户名\.AndroidStudio1.5\system\log\idea.log

二、Gradle Scripts位置

  • 切换到Android目录下查看

三、基本语法

3.1 本地依赖

  • 说明: gradle 作为构建工具,能够很方便的使用本地jar包
  • 示例:

    dependencies { 
        //单文件依赖
        compile files('libs/android-support-v4.jar')   
        //某个文件夹下面全部依赖
        compile fileTree(dir: 'libs', include: '*.jar')
    }
    
    android {
    
    }

3.2 远程依赖

仓库
  • 仓库:简单理解就是存的一些jar包云端
    • maven
    • ivy
    • jcenter仓库地址
  • 常见写法

    1. mavenCentral()别名,表示依赖是从Central Maven 2 仓库中获取的。
    2. jcenter()别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的。
    3. mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的
  • 仓库地址举例

    repositories {
        ivy {
        url "http://ivy.petrikainulainen.net/repo"
        }
    }
    
    repositories {
        maven {
        url "http://maven.petrikainulainen.net/repo"
        }
    }
    repositories {
             mavenCentral()
    }   
    repositories {//默认仓库
             jcenter()//它是当前世界上最大的Java和Android开源软件构件仓库
    }
  • 说明: gradle 同时支持maven,ivy
  • 示例(maven):

    repositories { 
    
        //从中央库里面获取依赖
        mavenCentral() 
    
        //或者使用指定的本地maven 库
        maven{
            url "file://F:/githubrepo/releases"
        } 
    
        //或者使用指定的远程maven库
        maven{
            url "远程库地址"
        }
    }
    
    dependencies { 
            //应用格式: packageName:artifactId:version
        compile 'com.google.android:support-v4:r13'}
    
    android {
    
    }

四、各个gradle详解

4.1 Project位置

  1. setting.gradle文件

    • 说明: 针对module的全局配置,它的作用域所包含的所有module
    • 示例:

      //文件中的 app, extras:ShimmerAndroid 都是module,如果还有其他module都需要按照如上格式加进去。
      include ':app', ':extras:ShimmerAndroid'
  2. build.gradle文件

    • 说明: 整个项目的gradle基础配置文件
    • 内容:
      1. repositories(声明仓库的源)
      2. android gradle plugin的版本
    • 示例:

      buildscript {
          repositories {
              jcenter()
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:1.5.0'
      
              // NOTE: Do not place your application dependencies here; they belong
              // in the individual module build.gradle files
          }
      }
      
      allprojects {
          repositories {
              jcenter()
          }
      }
      
      task clean(type: Delete) {
          delete rootProject.buildDir
      }

4.2 Module位置(app中的build.gradle文件)

  • 说明: 为app文件夹下这个Module的gradle配置文件
  • 内容:

    • apply plugin声明
    • android 相关属性:

      1. 版本
      2. 混淆设置
      3. 多渠道打包

        • 清单文件中

          <meta-data
              android:name="key"
              android:value="${CHANEL_VALUE}"/>
        • 模块中添加productFlavors
        • 调用manifestPlaceholders给清单文件进行赋值
      4. lint检查设置
    • dependencies: libs目录下的jar包依赖

  • 示例:

    // 声明是Android程序
    apply plugin: 'com.android.application'
    
    android {
        // 编译SDK的版本
        compileSdkVersion 21
        // build tools的版本
        buildToolsVersion "21.1.1"
    
        defaultConfig {
            // 应用的包名
            applicationId "me.storm.ninegag"
            minSdkVersion 14
            targetSdkVersion 21
            versionCode 1
            versionName "1.0.0"
        }
    
        // java版本
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    
        buildTypes {
            release {
                // 是否进行混淆
                minifyEnabled false
                // 混淆文件的位置
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    
        //多渠道打包
        productFlavors{
            anzhi{
                manifestPlaceholders = [CHANEL_VALUE :"anzhi"]
            }
            googleplay{
                manifestPlaceholders = [CHANEL_VALUE :"googleplay"]
            }
            androidmarket{
                manifestPlaceholders = [CHANEL_VALUE :"androidmarket"]
            }
        }
    
        // 移除lint检查的error
        lintOptions {
          abortOnError false
        }
    }
    
    dependencies {
        // 编译libs目录下的所有jar包
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:support-v4:21.0.2'
        compile 'com.etsy.android.grid:library:1.0.5'
        compile 'com.alexvasilkov:foldable-layout:1.0.1'
        // 编译extras目录下的ShimmerAndroid模块
        compile project(':extras:ShimmerAndroid')
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值