Android Gradle 配置选项合集
//让gradle 引入构建安卓app的插件
apply plugin: 'com.android.application' //自定义变量, 使用的时候不需要 ext 前缀
ext {
minSdkVersion = 15
prop2 = "foo"
} //自定义变量
def customProp2 = ["targetSdkVersion":23, "prop2":"bar"]; //自定义变量
// 根据日期自动生成build号
def calendar = Calendar.getInstance();
def tt = String.format("%d%02d%02d%02d",
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH)+1,
calendar.get(Calendar.DAY_OF_MONTH),
calendar.get(Calendar.HOUR_OF_DAY)); // 读取local.properties文件
def Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream()) android {
compileSdkVersion 24
buildToolsVersion "24.0.0" //签名选项
signingConfigs {
demoSignCfg {
keyAlias PROPERTY_FROM_GRADLE.PROPERTIES
//读取配置
keyPassword properties.getProperty("key.password")
storeFile file('demo.keystore')
storePassword properties.getProperty("key.password")
}
} //编译选项
compileOptions {
//使用jdk1.8 编译
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
} //代码检查选项
lintOptions {
//检查发布构建
checkReleaseBuilds rootProject.ext.checkReleaseBuilds
//遇到错误停止
abortOnError false
} //打包选项
packagingOptions {
//去除的文件
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
} //资源打包选项
aaptOptions {
//不压缩的文件
noCompress 'foo', 'bar'
//过滤文件
ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
} //编译dex选项
dexOptions {
//堆栈内存最多4g
javaMaxHeapSize "4g"
} //配置
configurations {
//去掉所有的 com.android.support:support-annotations 依赖
all*.exclude group: 'com.android.support', module: 'support-annotations';
} //默认全局配置选项
defaultConfig {
applicationId "com.example.gradle_test"
minSdkVersion customProp.minSdkVersion
targetSdkVersion customProp2.targetSdkVersion
//使用生成的版本号
versionCode Integer.parseInt(tt)
versionName "1.0" //Manifest 里用的占位符: <... android:label="${activityLabel}" />
manifestPlaceholders = [ activityLabel:"defaultName"]
//设置BuildConfig 字段
buildConfigField "String", "BASE_URL", '"https://www.baidu.com/"'
} //构建变种, flavor 和 defaultConfig类型相同
productFlavors {
//变种1
flavor1 {
packageName "com.example.flavor1"
versionCode 20
//覆盖defaultConfig的字段
buildConfigField "String", "BASE_URL", '"https://www.baidu.com/"'
} flavor2 { }
} //配置各种目录
sourceSets {
//主要
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
} //测试资源路径
instrumentTest.setRoot('tests') debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
} //构建类型
buildTypes {
//debug类型(只是个名字而已)
debug {
//app id 后缀: com.example.app.debug
applicationIdSuffix ".debug"
} //发布类型(只是个名字而已)
release {
//关闭混淆
minifyEnabled false
//使用的混淆文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //签名选项
signingConfig signingConfigs.demoSignCfg
//移除无用资源
shrinkResources true //版本名后缀
versionNameSuffix ".0" //指定打包文件名
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
//输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk
def fileName = "apk_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
} //过滤abi库
ndk {
//只打包如下平台的so
abiFilters "x86", "armeabi-v7a", "armeabi", 'mips'
}
} //自定义
jnidebug {
// 继承自上面的debug.
initWith debug applicationIdSuffix ".jnidebug"
jniDebuggable true
}
} //依赖仓库
repositories {
maven { url "https://jitpack.io" }
}
} //依赖管理
dependencies {
//编译/运行时依赖
compile fileTree(dir: 'libs', include: ['*.jar'])
//$rootProject.ext 指的是 项目的那个build.gradle里面定义了一个ext 变量
compile ("com.android.support:design:$rootProject.ext.SupportVersion"){
//不引用如下包
exclude module: 'support-v4'
exclude module: 'appcompat-v7'
//不传递引用
transitive false
}
compile (project(":libray")){
//不引用如下包
exclude module: 'support-v4'
//不传递引用
transitive false
}
//测试依赖 testCompile 'junit:junit:4.12' //外部提供, 不打包 provided 'com.android.support:appcompat-v7:23.4.0' //falvor1需要的依赖, f1Compile, f1Provided..... flavor1Compile 'com.android.support:appcompat-v7:24.0.0' } //清理构建后资源的task task clean(type: Delete) { delete rootProject.buildDir }
gradle android dsl 属性大全 http://google.github.io/android-gradle-dsl/current/index.html
以上配置如有错误, 还请指出
Android Gradle 配置选项合集的更多相关文章
- 老李分享:android app自动化测试工具合集
老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...
- Android Gradle配置
解决问题 错误: Could not find the AndroidManifest.xml file, going up from path //打开app build.gradle文件加入以下代 ...
- Android模拟器配置选项说明
Memory Options是模拟器的运行内存大小,类比电脑内存大小,就是在设置->应用程序中,正在运行标签页下面显示的那个大小Internal storage是模拟器内置存储空间大小,用于存放 ...
- android动画源码合集、动态主题框架、社交app源码等
Android精选源码 仿MIUI果冻视图-BouncingJellyView 一个快速易用的动态主题框架 android动画效果集合源码 android使用Kotlin开发的Dribbb ...
- Android gradle 配置
gradle https://www.cnblogs.com/qianxudetianxia/p/4948499.html flavor https://blog.csdn.net/user11223 ...
- android学习笔记 对话框合集
package com.zhangbz.dialog; import android.app.Activity; import android.app.AlertDialog; import andr ...
- Android下的软件合集
在平常使用Android手机的时候,选择一个好的软件可以做到事半功倍的效果,所以在此总结一下,加速我们的工作与生活效率 1) ConnectBot ConnectBot是一个Android操作系统上的 ...
- Android编程实用代码合集
1.android dp和px之间转换public class DensityUtil { /** * 根据手机的分辨率从 dip 的单位 转成为 px(像素) */ public static in ...
- Android 开发常用工具合集
在 Android 开发中经常使用到的小功能,用于记录开发的那些事^_^ 1. 获取 release 和 debug 版本的 SHA1 public static String getSHA1(Con ...
随机推荐
- 【虚拟化实战】容灾设计之四VPLEX
作者:范军 (Frank Fan) 新浪微博:@frankfan7 VPLEX等存储设备的出现,可以实现双活数据中心,最大程度的有效利用运算和存储资源. 在“容灾设计之三Stretched Clust ...
- [置顶] C# WINCE调节屏幕亮度
在wince里面保存屏幕亮度的值保存在注册表HKEY_CURRENT_USER\ControlPanel\\Backlight\Brightness里面,值的范围是0-100,所以要改变屏幕的亮度,只 ...
- 面向对象程序设计-C++_课时14对象组合_课时15继承
对象组合,就是一个类的对象作为另外一个类的成员,涉及类的对象,对象是实体,玩实 继承,涉及类,类是概念,玩虚 public: 所有人都可以接触 private: 数据放private protecte ...
- C#高级编程三十天----泛型结构,泛型方法,泛型托付
泛型结构 泛型结构和泛型类差点儿是一直的,仅仅是泛型结构没有继承的特性..NET平台提供的一个泛型结构是(可空类型)Nullablle<T>.可空类型的引入,主要是为了解决数据库语言中的数 ...
- ASP连接sql server实例解析
1.首先确定自己的iis没有问题 2.其次确定自己sqlserver没有问题 然后在iis的文件夹wwwroot里,建立一个文件 名为testSqlServer.asp,编写代码例如以下就可以 < ...
- commons-lang 包常用方法
package com.java.utils; import java.util.Iterator; import java.util.Map; import org.apache.commo ...
- WCF:System.Security.Cryptography.CryptographicException: 密钥集不存在
WCF使用IIS部署时,使用x509证书验证,在创建证书并正确配置程序后,访问出现错误提示: System.Security.Cryptography.CryptographicException: ...
- Javascript基础篇小结
转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器 ...
- svm评价指标公式
在做svm分类试验时,对于结果的处理,仅用一种指标很难得到正确评估算法的效果.所以,一般要用到precision(精确率),recall(召回率),F-measure.accuracy(准确率)四个指 ...
- Oracle分析函数之开窗子句-即WINDOWING子句
Oracle的分析函数,对我们进行统计有很大的帮助,可以避免一些子查询等操作,在统计中,我们对开窗函数的接触较少,下面主要介绍下开窗函数的使用; http://www.itpub.net/thread ...