码迷,mamicode.com
首页 > 移动开发 > 详细

android Studio 使用gradle 参数解释及多渠道打包

时间:2016-05-12 20:11:52      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:

build.gradle 

buildscript { //设置脚本的运行环境
       
	 repositories {//支持java 依赖库管理(maven),用于项目的依赖
            mavenCentral()
        }

        dependencies {//依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件,如果前面定义了repositories{}maven 库,使用maven的依赖
                      //的时候只需要按照用类似于com.android.tools.build:gradle:2.1,gradle 就会自动的往远程库下载相应的依赖,就是给studio制定gradle 版本
            classpath ‘com.android.tools.build:gradle:2.1.0‘
        }
    }

    apply plugin: ‘android‘//声明构建的项目类型

    android {//设置编译android项目的参数
        compileSdkVersion 17
    }

在项目的build.gradle中能使用到下面这些

apply plugin: ‘com.android.application‘//说明module的类型,com.android.application为程序,com.android.library为库

android {

    compileSdkVersion 22//编译的SDK版本

    buildToolsVersion "22.0.1"//编译的Tools版本

    defaultConfig {//默认配置

        applicationId "com.ding.app"//应用程序的包名

        minSdkVersion 8//支持的最低版本

        targetSdkVersion 19//支持的目标版本

        versionCode 52//版本号

        versionName "3.0.1"//版本名

    }

    sourceSets {//目录指向配置

        main {

            manifest.srcFile ‘AndroidManifest.xml‘//指定AndroidManifest文件

            java.srcDirs = [‘src‘]//指定source目录

            resources.srcDirs = [‘src‘]//指定source目录

            aidl.srcDirs = [‘src‘]//指定source目录

            renderscript.srcDirs = [‘src‘]//指定source目录

            res.srcDirs = [‘res‘]//指定资源目录

            assets.srcDirs = [‘assets‘]//指定assets目录

            jniLibs.srcDirs = [‘libs‘]//指定lib库目录

        }

        debug.setRoot(‘build-types/debug‘)//指定debug模式的路径

        release.setRoot(‘build-types/release‘)//指定release模式的路径

    }

    signingConfigs {//签名配置

        release {//发布版签名配置

            storeFile file("fk.keystore")//密钥文件路径

            storePassword "123"//密钥文件密码

            keyAlias "fk"//key别名

            keyPassword "123"//key密码

        }

        debug {//debug版签名配置

            storeFile file("fk.keystore")

            storePassword "123"

            keyAlias "fk"

            keyPassword "123"

        }

    }

    buildTypes {//build类型

        release {//发布

            minifyEnabled true//混淆开启

            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-project.txt‘//指定混淆规则文件

            signingConfig signingConfigs.release//设置签名信息

        }

        debug {//调试

            signingConfig signingConfigs.release

        }

    }

    packagingOptions {

        exclude ‘META-INF/ASL2.0‘

        exclude ‘META-INF/LICENSE‘

        exclude ‘META-INF/NOTICE‘

        exclude ‘META-INF/MANIFEST.MF‘

    }

    lintOptions {

        abortOnError false//lint时候终止错误上报,防止编译的时候莫名的失败

    }

}

dependencies {

    compile fileTree(dir: ‘libs‘, exclude: [‘android-support*.jar‘], include: [‘*.jar‘])   //项目文件依赖--(本地依赖)编译lib目录下的.jar文件

    compile project(‘:Easylink‘)//编译附加的项目

    compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.3‘//编译来自Jcenter的第三方开源库

}

多渠道打包

对于多渠道包,android 插件提供了一个名为Product Flavor{} 的配置,用于进行多渠道打包。

productFlavors {
	playstore {
			packageName=‘com.ding.app.playstore‘
	}
	hiapk {
			packageName=‘com.ding.app.hiapk
	}
}
这种是在渠道不同并且需要包名不同的情形下使用。
如果在使用友盟,百度,或者360渠道时,需要在AndroidManifest.xml中加入他们sdk需要加入的一些配置项。这时就需要几个
AndroidManifest.xml来区分不同的渠道。
所以在项目的build.gradle中的sourceSets做一下配置
sourceSets {
    main {
        manifest.srcFile ‘AndroidManifest.xml‘
        java.srcDirs = [‘src‘]
        resources.srcDirs = [‘src‘]
        aidl.srcDirs = [‘src‘]
        renderscript.srcDirs = [‘src‘]
        res.srcDirs = [‘res‘]
        assets.srcDirs = [‘assets‘]
    }
        
    hiapk {
      	manifest.srcFile ‘hiapk/AndroidManifest.xml‘
    }    	
    playstore {
        manifest.srcFile playstore /AndroidManifest.xml‘
} instrumentTest.setRoot(‘tests‘) }

这样就可以搞定了。





android Studio 使用gradle 参数解释及多渠道打包

标签:

原文地址:http://blog.csdn.net/u012545354/article/details/51351445

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!