Android Gradle配置构建

本文介绍了如何使用Android Gradle配置构建项目,包括通过manifestPlaceholders设置不同应用名和图标,自定义gradle文件管理配置,以及配置签名属性。在debug和release版本中,可以通过buildType进行差异化配置。此外,还提到了productFlavors用于多渠道打包,并展示了如何在Java代码中通过buildConfig获取配置信息。最后,详细说明了如何在gradle中配置签名信息,以便于自动化构建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android Gradle配置构建

使用gradle构建不同的应用名和图标

详情可以参考学习链接 文章链接

对于manifest中字段,可以在gradle中通过manifestPlaceholders来进行配置,具体的写法manifestPlaceholders=[key:value]
例如我想在debug版本和release版本通过appname和icon进行区分的话可以在buildType中进行如下的配置

debug{
	manifestPlaceholders = [app_icon:"@drawable/ic_launcher_debug" ,
							label:"@string/app_name_debug"]
}

然后对应的manifest文件

<application
	android:icon="${app_icon}"		//替换icon
	android:label="${label}"		//替换名字
	tools:replace="android:icon,android:label">	//在进行包合并时,声明替换icon和name		

在release中也可以进行相应的配置,但是如果是多渠道打包的话,则在productFlavors来构建不同的变体,如下示例

productFlavors{
	huawei{
		manifestPlaceholders=[app_icon:"@drawable/ic_huawei",
							label:"@string/app_name_huawei"]
	}
	
	oppo{
		manifestPlaceholders=[app_icon:"@drawable/ic_oppo",
							label:"@string/app_name_oppo"]
	}
	
	xiaomi{
		manifestPlaceholders=[app_icon:"@drawable/ic_xiaomi",
							label:"@string/app_name_xiaomi"]
	}
}

如果配置还需要配置不同的友盟key或者secret的话,同样的方式,只需要在manifestPlaceholders中增加字段就行了

自定义gradle文件

如果配置信息太多的话,可以自定义一个gradle文件中,比如在工程目录下新建一个config.gradle的文件,在里面需要定义一些字段,可以这样写

ext{
	youmeng=[
		app_key:123456,
		app_secret:123456
	]
	
	baidu=[
		app_key:123456,
		app_secret:123456,
		app_name:"百度相关"
	]
}

在module对应的gradle下面,可以通过rootProject来拿到自定义文件中的字段,写法如下

rootProject.ext.youmeng.app_key
rootProject.ext.baidu.app_name

当然有些字段是需要Java代码中需要的,那么就需要通过buildConfig对象来获取,因为每一个module在构建时,都会有一个buildConfig对象的生成,我们可以通过自定义一些字段,来方便自己获取,写法如下buildConfigField(type,key,value)

buildConfigField("String","app_msg","\"hello world\"")     //如果是字符串的话,一定要添加转义符,不然双引号会被过滤掉进行报错
//在Java代码中,只需要通过buildConfig来直接条用就可以了(一下为Java代码)
System.out.println(BuildConfig.app_msg)		//输出 hello world		

当然最重要的是在使用自己自定义的gradle文件时,需要在项目的build.gradle文件中的头部添加 apply from:“config.gradle”,不然会找不到config文件而报错

配置签名等属性

在gradle中配置签名各种信息后,在build的时候,就不需要在进行输入密码之类的具体配置模板

signingConfigs{
	debug{
	}
	release{
		keyAlias:"xxxx"	//对应签名时的keyAlias
		keyPassword:"xxx"		//对应签名是的keyPassword
		storeFile  file("xxx.jks")		//对应签名文件
		storePassword:"xxxx"		//对应签名是的storePassword
		v1SigningEnabled  true		//使用v1签名方式
		v2SigningEnabled  true		//使用v2签名方式
	}
}

在buildType配置中使用签名配置

buildType{
	debug{
		signingConfig signingConfigs.debug
	}
	
	release{
		signingConfig signingConfigs.release
	}
}

关于Android构建的更多信息,请参见官方资料官方链接

Android使用gradle打包的各种配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值