Gradle 配置 Android 工程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle 配置 Android 工程相关的知识,希望对你有一定的参考价值。
# Gradle 配置 android 工程 #
随着Android studio 的普及,gradle 也开始在android 开发着中普及起来。这里分享一下我的grale 脚本以及对gradle的认识。
1.Gradle 的基本结构
整个工程的gradle 由 project build.gradle, seetings.gradle,gradle.properties,module build.gradle 组成。
## 1.project build.gradle ##
projects build.gradle是项目所有模块需要的资源。以及配置各个module中的公共资源,如版本号,build tool 等信息
ext {
applicationId = "com.tracelijing.immediately"
buildToolsVersion = "23.0.2"
compileSdkVersion = 23
minSdkVersion = 14
targetSdkVersion = 23
versionCode = 1
versionName = "1.0.0"
}
## 2.settings.gradle: ##
这个文件是用来配置多模块的,比如你的项目有两个模块module-app,module-tlibrary,那么你就需要在这个文件中进行配置,格式如下:
include ‘:app‘, ‘:tlibrary‘
## 3.gradle.properties: ##
gradle 配置文件,比如可以配置签名相关信息如keystore位置,密码,keyalias等。
## 4.module.gradle: ##
主要是配置每个子module 的细节,上面我们也提到了在root build.gradle 中声明子module 公用的信息,下面我们看下子module 中如何使用 rootProject 的信息。
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
}
}
- android 中 module 的区分主要有以下两中
Android application module
apply plugin: ‘com.android.application‘
android project module
apply plugin: ‘com.android.library‘
- 工程依赖,jar 包管理
导入jar包
` compile files(‘libs/xxx.jar‘)`
导入工程
`compile project(‘:module-A‘)`
导入aar
`compile ‘com.aaa.xxx:core:[email protected]‘`
排除依赖
`compile (group:‘xxx‘,name:‘xxx‘,version:‘xxx‘){
exclude group:‘xxx‘,module:‘xxx‘//module对应的就是artifactId}`
- 签名管理
签名是一个很敏感的东西,所以我们应该妥善的保管。这里我们可以把签名发展本地。
定义一个keystore.properties
store_file=D\:\\Code\\immediately.jks
store_password=123456
key_alias=123456
key_password=123456
signingConfigs {
def Properties props = new Properties()
def propFile = new File(‘signing.properties‘)
if (propFile.canRead()) {
props.load(new FileInputStream(propFile))
signingConfigs {
release {
storeFile file(props[‘store_file‘])
storePassword props[‘store_password‘]
keyAlias props[‘key_alias‘]
keyPassword props[‘key_password‘]
}
debug {
storeFile file(props[‘store_file‘])
storePassword props[‘store_password‘]
keyAlias props[‘key_alias‘]
keyPassword props[‘key_password‘]
}
}
} else {
signingConfigs {
debug {
println ‘signing.properties not found‘
}
}
}
}
- 输出管理
因为需要经常打包,apk 文件和 mapping 文件不在同一处比较麻烦所以重现定义了一下 apk 文件 已经 mapping 文件的输出路径,这样方便了管理资源
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
def intoFile = "D:\\immediateRelease"
if (outputFile != null && outputFile.name.endsWith(‘.apk‘)) {
//这里修改apk文件名
def fileName = "immediatel-${defaultConfig.versionCode}-${releaseTime()}.apk"
output.outputFile = new File(intoFile, fileName)
}
if (variant.getBuildType().isMinifyEnabled()) {
variant.assemble.doLast {
copy {
from variant.mappingFile
into intoFile
rename { String fileName ->
"mapping-${defaultConfig.versionCode}-${releaseTime()}.txt"
}
}
}
}
}
}
## 总结 ##
本篇只讲了 gradle 的基本结构和一些基本配置。
详细请参考 github https://github.com/lijing01/immediately
Gradle 可以做很多事情,之后会进一步的学习。
以上是关于Gradle 配置 Android 工程的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件BuildType 编译类型配置 ⑧ ( versionNameSuffix 配置 | zipAlignEnabled 配置 | initWith 方法 )
Android Gradle 插件Android Gradle 工程结构简介 ( Gradle 默认输出目录 | Gradle 配置目录 | gradlew 可执行文件 )
Android Gradle 插件AaptOptions 配置 ① ( AaptOptions#additionalParameters 附加参数配置 | aapt 工具帮助文档 )
Android Gradle 插件工程根目录下 build.gradle 配置文件 ( 远程仓库配置 | 依赖配置 | 所有子模块配置 | task clean 任务 )
Android Gradle 插件Gradle 基础配置 ⑥ ( Android工程 Gradle 常用命令 | gradlew 可执行文件 | 查看帮助文档 | 查看应用依赖 )
Android Gradle 插件Android 依赖管理 ② ( 为工程配置依赖仓库 | 为工程构建添加依赖仓库 | classpath 引入依赖库 | 配置依赖仓库 )