前沿:

极光推送是我们在实际生活中使用比较多的一种推送方式,成本低廉,不少公司都是使用的他,换工作之后,当前公司还是使用的极光推送。

问题/需求想要效果:

当前的公司需要测试环境的只能够推送测试,正式环境的只能够推送正式,应为IOS方存在可以直接通过配置至之后实现当前需求想要的要求,但是android却没有,官方提供的是通过创建两个app来实现测试对测试,正式对正式

官方提供的解决方式:

下面是具体的实现:

开发环境:AS 2.1.1.应为当前项目中也包含微信分享和高德地图相关的问题,顾本人也提供了如何实现包名修改后,其他的如何实现的分享和地图查看相关:

1.给项目导入相关支持的包

1)极光

   //极光推送    compile 'cn.jiguang.sdk:jpush:3.0.5'    // 此处以JPush 3.0.5 版本为例。    compile 'cn.jiguang.sdk:jcore:1.1.2'    // 此处以JCore 1.1.2 版本为例。

2)其他依赖包,可以更具自己的实际使用来导入相关包

2.自己通过代码实现相关的功能实现

此处省略1万字,具体实现请根据实际需求实现

3.通过配置话实现需求想要效果

  buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'            manifestPlaceholders = [                    JPUSH_PKGNAME: "包名",                    JPUSH_APPKEY : "release环境下的key",                    GAODE_APPKEY:"release环境下高德key",                    WEATCH_APPID:"relase环境下微信key",                    JPUSH_CHANNEL: "developer-default",                    ]        }        debug {           minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'           manifestPlaceholders = [                    JPUSH_PKGNAME: "报名.debug",                    JPUSH_APPKEY : "测试环境下对应的推送key",                    GAODE_APPKEY:"测试环境下对应的高德地图key",                    WEATCH_APPID:"测试环境下微信对应的appid",                    JPUSH_CHANNEL: "developer-default",            ]            }

只要做了上面的操作就可以了,我们编译之后就可以看到,我们运行平时走的debug环境,打relase的包都是relase环境。就能够区分开。

缺点:

这样做的缺点也很明显,android很多平台申请都是通过packageName+keystore作为唯一标识,如上的操作,就相当于我们又两个app,顾很多情况下都需要申请两套,尤其是在项目还有支付类的时候,就会特别觉得,申请成本比较大。

优势:

能够很好的测试对应debug模式,正式对应relase模式,不会正式推送到测试来,测试的也不会推送到正式来,很好的做到了完全区分开。

推荐使用:

这种方法也是极光官方推广的比较权威的大家认可的方法,也算是比较perfect的方法 。

方法二:通过标签和别名进行区分[不推荐]

在很多情况下,不少的需求会觉得这样做成本比较高,他们希望能够只申请一个应用就完成测试和正式区分开,哪怕产生一些比较明显的bug,如果你完全不care 系统推送是否推送到时正式还是测试可以通过现在我们要说的方法。这也是极光官方以及本人并不推荐的方法,程序员只是需求的实现方,这样会很明显的造成测试不便,也没有比较好的完成需求的要求效果。

一.App端已进入就区分环境并进行设置标签或者别名,开始分组

  if(Contens.URL.equal(“正式环境”)){    //注册别名/标签    .....//此处省略一万字  }else if(Contens.URL.equal("测试环境")){    //注册别名/标签    .....//此处省略一万字  }

二.这步也需要后端接口人员进行接口支持,需要通过别名或者标签进行环境判断

后端实现标签/别名区分环境进行代码写入此处省略一万字

如上这种也是可以实现测试环境和正式环境的区分,但因确定/不足明显,顾并不推荐使用,在前期公司的项目中,有使用这种方法[方法二],而最后导致正式测试系统推送混乱,并且测试的时候也不是很方便,尤其是不敢进行通过平台推送。

希望本篇文章对你有用

更多相关文章

  1. tcping测试服务器TCP端口
  2. 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Andr
  3. Android自动化单元测试(上)
  4. 主题:四,android四大组件基础介绍及打电话,发短信简单应用 &单元测
  5. [置顶] Android下通过pocketsphinx实现离线语音识别的环境搭建和
  6. Android串口开发初体验(windows开发环境)
  7. Android使用百度推送实现即时通讯的功能
  8. Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来
  9. 简单轻松!通过USB数据线,让Android(安卓)Studio连接到自己的安卓手

随机推荐

  1. Android防止过快点击造成多次事件执行(防
  2. IntentFilter使用
  3. Android(安卓)常用代码集合
  4. Android(安卓)编译环境 - 安装工具包
  5. android NDK学习篇3之two-libs——使用(多
  6. Android属性之excludeFromRecents
  7. 一些关于RelativeLayout属性的用法
  8. 【Android(安卓)开源系列】之视频处理框
  9. Android(安卓)支持多屏幕机制
  10. android事件分发机制