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.compileSdkVersion
    buildToolsVersion rootProject.ext.android.buildToolsVersion

    defaultConfig {
        applicationId "com.syinix.android"
        minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
        versionCode 1
        versionName "${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逆向知识体系》

### 回答1: 在软件开发中,使用idea作为开发工具,gradle作为构建工具是非常普遍的。然而,由于国内网络环境的特殊性,有些开发者在使用这两个工具时,可能会遇到下载速度慢甚至无法下载的情况。为了解决这个问题,建议大家可以考虑使用国内镜像。 国内镜像是指在国内搭建的软件镜像站点,一般包含了国外软件的完整副本,并提供了国内优质的网络访问接口。使用国内镜像,不仅能够加快软件的下载速度,还可以减少因下载失败而导致的开发时间浪费。 对于idea全局的使用,我们可以在File -> Settings -> Appearance & Behavior -> System Settings -> HTTP Proxy中,勾选“Auto-detect proxy settings”和“Use HTTP proxy”,并在“HTTP Proxy host”和“HTTP Proxy port”中输入镜像站点的地址和端口号。具体的地址和端口号可以自行在网上搜索或咨询相关技术人员。 对于gradle使用,我们需要在gradle的配置文件中加入如下配置: ``` allprojects { repositories { // 使用国内阿里云镜像 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } } } ``` 这段代码表示在所有的项目中,将maven的下载地址修改为阿里云的镜像。类似地,我们也可以使用其他优质的国内镜像站点,如华为云、清华大学等。 总之,使用国内镜像可以提高软件的下载速度并减少下载失败的情况。建议开发者在使用idea和gradle时,尽可能使用本地的镜像站点来加快下载速度。 ### 回答2: 在使用Android Studio进行开发时,我们经常会使用Gradle来构建项目。而Gradle使用需要从远程仓库下载很多依赖,但GitHub在国内访问速度往往较慢,因此我们可以使用国内的镜像来加速Gradle的下载。 国内镜像的使用可以通过配置Gradlebuild.gradle文件来完成。具体步骤如下: 1. 打开项目的build.gradle文件。 2. 在文件末尾添加以下代码: ``` allprojects { repositories { // 添加阿里云的Maven仓库 maven { url 'https://maven.aliyun.com/repository/public' } } } ``` 3. 点击Sync Now进行同步。 在添加了阿里云的Maven仓库后,Gradle会首先从该仓库中下载依赖包,速度较快。如果该仓库没有所需的依赖包,Gradle会自动从其他仓库下载。 除了阿里云,国内还有其他的镜像可以使用,比如由清华大学维护的镜像,使用方法也类似,只需要将maven的地址替换成对应的镜像地址即可。 使用国内镜像可以大大加快Gradle的下载速度,提升Android Studio的使用体验。 ### 回答3: 在使用idea编写Java代码的时候,我们通常都会使用gradle作为依赖的管理工具。但是由于gradle官方仓库位于国外,下载速度非常慢,所以我们可以考虑使用国内镜像来加速下载。 首先,我们需要在build.gradle文件中进行配置。在repositories块中,可以添加maven的国内镜像地址。例如: repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } } 此时gradle就会优先从阿里云的镜像仓库中下载依赖,从而提高下载速度。 如果您使用的是Gradle Wrapper(gradlew),则需要在gradle.properties文件中加入以下内容: systemProp.http.proxyHost=127.0.0.1 systemProp.http.proxyPort=3128 systemProp.https.proxyHost=127.0.0.1 systemProp.https.proxyPort=3128 这里的代理端口可以根据自己的需要进行修改,这里我们以3128为例。这样就可以通过代理服务器来下载Gradle和相关依赖,提高下载速度。 除此之外,我们还可以通过使用其他的国内镜像仓库来加速下载,如中央仓库的清华大学镜像、Gradle插件的中国镜像等等。在repositories和buildscript的依赖块中都可以配置这些镜像地址,从而达到加速的效果。 总之,使用国内镜像来加速gradle的下载是一种非常实用的技巧。在实际的项目中,我们可以根据具体情况进行配置,从而提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值