gradle使用技巧之全局变量
赠送源码:https://github.com/yugu88/MagicWX。
《最完整的Android逆向知识体系》
我们常用的gradle设置全局变量的方式如下:
${System.env.xx}
rootProject.ext.xx
gradle.buildToolsVersion
Android Studio 3.0版本之后对gradle的配置支持越来越完善了。我们Android使用gradle工程,也经常使用gradle的各种便捷配置。但是gradle对于Android Studio的支持并没有想象中的那么完善。比如版本Android Studio 3.2配置出一些错误,它并不会报错。依然可以正常打包。
在主app目录下的build.gradle中我们经常这样写:
android {compileSdkVersion rootProject.ext.android.compileSdkVersionbuildToolsVersion rootProject.ext.android.buildToolsVersiondefaultConfig {applicationId "com.syinix.android"minSdkVersion rootProject.ext.android.minSdkVersiontargetSdkVersion rootProject.ext.android.targetSdkVersionversionCode 1versionName "${versionMajor}.${versionMinor}.${versionPatch}"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}signingConfigs {debug {keyAlias 'androiddebugkey'keyPassword 'android'storeFile file('/Users/kokawaki/.android/debug.keystore')storePassword 'android'}releaseConfig {storeFile file("${System.env.MY_APP_PRIVATE_KEY}")keyAlias "${System.env.MY_APP_ALIAS}"storePassword "${System.env.MY_APP_STORE_PW}"keyPassword "${System.env.MY_APP_PW}"}}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])//官方库implementation rootProject.ext.supportLibs
}
或者如下这样写:
android {def globalConfig = rootProject.extensions.getByName('ext')compileSdkVersion globalConfig['androidCompileSdkVersion']buildToolsVersion globalConfig['androidBuildToolsVersion']defaultConfig {minSdkVersion globalConfig['androidMinSdkVersion']targetSdkVersion globalConfig['androidTargetSdkVersion']applicationId globalConfig['androidApplicationID']versionCode globalConfig['androidVersionCode']versionName globalConfig['androidVersionName']ndk {abiFilters "armeabi-v7a"}}
}
第一个关键字:
${System.env.xx}是指在在根目录下的gradle.properties文件里去添加参数如下图:
第二个关键字:
rootProject.ext.xx的用法大类分为2种:
一种是在根目录下的build.gradle文件里去添加如下图:
还有一种写法就清爽一点了,把它放到另一个单独的xxx.gradle文件中去,然后在根目录下的build.gradle文件中去引入,如下图:
根目录下的build.gradle文件中去引入的写法就一行代码,在顶部写下 apply from: "config.gradle"
,这种很方便更新组件库、官方库版本等只需要改另一个地方而不需要去动app目录下的build.gradle文件。
这个gradle文件可以放在任何地方,例如下图:(如果我们配置并非统一成27的版本,如:27和28掺杂也不会报错)
第三个关键字:
gradle.buildToolsVersion 其实和rootProject.ext.xx的用法差不多,只是变量存放的位置不同。。
在settings.gradle中加入全局变量作为配置。
赠送源码:https://github.com/yugu88/MagicWX。
《最完整的Android逆向知识体系》
gradle使用技巧之全局变量相关推荐
- Gradle 使用技巧(一)
前言 Gradle是使用Groovy语言构建,所以既然是语言,那么就有他的语法,而不是简单的配置项.关于Gradle有时间会出一系列的文章. 1. 自定义apk输出名称 (3.0) 本配置为Andro ...
- Android Gradle实用技巧/如何自动为APK瘦身
<Android Gradle 权威指南>终于发售上市了,这本书里包含了很多实用技巧.实战经验以及原理分析,今天这篇文章主要介绍下如何自动为APK瘦身的. 随着工程越来越大,功能越来越多, ...
- Gradle 使用技巧(四) - 如何定位和解决依赖冲突
1. 前言 随着业务的复杂度加深,我们免不了要引入许多的第三方开源库,也不可避免的会出现依赖冲突的错误.最常见的是V7.V4包之间的冲突. 2. 如何定位依赖冲突 解决依赖冲突很简单,难得是如何去定位 ...
- Gradle 使用技巧(二) - SO/NDK过滤
引言 作为一个Android开发人员,so对于我们来讲是极其常见的,各种大厂的SDK中都包含着各种各样的so,而so也是apk瘦身的重要一环,减少so平台的数量,可以极大限度的减少apk的大小. An ...
- Android Gradle实用技巧——APK文件名中加上SVN版本号,日期等
有时候,我们会希望能把APK文件名上带上打包日期,打包时svn的版本号,应用版本号等.当然这些也可以手动添加,但是手动的话也未免太不优雅了,而且可能会出错. 利用Gradle,我们可以让打包出来的ap ...
- lua小技巧——lua全局变量的检测
相信用lua的人都遇到过由于拼写错误把局部变量变成全局变量的情况,如何避免这个问题呢? 直接上代码! local mt = {__index = function(_, key)local info ...
- C语言技巧一 全局变量定义
假设文件A.c 定义了一个全局变量 int g_var1; 在文件B.c 中引用的话,需要先声明一下外部引用 extern int g_var1; 如果全局变量很多的话,或者多个文件都使用了该全局 ...
- 【Python技巧】全局变量global和局部变量local
全局变量就是放在函数外面的变量 函数内可以直接访问全局变量 函数内定义的变量是局部变量 同名的局部变量会覆盖全局变量 函数内修改全局变量需要用global 全局变量不是真的全局变量,只是在模块内全局变 ...
- Gradle使用技巧
Gradle peer not authenticated 在更新Gradle的依赖包时,经常会发生peer not authenticated的异常,导致Gradle无法编译.解决方法有两个,一个是 ...
最新文章
- 伍六七带你学算法 入门篇——最后一个单词的长度
- Gitlab CI更多内容学习(二)
- 什么是Singleton?
- 最优二叉树(哈夫曼树)知识点
- python文件读取与输出_python基本文件操作(文件输入和输出)
- opencv画虚线_(四十四)OpenCV中的机器学习-SVM
- linux内核那些事之struct page
- visual studio 安装教程
- ios开发学习--选项卡(Tab Bar) 效果源码分享--系列教程
- 华三交换机ping大包命令_cmd如何ping大包
- winrar注册码激活码
- 2021年中国研究生数学建模竞赛E题参考思路
- layui使用treeTable实现树形表格
- 大数据培训(第一季) java基础-徐培成-专题视频课程
- WindowsXP音量控制程序的安装
- 读名老中医之路笔记(三)
- Matplotlib绘图9种经典风格,你喜欢哪种?
- 计网(第五版)3-41
- 适合创业起步看的书推荐
- Studying Recommendation Algorithms by Graph Analysis