我们 Android 开发者在使用极光推送时可能会发现,在通过官方控制台进行推送时。只有 iOS 区分了开发和生产环境,而 Android 则没有。但实际开发中又确实经常需要针对开发和生产环境分别来推送,这里就讲解下 JPush 如何实现 Android 应用的不同环境推送。

首先,我们在极光推送官网控制台中创建两个应用,一个用于生产环境,一个用于开发环境。就像这样:

这里推荐开发环境的包名为生产环境的包名加上 .debug 后缀。即包名分别类似于:

  • release: com.jpush.test
  • debug: com.jpush.test.debug

这样我们就得到了两个 AppKey,之后来设置下应用的 AndroidManifest.xml,在填写 JPUSH_APPKEY 的地方这样写:

<meta-data
android:name="JPUSH_APPKEY"
android:value="${JPUSH_APPKEY_VALUE}"/>

将和 JPush 相关的配置中的您应用的包名替换为 ${PACKAGE_NAME}

然后再设置应用的 build.gradle 文件:

buildTypes {
release {
...
manifestPlaceholders = [JPUSH_APPKEY_VALUE: "生产环境应用的 APP_KEY",
PACKAGE_NAME : "com.jpush.test"]
}
debug {
...
applicationIdSuffix ".debug"
manifestPlaceholders = [JPUSH_APPKEY_VALUE: "开发环境应用的 APP_KEY",
PACKAGE_NAME : "com.jpush.test.debug"]
}
}

到这里就已经大功告成了,通过 Android Studio 直接运行或打包时 Build Type 选择为 debug 生成的应用便是开发环境。而在打包时 Build Type 选择为 release 生成的应用则为生产环境,即正式环境

为什么可以这样做?原因就在于 Android 应用的包名其实是由 build.gradle 中的 applicationId 决定的。applicationId 和 AndroidManifest.xml 中 package 具体有什么不同,可以看看这篇文章:

Android Package Name vs. Application ID

作者:Hevin - 极光

原文:JPush Android 推送如何区分开发、生产环境

知乎专栏:极光日报

JPush Android 推送如何区分开发、生产环境的更多相关文章

  1. Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 下面是一些知识点介绍,后期将会带领大家进行代码实战: 一.Android实现推送方式解决方案: 1.推 ...

  2. 使用JPush(极光推送)实现远程通知

    使用JPush(极光推送)实现远程通知 远程推送是APP 必备的功能, 现在第三方的 SDK 已经做的非常完备了, 在 iOS10.0出来之后, 极光推送也及时更新了他的 SDK, 今天小试了一下效果 ...

  3. Android推送方案

    一. 常见的推送原理: 1)轮询(Pull)方式:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等.而且你还要考虑轮询的频率,如果太慢可能 ...

  4. android推送方式

    本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...

  5. Mosquitto搭建Android推送服务(一)MQTT简介

    总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...

  6. atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99

    atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99 1.1. 云推送有推送次数或频率的限制吗? 1 1.2. 推送的消息长度 1 1.3. 离线消 ...

  7. Android推送通知指南

      Android推送通知指南 在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是 ...

  8. Jpush极光推送的一些心得

    在集成极光推送的时候,test完全正常.部署到服务器后只发送一条推送之后推送不继续发送.经排查: 2018-06-28 10:24:26.394 [ThreadPoolTaskExecutor-4] ...

  9. Android推送分析

     cpu多核利用能够实现Android推送的吞吐量. 讲明白这点,我们需要了解Android推送的基本原理了.如果实现C(客户端)与server(客户端)实时通讯了.这里有两种思路了: 1.一种是定时 ...

随机推荐

  1. 爬虫解析:XPath总结

    1.加载 XML 文档 所有现代浏览器都支持使用 XMLHttpRequest 来加载 XML 文档的方法. 针对大多数现代浏览器的代码: var xmlhttp=new XMLHttpRequest ...

  2. 虚拟化技术:Xen与KVM的对比

    作为开源的虚拟化技术,对比Xen和KVM可以看到,Xen以6个无与伦比的优势领先:更好的可用资源.平台支持.可管理性.实施.动态迁移和性能基准. 可用资源:Xen的问世要比KVM早4年之久(两者分别是 ...

  3. Ajax之XMLHttpRequest

    XMLHttpRequest对象 XMLHttpRequest  提供客户端同http服务器通讯的协议 一:创建 IE : http_request = new ActiveXObject(" ...

  4. Hadoop压缩之MapReduce中使用压缩

    1.压缩和输入分片 Hadoop中文件是以块的形式存储在各个DataNode节点中,假如有一个文件A要做为输入数据,给MapReduce处理,系统要做的,首先从NameNode中找到文件A存储在哪些D ...

  5. JDBC-自定义数据库工具类(DBService)

     写在前面的话:      (1)使用JDBC,必须要使用对应的jar包,该笔记中使用jar包:mysql-connector-java-5.1 .6-bin.jar      (2)使用连接池,一定 ...

  6. Exception (3) Java exception handling best practices

    List Never swallow the exception in catch block Declare the specific checked exceptions that your me ...

  7. 编写高质量代码改善C#程序的157个建议——建议119:不要使用自己的加密算法

    建议119:不要使用自己的加密算法 很多人认为自己写的加密算法才是安全的,因为该算法只有“自己知道”.很遗憾,这是大错特错. 首先,我们不是秘密学专家,如果我们随随便便写个算法就称得上是加密算法的话, ...

  8. 编写高质量代码改善C#程序的157个建议——建议78:应避免线程数量过多

    建议78:应避免线程数量过多 在多数情况下,创建过多的线程意味着应用程序的架构设计可能存在着缺陷.经常有人会问,一个应用程序中到底含有多少线程才是合理的.现在我们找一台PC机,打开Windows的任务 ...

  9. 团体程序设计天梯赛L1-022 奇偶分家 2017-03-22 17:48 81人阅读 评论(0) 收藏

    L1-022. 奇偶分家 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定N个正整数,请统计奇数和偶数各有多少个? 输入格式 ...

  10. 【LeetCode C++】Two Sum

    题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...