android 设置 通用吗,Android studio gradle 通用配置简单介绍
前言Gradle 是一种依赖管理工具,基于 groovy 语言。studio 是通过 Gradle 来构建项目的,注:以下代码非运行状态,只是对常用代码做介绍;注释比较详细,不做过多的内容介绍一、project 根目录下的 build.gradlebuildscript {/*** repositories 声明代码托管仓库 jcenter()、mavenCentral()* 代码托管仓库 - 托
前言
Gradle 是一种依赖管理工具,基于 groovy 语言。studio 是通过 Gradle 来构建项目的,
注:以下代码非运行状态,只是对常用代码做介绍;注释比较详细,不做过多的内容介绍
一、project 根目录下的 build.gradle
buildscript {
/**
* repositories 声明代码托管仓库 jcenter()、mavenCentral()
* 代码托管仓库 - 托管了很多Android开源项目,配置后方便在项目中引用开源项目
*/
repositories {
jcenter()
}
/**
* 声明一个Gradle插件,Gradle 应用版本
*/
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
}
}
allprojects {
repositories {
// 1、下载速度快;2、最大的Java仓库;3、操作简单;
jcenter()
// 上传不友好,上传函数库不太方便
mavenCentral()
}
}
// 执行清理任务
task clean(type: Delete) {
delete rootProject.buildDir
}
二、module 中 build.gradle
特别注意:
在library中的build.gradle,buildTypes 默认不执行debug模式,所以在debug模式中的相关配置是不起作用的。
debug与release两种构建类型,主要区别是能否在设备上调试、以及签名不一样,其他代码和文件资源都一样。
applicationIdSuffix是buildType的一个属性,用于配置基于默认applicationId的后缀。
// 该模块为应用程序模块,可以直接运行
apply plugin: 'com.android.application'
// 该模块为库模块,只能作为代码库依附于别的应用程序模块来运行。
apply plugin: 'com.android.library'
// android 配置项目构建的各种属性
android {
// 指定项目的SDK编译版本
compileSdkVersion 26
// 指定项目构建工具的版本
buildToolsVersion "26.0.0"
// defaultConfig 配置更多细节
defaultConfig {
// 指定项目的包名 ,从manifest中读取
applicationId "com.example.zpdemo"
// 指定项目最低兼容的版本
minSdkVersion 15
// 指定的值表示在该目标版本上已经做过充分测试,系统会为该应用启动一些对应该目标系统的最新功能特性,
// Android系统平台的行为变更,只有targetSdkVersion的属性值被设置为大于或等于该系统平台的API版本时,才会生效
targetSdkVersion 25
// App 内部版本号,是一个整数值,主要用于版本升级
versionCode 1
// 版本名称
versionName "1.0"
// 配置测试App的包名,默认情况是application + “.test”
textApplicationId "com.zpan.demo.test"
// 配置单元测试时使用的Runner,默认使用的是InstrumentationTestRunner,如果想使用自定义的Rnnuer,修改这个值就行
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// 默认是umeng的渠道
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
//解决方法数量超过65535的问题,即64k问题
multiDexEnabled true
// multiDex 混淆
multiDexKeepProguard file('multiDexKeep.pro')
// JNI 引用
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
// Java 编译版本为1.8的话,另外在 defaultConfig 里要配置 Jack 编译器
jackOptions {
enabled true
}
}
// java JDK版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
// 多渠道信息配置
productFlavors {
xiaomi {}
googleplay {}
wandoujia {}
}
// buildTypes 指定生成安装文件的主要配置
buildTypes {
// debug 指定生成测试版安装文件的配置,可以忽略不写
debug {
// 是否对代码进行混淆
minifyEnabled false
// 是否清理无用资源,依赖于minifyEnabled
shrinkResources true
// 是否启用zipAlign压缩
zipAlignEnabled true
// 配置是否生成一个可供调试的apk
debuggable false
// 和debuggable类似,配置是否生成一个可供调试Jni代码的apk
jniDebuggable true
// 命名后缀
versionNameSuffix "_release"
// 引用签名配置
signingConfig signingConfigs.release
// 混淆多个文件。指定混淆的规则文件 这里指定了proguard-android.txt文件和proguard-rules.pro文件两个文件
// proguard-android.txt 为默认的混淆文件,里面定义了一些通用的混淆规则
// proguard-rules.pro 可以在该文件中定义一些项目特有的混淆规则
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 配置Proguard混淆使用的配置文件,混淆单个文件,可多次配置
proguardFile getDefaultProguardFile('proguard-android.txt')
}
// release 指定生成正式版安装文件的配置
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// lintOptions 移除lint检查的error
lintOptions {
abortOnError false
}
// 通过修改SourceSets中的属性,可以指定哪些源文件(或文件夹下的源文件)要被编译,哪些源文件要被排除
sourceSets {
/**
* 展示了一个空的sourceSets,它任然可以很好地工作,因为它对每一项属性都有一个默认值。如果使用默认的值的话,
* 在build.gradle中是没有必要再配置一遍的。为了让自己的工程更加有特色一点,你可以修改他们中的任何一项。
*/
main {
}
}
// 签名配置
signingConfigs {
release {
// 签名证书文件路径
storeFile file("D:/Android/test.jks")
// 签名证书文件密码
storePassword "123456"
// 签名证书类型
storeType “”
// 签名证书密钥别名
keyAlias "Test"
// 签名证书文件密钥别名密码
keyPassword "123456"
}
debug {
}
}
}
/**
* 项目的依赖关系 本地依赖、库依赖和远程依赖
* 1、本地依赖:是对本地的jar包或目录添加依赖关系
* 2、库依赖:对项目中的库模块添加依赖关系
* 3、远程依赖:对jcener库上的开源项目添加依赖关系
*
* 远程依赖包含三部分:GROUP_ID:ARTIFACT_ID:VERSION
* GROUP_ID:标识函数库所属组织,命名方式:greenrobot-精确到组织名;squareup-精确到函数库名;
* ARTIFACT_ID:标识函数库名字;
* VERSION:标识函数库版本;
*/
dependencies {
// 本地依赖
compile files('libs/MeiZu_Fingerprint.jar')
// 库依赖
compile project(':zplibrary')
// 远程依赖
compile 'com.android.support:appcompat-v7:26.+'
}
更多推荐
所有评论(0)