Android笔记之Gradle

作者: 小时不识月z | 来源:发表于2017-04-17 20:22 被阅读102次

    前言

    Gradle是Android编译应用资源和源代码,然后将它们打包成 APK的一个自动化构建工具,他能够自动化管理资源和执行构建,类似于Linux中的make工具。

    Android Studio就是基于Gradle来完成APK的构建的。当然我们也可以单独地使用Gradle来构建我们的Android应用工程。当然我们最常用的还是Android Studio下对他的使用,因此我们主要对Android Studio中的Gradle的使用作出说明。

    Gradle

    Gradle作为一种高级的构建工具,可以帮助开发者实现自定义的构建过程,使用Gradle可以实现的功能包括;
    构建类型、产品风味、构建变体、清单条目、依赖项、签署、ProGuard、APK 拆分等

    Android Studio中的Gradle文件

    在Android的视图下,我们可以看到Gradle Scripts目录下的文件都是Gradle文件,他是基于Java 虚拟机 (JVM) 的动态语言 Groovy来编写的。

    构建文件

    1. setting.gradle
    include ‘:app’
    

    该文件的内容十分简单,就是包含构建APK时所包含的module即可,默认该工程下建立了多少module都会被包含进去。

    2. build.gradle(Project)
    /**
     * buildscript中包含的是Gradle工具的仓库和依赖
     */
    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.1'
        }
    }
    
    /**
     * allprojects 标签内包含的是整个工程,也就是所有的module的 repositories and
     * dependencies,例如第三方插件或者库。
     */
    allprojects {
       repositories {
           jcenter()
       }
    }
    
    3. build.gradle(Module)
    /**
     * 应用插件
     */
    apply plugin: 'com.android.application'
    
    /**
     * 所有Android特性相关的注册
     */
    android {
      /**
       *  compileSdkVersion  Gradle用来编译App的Android Api版本
       *
       *  buildToolsVersion  Gradle使用的build工具的版本
       */
      compileSdkVersion 25
      buildToolsVersion "25.0.2"
    
      /**
       * defaultConfig  
       */
    
      defaultConfig {
    
        /**
         * applicationId 唯一标识
         */
        applicationId 'com.example.myapp'
    
        // 运行App的最小Api
        minSdkVersion 15
    
        // 制定测试App的Api
        targetSdkVersion 25
    
        // 版本号
        versionCode 1
    
        // 用户友好的版本名称
        versionName "1.0"
      }
    
      /**
       * 构建类型,包括debug版本和release版本
       */
    
      buildTypes {
        /**
         * By default, Android Studio configures the release build type to enable code
         * shrinking, using minifyEnabled, and specifies the Proguard settings file.
         */
        release {
            minifyEnabled true // Enables code shrinking for the release build type.
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
      }
    
      /**
       * 产品风味代表您可以发布给用户的不同应用版本,例如免费和付费的应用版本
       */
      productFlavors {
        free {
          applicationId 'com.example.myapp.free'
        }
        paid {
          applicationId 'com.example.myapp.paid'
        }
      }
    
      /**
       * 屏幕适配相关的
       */
    
      splits {
        // Screen density split settings
        density {
    
          // Enable or disable the density split mechanism
          enable false
    
          // Exclude these densities from splits
          exclude "ldpi", "tvdpi", "xxxhdpi", "400dpi", "560dpi"
        }
      }
    }
    
    /**
     *  包含这个module所有的依赖项
     */
    dependencies {
        compile project(":lib")
        compile 'com.android.support:appcompat-v7:25.3.1'
        compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    
    4. gradle.properties

    Gradle相关的配置,例如内存大小等

    5. local.properties

    为构建系统配置本地环境属性,例如 SDK 安装路径。

    相关文章

      网友评论

        本文标题:Android笔记之Gradle

        本文链接:https://www.haomeiwen.com/subject/haztzttx.html