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