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

Gradle 基本语法

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‘) }

这样就可以搞定了。

时间: 2025-01-01 23:03:15

android Studio 使用gradle 参数解释及多渠道打包的相关文章

Android Studio之Gradle多渠道打包

Android Studio之Gradle多渠道打包 由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这事就简单了. 友盟多渠道打包 废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段: <meta-data android:name="UMENG_CHANNEL" android:value="Channel_ID&qu

Android Studio之Gradle

自从13年Google I/O大会上推出了Android Studio,我就逐步将开发工作从Eclipse转向了Android Studio,也越来越嫌弃老态龙钟的Eclipse.相比较而言,Android Studio无论从运行速度上还是对于Android开发的支撑上都完爆Eclipse:前者极具科技感的UI更是牢牢抓住了我的心!:) 话不多说,先上张碉堡了的截图: Android Studio默认采用Gradle编译项目:Gradle基于Groovy语言,Groovy是一种运行于JVM的动态

Android 项目利用 Android Studio 和 Gradle 打包多版本APK

在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_api.com,release_api.com,dev_api.com等等. 不同的版本对应了不同的 api 域名,还可能对应不同的 icon 等. 如果每次都在打包前修改我们都手动来修改,这样实在是不够方便. 但如果我们使用了 Android Studio 和 Gradle,这个麻烦就可以轻松省去.

提高Android Studio中Gradle执行效率

尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58 你是否感觉到Android Studio构建速度太慢?我也有这感觉. 幸运的是,这有很多可以提高构建速度的技巧.这些技巧目前还在实验并且有可能是不安全的,如果你觉得构建时间太长而且很痛苦的话,尝试一下这些技巧还是很有价值的.我已经按照下面所描述的试过在代码改动很少的情况下构建时间下降了2.5秒.希望对你有帮助. Android Studio使用Gradle来构建工程.目前Gradle的版本为2.2.最近的版

【Android Studio】Gradle DSL method not found:&#39;android()&#39;

如图所示: 参考:http://www.jianshu.com/p/d370d41fb7da 又遇到了这个问题: 参考:http://stackoverflow.com/questions/24204436/error1-0-plugin-with-id-android-not-found 然后是这个问题: 我也是醉了…… [Android Studio]Gradle DSL method not found:'android()'

android studio 更新 Gradle错误解决方法(Gradle sync failed)

android studio 更新 Gradle错误解决方法 Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing Gradle Project ,有时新建项目的时候报 Gradle Project Compile Error 等等相关的问题 解决这些问题办法是 首先打开android studio项目 找到项目目录gradle\wrapper\gradle-wrapper.properties这个文件 内容如下

在Android studio中用gradle打 jar 包(Mac下)

这两天公司要重构项目,以前的项目在eclipse上,准备迁移到Android studio上,需要对项目打包,于是我学习了Android studio中gradle打包的内容.我在公司用的Mac,在家用的Windows,两种平台下,打包基本一样的,这里主要说下在Mac系统下的过程. 在Andorid studio中的Terminal用的是Mac的终端,所以要使用Terminal的gradle命令打包,先要配置下mac中的gradle环境,打开mac上的终端: (1) 输入命令:open .bas

Android Studio:Gradle DSL method not found: &#39;runProguard()&#39;

Android Studio发布了新的1.0版,更新之后却发现原来在0.8下面正常的项目编译失败了,从报错上来看是卡在gradle上面. Gradle DSL method not found: 'runProguard()' 找不到 runProguard() 这个方法 最终的原因很让人无语,原来gradle的工程师跟谷歌负责安卓这一块的是一个尿性!!根本就不管上下版本的开发兼容性!! Android Studio 1.0 默认采用了新版本的gradle,升级时,也会自动的将项目下的build

Android studio: Gradle DSL method found: &#39;android()&#39;!及Gradle DSL method not found: &#39;runProguard()&#39;错误

Gradle DSL method not found: 'runProguard()'错误 出现这个错误是因为在新版本的Gradle中runProguard()方法已经被废弃,取而代之的是minifyEnabled,因此只要将每个module下的build.gradlew文件中的runProguard改成minifyEmabled即可.如下图: Gradle DSL method found: 'android()'错误 和上个错误一样这个也是因为在新版本的Gradle中android()方法