Android(安卓)Studio Gradle使用笔记
16lz
2021-01-26
Android Studio Gradle使用笔记
[张武]
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。 —— 百度百科
Android Studio Gradle是android studio中用来进行自动化构建配置的,在Gradle中可以配置apk生成的版本、签名等。下面将就当前的学习,做一个说明。
- Android Studio Gradle使用笔记
-
- Android Studio Gradle 简介
- 一Gradle 根节点介绍
- 1android 节点
- 2dependencies 节点
- 二android 节点详细介绍
- 1配置sdk版本 和 buildTool版本
- 2AppID版本号等设置
- 3配置各种buildtype的签名设置
- 4配置app的buildTypereleasedebugdev
- 5配置生成APK的文件名和地址
- 6配置app的dex分包参数
- 三尾声
-
Android Studio Gradle 简介
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。 —— 百度百科
Android Studio Gradle是android studio中用来进行自动化构建配置的,在Gradle中可以配置apk生成的版本、签名等。下面将就当前的学习,做一个说明,建议在看这篇笔记之前,简单了解一下Gradle的语法。
一、Gradle 根节点介绍
apply plugin: 'com.android.application'android { ...}dependencies { ...}
1、android{ } 节点
- 配置sdk版本和buildTool版本
- 配置appId、版本号等基础设置
- 配置dex分包参数
- 配置签名信息
- 配置buildtype等
2、dependencies { } 节点
- 引入本地依赖库文件
compile fileTree(dir: 'libs', include: ['*.jar'])
- 引入依赖的本地mudale
compile project(path: ':PullToRefresh')
- 引入依赖的远程第三方库
//xutils3 compile 'org.xutils:xutils:3.3.32' //gson compile 'com.google.code.gson:gson:2.4' //glide compile 'com.github.bumptech.glide:glide:3.6.1' //eventbus compile 'de.greenrobot:eventbus:2.4.0' //multi dex compile 'com.android.support:multidex:1.0.1'
二、android{ } 节点详细介绍
1、配置sdk版本 和 buildTool版本
compileSdkVersion 21 buildToolsVersion "21.0.3"
2、AppID、版本号等设置
defaultConfig { applicationId "com.jeff" //appId唯一标识当前app minSdkVersion 9 //兼容的最低sdk版本 targetSdkVersion 24 //目标sdk versionCode 10 //版本号 versionName "1.1.0" //版本名 multiDexEnabled true //是否分包 }
3、配置各种buildtype的签名设置
//配置keystore签名 signingConfigs { release { //release版签名 storeFile file("zhangwu.jeff") storePassword "123456" keyAlias "zhangwu" keyPassword "123456" v2SigningEnabled false } debug{ //debug版签名 storeFile file("debug.jeff") storePassword "123456" keyAlias "zhangwu" keyPassword "123456" v2SigningEnabled false } }
4、配置app的buildType(release、debug、dev)
buildTypes { debug{ ...//测试环境 } dev{ ...//开发环境 } release{ ...//线上环境 }
这里设置不用的buildtype会在android studio中生成对应的编译选项,双击下图中的编译类型会生成对应的包
具体配置buildType,举例如下
dev{ //将资源文件string中的app_name 设置为 shareApp_dev resValue("string","app_name","shareApp_dev") //在DefaultConfig.java中新建String类型的SEVER_ADDRESS,值为localhost:8080/share buildConfigField"boolean","SEVER_ADDRESS","localhost:8080/share" //设置是否生成debug版的APK debuggable true //配置当前buildType的签名信息 signingConfig signingConfigs.release // minifyEnabled true //配置混淆文件 proguardFiles 'proguard.config' //是否zip对齐 zipAlignEnabled true //移除未使用的资源 shrinkResources true }
5、配置生成APK的文件名和地址
//修改生成的文件 applicationVariants.all{variant-> variant.outputs.each{output-> def formattedDate=new Date().format('yyyyMMdd') def fileName if(variant.buildType.name=="release"){ //输出apk名称改为ShareApp_10_20160305.apk fileName="ShareApp_${defaultConfig.versionCode}_${formattedDate}.apk" }else if(variant.buildType.name=="debug"){ //输出apk名称改为ShareApp_10_20160305_debug.apk fileName="ShareApp_${defaultConfig.versionCode}_${formattedDate}_debug.apk" }else if(variant.buildType.name=="dev"){ //输出apk名称改为ShareApp_10_20160305_dev.apk fileName="ShareApp_${defaultConfig.versionCode}_${formattedDate}_devg.apk" } //输出apk文件 output.outputFile = new File(output.outputFile.parent,fileName) //将apk复制到指定文件夹 copy{ from('build/outputs/apk') into('C:/apkOutput') include(fileName) } }
6、配置app的dex分包参数
dexOptions { javaMaxHeapSize "4g" //java虚拟机堆内存最大值设为4g,避免oom preDexLibraries = false //设置对第三方lib不做preDex处理 additionalParameters = //每个dex包方法数限制在4000以内 ['--multi-dex', '--set-max-idx-number=40000'] }
三、尾声
gradle相关还有很多需要学习的,先记录到此,以后学习再补充。
更多相关文章
- Android(安卓)Log 配置解决方案
- Android(安卓)Studio2.3正式版带SDK安装教程 亲测有效!
- Android(安卓)Studio下xUtils开源库导入问题
- (一) 基于Windows的Eclipse安装Android(安卓)NDKR7
- Android(安卓)PhotoSelector高仿微信图片选择器
- Android(安卓)Studio 之 Gradle 安装配置和编译
- Gradle命令为Unity导出Jar备忘
- Unity 打包错误:CommandInvokationFailure: Failed to build apk
- android判断当前sdk版本以及是否是平板