Android多渠道集成多个功能逻辑实现的方法

以自动更新功能为例,360、百度都要求集成各自的更新sdk,如何用同一套代码去解决。

1、建立两个module,分布将百度、360的sdk放进去。

2、在两个module下创建一个相同包名、类名的类

图片描述

3、在同名类下实现同名方法,方法内实现各自逻辑。

第一个实现百度的逻辑 
图片描述 
另一个同名类实现360的逻辑 
图片描述

现在两个module都封装好了相同的类跟方法,下一步就是根据渠道去打包调用不同的module了

4、在.gradle里根据不同渠道集成不同的module

import java.util.regex.Matcher
import java.util.regex.Pattern

def String getCurrentFlavor() {
    Gradle gradle = getGradle()
    String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()

    Pattern pattern;

    if (tskReqStr.contains("assemble"))
        pattern = Pattern.compile("assemble(\\w+)(Release|Debug)")
    else
        pattern = Pattern.compile("generate(\\w+)(Release|Debug)")

    Matcher matcher = pattern.matcher(tskReqStr)

    if (matcher.find())
        return matcher.group(1).toLowerCase()
    else {
        return "";
    }
}

dependencies {
    def currentFlavor = getCurrentFlavor()
    //baidu、360都耍流氓,只能集成他们自家的自动更新sdk,不然审核不通过;360必须单独打包
    if (currentFlavor.equals("_360")) {
        compile project(':antoupdate_360')
    } else {
        compile project(':autoupdate')
    }
}

最后注意集成不同module的渠道要分开打包

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值