自定义配置文件,适配渠道更新

来源:互联网 发布:姚明职业生涯场均数据 编辑:程序博客网 时间:2024/05/19 15:22
  • 1.多个自动升级sdk的时候
    比如想把包放入360和百度的时候,呵呵,大家都懂的,360是最近才开始必须接入他的升级sdk才能上架的。这里就不吐槽了,公司要求要去上架这些应用商城。
    打一次包就能搞定这些接入问题,因为我一开始接入的是友盟自动升级,需求的增加就越来越多,ok开始配置:
    先来做个假设:假设上面的abc包是360升级的,wandoujia是友盟升级的,baiduyun是百度升级的
    定义一个名字为AUTO_TYPE的String类型常量 默认值为umeng放在defaultConfig里面

    defaultConfig {    buildConfigField "String", "AUTO_TYPE", "umeng"}

    2.然后配置渠道包

    productFlavors {      abc {          manifestPlaceholders = [UMENG_CHANNEL_VALUE: "abc"]          buildConfigField "String", "AUTO_TYPE", "360"      }  wandoujia {         manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]         buildConfigField "String", "AUTO_TYPE", "umeng"    }     baiduyun {          manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baiduyun"]          buildConfigField "String", "AUTO_TYPE", "baiduyun"      }  }

    next

    Build->Clean ProjectBuild->Rebuild Project


生成了我们想要的文件,就可以运用了

if (ConstantField.AUTO_TYPE_BAIDU.equals(BuildConfig.AUTO_TYPE)){              BDAutoUpdateSDK.silenceUpdateAction(this);//百度静默更新              L.e(TAG,"baidu更新");    }else if(ConstantField.AUTO_TYPE_360.equals(BuildConfig.AUTO_TYPE)){              UpdateManager.checkUpdate(this);              L.e(TAG,"360更新");    }else{              UmengUpdateAgent.update(this);              L.e(TAG,"umeng更新");}

添加是否打印log这个就无需再说了吧,方法类似,把string改成boolean即可
放两个所学习到的文章

1 0
原创粉丝点击