赠送源码: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使用技巧之全局变量相关推荐

  1. Gradle 使用技巧(一)

    前言 Gradle是使用Groovy语言构建,所以既然是语言,那么就有他的语法,而不是简单的配置项.关于Gradle有时间会出一系列的文章. 1. 自定义apk输出名称 (3.0) 本配置为Andro ...

  2. Android Gradle实用技巧/如何自动为APK瘦身

    <Android Gradle 权威指南>终于发售上市了,这本书里包含了很多实用技巧.实战经验以及原理分析,今天这篇文章主要介绍下如何自动为APK瘦身的. 随着工程越来越大,功能越来越多, ...

  3. Gradle 使用技巧(四) - 如何定位和解决依赖冲突

    1. 前言 随着业务的复杂度加深,我们免不了要引入许多的第三方开源库,也不可避免的会出现依赖冲突的错误.最常见的是V7.V4包之间的冲突. 2. 如何定位依赖冲突 解决依赖冲突很简单,难得是如何去定位 ...

  4. Gradle 使用技巧(二) - SO/NDK过滤

    引言 作为一个Android开发人员,so对于我们来讲是极其常见的,各种大厂的SDK中都包含着各种各样的so,而so也是apk瘦身的重要一环,减少so平台的数量,可以极大限度的减少apk的大小. An ...

  5. Android Gradle实用技巧——APK文件名中加上SVN版本号,日期等

    有时候,我们会希望能把APK文件名上带上打包日期,打包时svn的版本号,应用版本号等.当然这些也可以手动添加,但是手动的话也未免太不优雅了,而且可能会出错. 利用Gradle,我们可以让打包出来的ap ...

  6. lua小技巧——lua全局变量的检测

    相信用lua的人都遇到过由于拼写错误把局部变量变成全局变量的情况,如何避免这个问题呢? 直接上代码! local mt = {__index = function(_, key)local info ...

  7. C语言技巧一 全局变量定义

    假设文件A.c 定义了一个全局变量 int  g_var1; 在文件B.c 中引用的话,需要先声明一下外部引用  extern int g_var1; 如果全局变量很多的话,或者多个文件都使用了该全局 ...

  8. 【Python技巧】全局变量global和局部变量local

    全局变量就是放在函数外面的变量 函数内可以直接访问全局变量 函数内定义的变量是局部变量 同名的局部变量会覆盖全局变量 函数内修改全局变量需要用global 全局变量不是真的全局变量,只是在模块内全局变 ...

  9. Gradle使用技巧

    Gradle peer not authenticated 在更新Gradle的依赖包时,经常会发生peer not authenticated的异常,导致Gradle无法编译.解决方法有两个,一个是 ...

最新文章

  1. 伍六七带你学算法 入门篇——最后一个单词的长度
  2. Gitlab CI更多内容学习(二)
  3. 什么是Singleton?
  4. 最优二叉树(哈夫曼树)知识点
  5. python文件读取与输出_python基本文件操作(文件输入和输出)
  6. opencv画虚线_(四十四)OpenCV中的机器学习-SVM
  7. linux内核那些事之struct page
  8. visual studio 安装教程
  9. ios开发学习--选项卡(Tab Bar) 效果源码分享--系列教程
  10. 华三交换机ping大包命令_cmd如何ping大包
  11. winrar注册码激活码
  12. 2021年中国研究生数学建模竞赛E题参考思路
  13. layui使用treeTable实现树形表格
  14. 大数据培训(第一季) java基础-徐培成-专题视频课程
  15. WindowsXP音量控制程序的安装
  16. 读名老中医之路笔记(三)
  17. Matplotlib绘图9种经典风格,你喜欢哪种?
  18. 计网(第五版)3-41
  19. 适合创业起步看的书推荐
  20. Studying Recommendation Algorithms by Graph Analysis

热门文章

  1. Gym 101194D Ice Cream Tower
  2. Windows下无法新建文件夹
  3. 计算广告 读书笔记 计算广告的核心问题
  4. Java 理论与实践: 线程池与工作队列
  5. vue-element-admin使用常见问题
  6. Nhibernate 基础关系映射
  7. redis hash
  8. 算法竞赛进阶指南第一章--题解
  9. 脚本配置文件(通过一个案例解释下什么叫脚本配置文件)
  10. [BZOJ1177][Apio2009]Oil