zoukankan      html  css  js  c++  java
  • 《Gradle权威指南》--Android Gradle插件

    No1:

    Android Gradle插件分类

    App插件id:com.android.application

    Library插件id:com.android.library

    Test插件id:com.android.test

    No2:

    除了插件id之外,如果是第三方的插件,还要配置它们的依赖classpath。Android Gradle插件就是属于第三方插件,它托管在Jcenter上。

    buildscript{
        repositories{
            jcenter()
        }
        dependencies{
            classpath 'com.android.tools.build:gradle:1.5.0'
        }
    }

    注:buildscript{}这部分配置可以写到根工程build.gradle脚本文件中,这样所有的子工程就不用重复配置了

    No3:

    apply plugin:'com.android.application'
    
    android{
        compileSdkVersion 23
        buildToolsVersion "23.0.1"
    }

    android{}是Android插件提供的一个扩展类型,可以让我们自定义Android Gradle工程。compileSdkVersion是编译所依赖的Android SDK的版本,这里是API Level;buildToolsVersion是构建该Android工程所用构建工具的版本

    No4:

    proguard-rules.pro是一个混淆配置文件

    No5:

    compileSdkVersion

    public void compileSdkVersion(int apiLevel){
        compiledSdkVersion("android-"+apiLevel);
    }
    public void compileSdkVersion(String version){
        checkWritability();
        this.target = version;
    }
    ------------------------
    public void setCompileSdkVersion(int apiLevel){
        compileSdkVersion(apiLevel);
    }
    public void setCompileSdkVersion(String target){
        compileSdkVersion(target);
    }
    ------------------------
    android.compileSdkVersion = 23
    //or
    android.compileSdkVersion = 'android-23'

    No6:

    buildToolsVersion

    public void buildToolsVersion(String version){
        checkWritability();
        buildToolsRevision = FullRevision.parseRevision(version);
    }
    
    @Override
    public String getBuildToolsVersion(){
        return buildToolsRevision.toString();
    }
    
    public void setBuildToolsVersion(String version){
        buildToolsVersion(version);
    }

    No7:

    defaultConfig

    defaultConfig{
        applicationId "org.flysnow.app.example74"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    defaultConfig是默认的配置,它是一个ProductFlavor.

    applicationId:配置的包名

    minSdkVersion:最低支持的Android系统的API Level

    targetSdkVersion:表明我们是基于哪个android版本开发的

    versionCode:表明我们的app应用内部版本号,一般用于控制app升级

    versionName:表明我们的app应用的版本名称,用户可以看到,就是我们发布的版本

    No8:

    buildTypes

    buildTypes{
        release{
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
    }

    buildTypes是一个NamedDomainObjectContainer类型,是一个域对象。

    realease会帮我们自动创建一个对应的BuildType

    minifyEnabled是否为该构建类型启用混淆

    proguardFiles,当启用混淆时,所使用的proguard的配置文件,配置如何进行混淆

    getDefaultProguardFile是android扩展的一个方法,可以获取你的android sdk目录下默认的proguard配置文件

    No9:

    android gradle任务

    connectedCheck:在所有的连接的设备或者模拟器上运行check检查

    deviceCheck:通过API连接远程设备运行checks

    lint:在所有的ProductFlavor上运行lint检查

    install和uninstall类的任务可以直接在我们已连接的设备上安装或者卸载你的app

    singingReport:打印app的签名

    androidDependencies:打印android的依赖

  • 相关阅读:
    导包路径
    django导入环境变量 Please specify Django project root directory
    替换django的user模型,mysql迁移表报错 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependen cy user.0001_initial on database 'default'.
    解决Chrome调试(debugger)
    check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) values ('徐小波','XuXiaoB','男','1',' at line 1")
    MySQL命令(其三)
    MySQL操作命令(其二)
    MySQL命令(其一)
    [POJ2559]Largest Rectangle in a Histogram (栈)
    [HDU4864]Task (贪心)
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8609746.html
Copyright © 2011-2022 走看看