Android开发Android知识Android技术知识

Android Gradle

2017-12-26  本文已影响0人  一s独秀

Android 中build.gradle文件是两个

app/build.gradle

app/build.gradle
* 上图① ② ③ ④ ⑤分别为:项目类型(应用或者是一个libary)、Android编译版本、manifest上的基本配置、创建类型、外部依赖
详细介绍:
apply plugin: 'com.android.application'// 声明是Android程序

android {
    //版本配置
    compileSdkVersion 26//是你SDK的版本号。
    buildToolsVersion "26.0.2"//是你构建工具的版本,其中包括了打包工具aapt、dx等等
    defaultConfig {
        //应用的包名在安卓设备和商店中是作为应用的唯一标识,所以,一旦发布了应用程序,就不应该再修改,否则将被视为完全不同的应用
        applicationId "com.suchengkeji.andeoid.gradlerdemo"
        //SDK配置
        minSdkVersion 21//app运行所需的最低sdk版本.低于minSdkVersion的手机将无法安装
        targetSdkVersion 26 //应用的兼容模式
        versionCode 1//整数值,代表应用程序代码的相对版本,也就是版本更新过多少次。
        versionName "1.0"//字符串值,代表应用程序的版本信息,需要显示给用户。
        // dex突破65535的限制
        <strong><font color=#0099ff>multiDexEnabled true</font></strong>//下面有介绍
    }
    buildTypes {
        release {
            // 是否进行混淆(设置是否使用优化打包)
            minifyEnabled false
            //设置为true后,生成的APK会去掉未使用的资源,减少APK的体积
             shrinkResources true
             //是否启动zipAlign优化
             zipAlignEnabled false
            // 混淆文件的位置(设置proguard文件(用于混淆代码))
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    // 编译libs目录下的所有jar包
    compile fileTree(dir: 'libs', include: ['*.jar'])
    //编译所添加的外部依赖库
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    // 编译libray模块
    compile project(':libray')
    // 编译extras目录下的librayTwo模块(如果模块在某(extras)目录下)
    compile project(':extras:librayTwo')
}

要点:

buildTypes:构建类型,一般可以分为debug(主要用于开发阶段)和release(生产发布阶段)

        buildTypes {
        release {
            //是否进行混淆(设置是否使用优化打包)
             <strong>minifyEnabled </strong> false
            //设置为true后,生成的APK会去掉未使用的资源,减少APK的体积
             <strong>shrinkResources</strong> true
             //是否启动zipAlign优化
             <strong>zipAlignEnabled </strong> false
            // 混淆文件的位置(设置proguard文件(用于混淆代码))
            <strong>proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'</strong>
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

配置多渠道打包(风格定制 )

android{
    //配置多渠道打包(项目风格)
    productFlavors {
        huawei {
            applicationId "com.suchengkeji.andeoid.gradlerdemo.huawei"
        }
        wandoujia {
            applicationId "com.suchengkeji.andeoid.gradlerdemo.wandoujia"
        }
    }
}

配置打包签名设置

 android{
    signingConfigs {//签名的配置
        debug {
            storeFile file('H:\\configTest.jks')//签名文件路径
            storePassword "123456"//签名密钥密码
            keyAlias "configTest"//.jks文件别名
            keyPassword "123456"  //签名公钥密码
        }
        release {
            storeFile file('H:\\configTest.jks')//签名文件路径
            storePassword "123456"
            keyAlias "configTest"
            keyPassword "123456"  //签名密码
        }
    }
}
打包命令行

project/build.gradle(根目录下的build.gradle)

// 运行gradle clean时,执行此处定义的task。
// 该任务继承自Delete,删除根目录中的build目录。
// 相当于执行Delete.delete(rootProject.buildDir)。
// gradle使用groovy语言,调用method时可以不用加()。
task clean(type: Delete) {
    delete rootProject.buildDir
}

提下根目录下还有一个setting.gradle:

dex突破65535的限制

dependencies {
    compile 'com.android.support:multidex:1.0.0'
}
上一篇下一篇

猜你喜欢

热点阅读