星空网 > 软件开发 > 操作系统

使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中meta

       转载请说明来源:   最近lz 在开始做一个新的Demo, 在项目中集成了bugly用于收集项目中的崩溃日志, 集成Bmob用于作为后台数据库, 集成了友盟用于集成第三方分享, 当然了, 这些都有很多方案可以选择, 到底采用哪种还是根据自己的喜好或者主要说是公司的具体要求, lz 这里主要说的是, 集成这些东西, 每次都要在manifest.

       总结了几篇文章, 网上关于这些知识也比较零散, 我在学习这些之前, 也根本不知道还有这样的方法. 所以说不知道并不可怕, 可怕的是不知道自己不知道. 

       1. 全局变量配置, 可以用于统一管理版本号或者依赖库, 在根目录build.gradle文件中定义如下:  

ext {
compileSdkVersion = 25
buildToolsVersion = "25.0.2"
minSdkVersion = 16
targetSdkVersion = 25
versionCode = 1
versionName = "1.0"
applicationId = "www.lz.com.XXX"
filePath = "lz.jks"
alias = "alias"
pwd = "pwd"
v7version = "25.3.1"
buglyAppId = "XXX"
buglyChannel = "Android 端 2017-08-18 测试版"
}
app/build.gradle 文件中引用如下:
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId rootProject.ext.applicationId
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

signingConfigs {
mycustom {
storeFile file(filePath)
storePassword pwd
keyAlias alias
keyPassword pwd
}
}
2. 使用gradle 在编译时动态配置Android Manifest:
在新版本的gradle中, processManifest这个方法被移除掉了, 而提供了一个新的功能manifestPlaceholders, 我们可以在AndroidManifest中定义一个变量, 在build.gradle中动态的替换掉, 十分方便, 语法也十分简单.
对比上面的功能, 我们需要动态替换bugly 的appkey, 需要在AndroidManifest中定义一个变量
<!-- Bugly 配置APP信息 start -->
<!-- 配置APP ID -->
<meta-data
android:name="BUGLY_APPID"
android:value="${bugly_app_id}" />
<!-- 配置APP版本号 -->
<meta-data
android:name="BUGLY_APP_VERSION"
android:value="${bugly_version}" />
<!-- 配置APP渠道号 -->
<meta-data
android:name="BUGLY_APP_CHANNEL"
android:value="${bugly_channel}" />
<!-- Bugly 配置APP信息 end -->
接着, 我们在app/build.gradle文件中定义, buglyAppId 按照上面方法一, 在根目录build.gradle文件中定义
buildTypes {
release{
manifestPlaceholders = [bugly_app_id: buglyAppId, bugly_channel: buglyChannel, bugly_version: versionName]
signingConfig signingConfigs.mycustom
}
}
3. 由衷感谢这两篇文章的作者:

原标题:使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中meta

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流