zoukankan      html  css  js  c++  java
  • Android studio gradle配置!!!【转】

    转自:http://www.open-open.com/lib/view/open1415793464648.html

    Gradle 基本概念

    首先我们学习几个gradle 的脚本语法,掌握了这几个语法,你就能非常简单的用gradle构建打包android项目了。 首先,我们来看下一个最简单android build.gradle

    build.gradle

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
        //设置脚本的运行环境
        buildscript {
             //支持java 依赖库管理(maven/ivy),用于项目的依赖。
         repositories {
                mavenCentral()
            }
            //依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件
            dependencies {
                classpath 'com.android.tools.build:gradle:0.4'
            }
        }
        //声明构建的项目类型,这里当然是android了
        apply plugin: 'android'
        //设置编译android项目的参数
        android {
            compileSdkVersion 17
            buildToolsVersion "17"
         
            defaultConfig {
                minSdkVersion 8
                targetSdkVersion 17
            }
            //Android默认配置
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    resources.srcDirs = ['src']
                    aidl.srcDirs = ['src']
                    renderscript.srcDirs = ['src']
                    res.srcDirs = ['res']
                    assets.srcDirs = ['assets']
                }
                //测试所在的路径,这里假设是tests文件夹,没有可以不写这一行
                instrumentTest.setRoot('tests')
            }
             
            //这个是解决lint报错的代码
            lintOptions {
                abortOnError false
            }
            /**
             * 签名设置
             */
            signingConfigs {
                myConfigs {
                    storeFile file("签名文件地址")
                    keyAlias "..."
                    keyPassword "..."
                    storePassword "..."
                }
            }
            /**
             * 混淆设置
             */
            buildTypes {
                release {
                    signingConfig signingConfigs.myConfigs
                    runProguard true
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
            }
            /**
             * 渠道打包(不同包名)
             */
            productFlavors {
                qqqq {
                    applicationId = '包名'
                }
                hhhhh {
                    applicationId='包名'
                }
            }
        }
        /**
         * .so文件的导入
         */
        task copyNativeLibs(type: Copy) {
            from fileTree(dir: 'libs', include: 'armeabi/*.so') into 'build/lib'
        }
     
        tasks.withType(Compile) {
            options.encoding = "UTF-8"
        }
         
        tasks.withType(Compile) {
            compileTask -> compileTask.dependsOn copyNativeLibs
        }
        clean.dependsOn 'cleanCopyNativeLibs'
        tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
            pkgTask.jniFolders = [new File(buildDir, 'lib')]
        }
        //依赖库
        dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        }

    本地依赖

    gradle 作为构建工具,能够很方便的使用本地jar包,以下为使用的代码块。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dependencies {
            //单文件依赖
        compile files('libs/android-support-v4.jar')  
        //某个文件夹下面全部依赖
        compile fileTree(dir: 'libs', include: '*.jar')
    }
     
    android {
         
    }

    远程依赖

    gradle 同时支持maven,ivy,由于ivy我没用过,所以用maven 作为例子,以下为代码块:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    repositories {
            //从中央库里面获取依赖
        mavenCentral() 
        //或者使用指定的本地maven 库
        maven{
            url "file://F:/githubrepo/releases"
        }  
        //或者使用指定的远程maven库
        maven{
            url "远程库地址"
        }
    }
     
    dependencies {
            //应用格式: packageName:artifactId:version
        compile 'com.google.android:support-v4:r13'}
     
    android {
     
    }

    android library 依赖

    对于项目依赖 android library的话,就不是依赖一个jar,那么简单了,在这里需要使用gradle mulit project 机制。在过去,android library并没有一个很好的包管理方式,简单来说,在gradle出现以前,官方并没有一种用于管理android library 依赖包的方式,一般我们都是直接下载别人的android library project 源码进行集成,而对于第三方的android-maven-plugin 用的是apklib 格式。

    而现在,官方终于推出一种android library的打包格式,扩展名为*.aar。前面提到,目前android gradle插件并不支持本地直接使用*.aar文件,不过,支持包管理库的引用方式,下面,我为大家说一下,怎么对android library 发布使用。

    打包android library

    对android library 进行打包直接在library项目下面使用gradle build 即可,然后,你就会在 build/libs 目录下看到两个*.aar文件,一个debug包用的,一个是release 下用的,看个人需求使用,这里我们用的是release 版本的 .aar 文件。

    引用脚本跟前面讲的依赖库相似

    1
    2
    3
    dependencies {
        compile(name: 'pulltorefresh', ext: 'aar')
    }

    最后,分享个maven库地址:http://mvnrepository.com/

    来自:http://my.oschina.net/u/1471093/blog/341990

  • 相关阅读:
    C/C++ 公有函数无法返回私有的类对象解决方案
    C/C++ ShowWindow()
    Windows 隐藏控制台
    Windows 关闭win32 控制台
    Windows 开启win32 控制台
    CSS中可以和不可以继承的属性
    css3实现炫酷的文字效果_空心/立体/发光/彩色/浮雕/纹理等文字特效
    CSS position 属性_css中常用position定位属性介绍
    无间歇文字滚动_ 原生js实现新闻无间歇性上下滚动
    好看css搜索框样式_分享8款纯CSS搜索框
  • 原文地址:https://www.cnblogs.com/cheneasternsun/p/4972572.html
Copyright © 2011-2022 走看看