Android—Gradle教程(五)

前言

在上一篇中,讲解了AGP的基础配置以及多渠道打包,在这一篇中将会进一步对AGP进行讲解。

1、Android{}

android{},由AGP引入的其他节点:

  • resValue
  • buildConfigField
  • adbOptions

这些节点在不会默认创建需要开发者手动定义。那么这些节点对应有什么功能呢?

1.1 resValue

看这个命名感觉像是资源相关的,直接上手代码看看。

android{
	...略
    defaultConfig {
		...略
		resValue 'string', 'aaa', 'aaa'
		...}
	
	flavorDimensions 'channel'
    productFlavors {
        baidu {
            dimension 'channel'
            //resValue 'string', 'app_name', '自定义名称' // 不能有重复的资源节点
            resValue 'string', 'bbb', 'nnnn'
        }
        ali {
            dimension 'channel'
        }
    }
    
...}

结合昨天的内容,这里可以看出,在defaultConfig与自定义产品风味里面的baidu里面分别定义了resValue这个属性,现在构建编译看看效果。

在这里插入图片描述
如图所示

当构建成功时,我们打开构建成功对应文件夹里面的内容可以看出:刚刚我们通过关键字resValue创建的字符串资源以及帮我们构建在资源文件里面了,通过注释也表明了对应生成的资源是通过什么产品维度创建的。既然在资源文件了,那应该能够正常使用吧。现在试试效果

在这里插入图片描述
如图所示

当构建成功时,通过Gradle生成的资源依然能够正常使用。难么问题来了,既然Gradle能生成资源,那它能不能修改资源呢?直接上手试一下就知道了!

在这里插入图片描述
如图所示

右边就是自带string里面的资源值,里面的内容时自带的;而左边就是我们要准备修改的值,现在运行构建下看看效果。
在这里插入图片描述
当构建项目的时候,就报错了,仔细看控制台,意思就是重复资源不可通过resValue定义。

现在总结下这个resValue的作用

  • 使用resValue可以为当前的构建产品增加资源文件属性。
  • resValue ‘string’, ‘name’, ‘value’
    • string表示资源标签的类型。name,资源属性名称。value,对应的属性值。
    • 注意,name如果已经存在,就不能进行覆盖。
  • 不同的产品风味都可以添加自己的resValue,如果要所有产品风味都添加到,可以在defalutConfig{}进行添加。

1.2 buildConfigField

  • 使用buildConifgField为产品修改BulidConfig中的类型。
  • BuildConfig是在产品构建时自动生成的java类,里面存放了一些静态常量,编译后可以直接使用类中的常量。
  • buildConfigField ‘String’, ‘fieldName’, ‘value’
    • String表示字符串类型,可以是其它Java类型,但是要注意,这里做的是文本的替换。所以,如果是其它类型,可以使用全类名的方式。
    • filedName表示属性名,value则是对应的值,由于是文本替换,如果value是字符串,需要自己加入双引号

概念说了这么多,直接上手代码看看效果。

android {
    compileSdkVersion 30

    defaultConfig {
		...略
		
        buildConfigField 'Boolean', 'DEBUG', 'true'
        buildConfigField 'int','taskId', '16'
        buildConfigField 'String','BASE_URL','"http:www.baidu.com"'
        
	...}
    productFlavors {
    
        baidu {
            dimension 'channel'
//            resValue 'string', 'app_name', '自定义名称' // 不能有重复的资源节点
            resValue 'string', 'bbb', 'nnnn'
            buildConfigField  'String','CHANNEL_VALUE','"BAIDU"'
        }

        ali {
            dimension 'channel'
        }
    }
}

从这段代码可知,在defaultConfig 与自定义产品唯独baidu里面 分别用了buildConfigField关键字,然后我们编译构建看看效果。
在这里插入图片描述

如图所示

系统将我们在Gradle通过buildConfigField关键字创建的那些属性定义在BulidConfig中了。而且对应注释也标明了来自于哪个产品维度。既然属性定义在BulidConfig中了,那么肯定也能拿到逻辑代码里面用吧,试试看看效果:

在这里插入图片描述
效果完美运行,到这好像又掌握一种多渠道打包获取渠道号相关的知识点。而且我们请求接口的时候,也可以将BaseUrl定义在Gradle里面了。

那么新的问题来了,我不想在工程目录里面的Gradle里面写死我的BaseUrl类似的信息,想单独放在一个文件里该怎么操作呢?

这就要用到之前学过的知识点了:脚本插件

所以定一个属于自己的脚本:

MyConfig.gradle

ext{
     DEBUG = true
     BASE_URL="https://juejin.cn/user/2357827986264942"
     taskId=15
     LOGIN_URL=BASE_URL+"/xx/xx/login"
}

这里我将BASE_URL改成了我的掘金首页,其他也随意修改了一下,随后将这个脚本引入工程项目并修改之前的获取方式可得:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

apply from:'../MyConfig.gradle'

android {
    compileSdkVersion 30

    defaultConfig {
        applicationId "com.hqk.gradledemo04"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        resValue 'string', 'aaa', 'aaa'

        buildConfigField 'Boolean', 'DEBUG', "${DEBUG}"

        buildConfigField 'int','taskId', "${taskId}"

        buildConfigField 'String','BASE_URL',"\"${BASE_URL}\""

        buildConfigField 'String','LOGIN_URL',"\"${LOGIN_URL}\""
	
	}

}

这里先是引入了本地脚本插件,随后将里面的属性值已经改成动态获取。现在重新编译构建看看效果。

在这里插入图片描述
看这效果,完美运行成功。

1.3 adbOptions

在android{}中,可以为构建类型添加adb设置。直接上手代码:

android{

	...// adb的操作选项
    adbOptions {
        installOptions '-r', '-s','-d'
        //-l, -t, -d, -g
        // -d 允许降级安装
        // -g 为应有获取所有运行时的权限

        // adb install有 l, r, t, s, d, g 这6个选项。
        // -l: 锁定该应用程序
        // -r: 替换已经存在的应用程序,强制安装
        // -t: 允许测试包
        // -s: 把应用装到sd卡上
        // -d: 允许进行降级安装,也就是应用的版本比手机上的版本低
        // -g: 为该应用授予所有运行时的权限
    }

	...}

这个很简单,就一些配置,可以跟多个,每一项功能注释都写得很全面。读者可以自己尝试玩一下。

结束语

到这,这一篇差不多讲解完了,AGP的相关配置到这篇也差不多结束了,从下一篇开始,将会开始讲解AGP实战相关。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你可以通过官网下载链接https://gradle.org/releases/来下载gradle的安装包。 下载完成后,你需要将gradle解压到你想要保存的目录中。比如,你可以将gradle解压到C:\gradle目录下。 接下来,你需要配置gradle的环境变量。打开控制面板,选择系统和安全,然后选择系统。点击高级系统设置,然后点击环境变量。在系统变量中,找到Path变量,并点击编辑。在变量值的末尾添加gradle的安装路径,比如C:\gradle\bin。 完成这些步骤后,你需要配置gradle的阿里云镜像。在gradle安装目录下的init.d文件夹中创建一个init.gradle文件,并在文件中添加如下配置: allprojects { repositories { maven { url "https://maven.aliyun.com/repository/gradle-all" } } } 保存文件后,你的gradle下载安装配置就完成了。你可以通过运行gradle命令来验证是否成功安装和配置了gradle。 希望这个教程对你有帮助!如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android studio gradle环境变量配置教程](https://download.csdn.net/download/weixin_38501826/14018586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [gradle的安装配置及使用](https://blog.csdn.net/Leoon123/article/details/125717416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值