android设置gradle变量,Android应用开发之关于gradle替换Android Manifest中的属性变量的方法教程...

本文将带你了解Android应用开发之关于gradle替换Android Manifest中的属性变量的方法教程,希望本文对大家学Android有所帮助。

项目中我有多个activity想设置为启动的Activity,也就是设置成MainActivity,需要在Manifest中对activity配置:

......

如果每次编译版本都去手动修改的话,不仅麻烦还容易忘记。

可以用gradle配置来解决这个问题。

defaultConfig {

......

//   先在默认配置中定义两个变量main_activity_key和oem_main_activity_key,并赋初始值

manifestPlaceholders += [main_activity_key: "android.intent.action.MAIN",

oem_main_activity_key:   "android.intent.action.NO_MAIN"]

//不能当独写两个manifestPlaceholders,必须是一个数组,不然编译通不过

......

}

// 客户版本

productFlavors {

OemA {

buildConfigField "int", "oem_type", "0"

}

OemB {

buildConfigField "int", "oem_type", "0"

}

}

现在我的OemA客户和OemB客户,各自都有自己的MainActivity.

android:name=".ui.activity.OemAActivity"

android:launchMode="singleInstance"

android:screenOrientation="landscape"

android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

android:name=".ui.activity.OemBActivity"

android:launchMode="singleInstance"

android:screenOrientation="landscape"

android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

现在我想在编译OemA的时候,把OemAActivity变成MainActivity,而OemBActivity为非MainActivity.

// 遍历OEM版本,在目标客户中根据需要替换main_activity_key和oem_main_activity_key的值

productFlavors.all {

flavor ->

if (flavor.name.contains("OemA")) {

flavor.manifestPlaceholders = [main_activity_key:   "android.intent.action.NO_MAIN",

oem_main_activity_key: "android.intent.action.MAIN"]

}

else if (flavor.name.contains("OemB")) {

flavor.manifestPlaceholders = [main_activity_key:   "android.intent.action.MAIN",

oem_main_activity_key: "android.intent.action.NO_MAIN"]

}

}

然后在Manifest中修改两个Activity的action属性

android:name=".ui.activity.OemAActivity"

android:excludeFromRecents="true"

android:launchMode="singleInstance"

android:screenOrientation="landscape"

android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

//   修改属性

android:name=".ui.activity.OemBActivity"

android:excludeFromRecents="true"

android:launchMode="singleInstance"

android:screenOrientation="landscape"

android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

// 修改属性

最后编译 gradlew assembleOemARelease

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值