我和极光那些事 | 我和Android推送的时间简史

关于作者:夏韦子 博客: http://blog.leanote.com/xiaweizi

2017年 3月3日

「极光」跟我的渊源真的是极深的,说到极光,不得不追溯到 2017年 3月3日,当时正做毕设项目趣闻。基本的预期功能已经实现了,开始考虑集成推送功能,鉴于水平和时间的约束,决定还是集成第三方推送最为保险。

然后百度了一下「第三方推送」,映入眼帘的便是「极光推送」,毫不犹豫的选择了它。在集成过程中也是比较顺利,在收到第一条推送后,喜悦的心情无以言表,不得不说大平台就是强。

2017年 3月7日

3月7日,找到了第一份实习工作(毕业后也在这里转了正),坐标「南京」。入职不久,老大开始让我接手公司项目中的推送模块。然后我把公司推送的逻辑大致看了一下,无论是设置tag、或者是处理通知栏点击事件处理、还是自定义消息推送,对于刚入职的我是相当的复杂。毕竟在之前集成的毕设项目中,逻辑处理很少,只是简单的收到通知、点击并打开应用...

逻辑整体的差不多,开始了主要的任务--升级到新版的极光推送

当我看到项目极光当前的版本,硬是被吓一跳。

我记得当时极光已经到3.0.0+的版本了,看来升级果断是有必要的!还有一点,我们公司是「极光」的VIP,在原来推送的基础上,多了一项非常强大的功能!集成产商的推送(小米、华为和魅族)。

这意味着,如果在「小米、华为和魅族」的大部分的设备上,推送不再走极光的通道,而是走设备的产商通道。

什么意思呢?就拿公司老版本的项目来说,不仅集成了极光推送还集成了小米推送,不仅服务端需要推送两份推送,就连客户端自己都要对设备的类型进行判断,如果是「小米」设备就调用「小米」的接口。那如果集成了产商推送,就不需要此操作,你只需提供应用的APPID等其他配置信息即可,华为和魅族同样!

那么走产商通道又意味着什么呢?有集成过推送的小伙伴应该知道,推送能准确到达在于一个长连接,假如应用的进程被杀死,推送也便收不到。假如集成了产商的推送,几遍进程被杀死,推送还是可以正常受到的,不过仅限于基本的推送,不包括自定义推送。

这个升级的过程也是相当的坎坷,我记得这部分的功能也是「极光」的测试功能,正好我们集成过来一并测试...不过还有有一位热心的小姐姐,习惯称之为「大侠」!这个称号是当时她的昵称,一直都这么叫过来的。每次遇到问题都能不厌其烦的为我解惑。

其中让我印象最为深刻的,是那天公司项目已经到了发版周期的最后两天,在华为的设备上推送没有收到。这可把我急的,第一时间就是找「大侠」帮忙,可能因为我在 QQ 上表达的不是很清楚,小姐姐看起来比我 还着急,直接让我跟她通电话讨论一下具体的原因,这让我意想不到。还好最后是解决了问题,在此说声谢谢

2017年 9月19日

9月19日,工作半年了,打算和大神同事一起维护一个开源项目,于是就有了WeaponApp的诞生,目前也快到 600 的赞了。

当然,推送的功能也是少不了的,由于有了前面的经验,集成起来也是相当顺手,不过因为是个人项目就没有考虑,后来同事自学了服务端,顺便也把服务端的极光推送集成了,感兴趣的话可以把项目clone下来。

在这个项目中初次尝试了集成「极光IM」,官方的接口也是很详细,并且还有自己的用户系统,登录和注册不需要自己实现了,不过目前的用户还是很少...

2017年 10月26日

10月26日,咱们公司另一交易项目「原油」开始进行大版本的升级,基本上属于重头做起。不用多说,推送的部分还是由我负责,鉴于又是「极光」的VIP,直接将「贵金属」项目的推送部分挪过来,去除不需要的部分,修改一些基础的配置,最后也是顺利的完成了。

不知不觉中,推送功能已经在4个项目中集成了:

公司的就不方便列出来了,加在一块也有数十万的用户了(绝大部分是公司)...整体的过程还是很顺利的,无论是集成的步骤,还是后续的服务都很完美,这可能就是「极光」做的那么大的原因吧。

赘述

说完「极光」与我的渊源,接下来就大概说一下集成的过程。

官网已经有详细的集成介绍,我就不赘述了。官网集成,只是总结一下集成的步骤,一共三步:

  1. 添加依赖 手动集成,需要拷贝相应的so文件到制定的目录 自动导入Android Studio直接添加依赖
  2. 添加配置文件 拷贝官网的AndroidManifest数据到项目app module 下的 AndroidManifest中,并更换对应的包名和APPID。 调用「极光」接口进行初始化
  3. 添加接收器 创建自定义Receiver用于处理推送的消息。

一般这样集成就可以正常收到推送了。如果遇到问题也别慌,冷静下来。从我的经验来看,最好在每个关键的地方打上日志,方便运行时候查看和后面遇到问题方便定位。还有就是日志的TAG,最好和极光的日志过滤规则保持一致,比如’JPush‘。

当你有下面的日志输出,就证明已经集成成功了!

[JPushInterface] action:init
.......
[PushService] Login succeed!

成功的日志只有这一个,错误的情况就各种各样了,可以对照之前的日志进行分析,比如:

很有可能是因为 so 文件加载失败...

还有好多东西,我后续在添加吧,感兴趣的小伙伴可以很我交流交流,希望能帮到你!

「本文系极光征文 | 写写文章就能赢 Filco,岂不美滋滋的参赛文章」

原文发布于微信公众号 - Android机动车(JsAndroidClub)

原文发表时间:2018-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web前端教室

[前端常见病] 之 后端数据还没有,前端怎么进行?

标题所描述的情况,一般出现在后端进度滞后,前端又积累了一些工作量的情况下。在业务需求已经基本清晰的时候,前端的进度是很快的,UI设计出设计图,前端小兄弟切页面,...

241100
来自专栏木子昭的博客

Eagle 自带爬虫功能的图片数据库

42130
来自专栏Java社区

十个Java实战开发中必备的小策略

为什么开发要用GIT呢?因为要给自己一颗后悔药吃。只要经常commit,文件就可以随时回退到某个时刻的内容,再也不担心别人改了自己的文件,自己误删了文件,特别是...

32870
来自专栏Timhbw博客

小白搭建博客教程-购买域名(1)

2016-06-0923:38:55 发表评论 438℃热度 上一回说道:小白搭建博客教程之流程,这次趁着端午节写完它,也算是一个了结。 ? 教程有4篇: 购...

1.2K80
来自专栏ThoughtWorks

在前端性能优化中应用HTTP缓存的三部曲|洞见

Spike先生是Best Experience公司的IT运营部门主管,他的团队成功地利用Http Cache优化了前端工程。 Spike将通过三个Scenari...

33240
来自专栏FreeBuf

盗版软件也疯狂之六耳猕猴显神通

近日,笔者闲暇时光下载了一个小游戏进行玩耍,游戏结束后没再管它,当下次点亮手机时,惊奇的发现在手机主界面中心有一应用推荐轮播的悬浮窗。对于移动端技术人员来说,手...

15030
来自专栏数据和云

DBA生存警示:业务高峰误操作案例及建议

编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》一...

35860
来自专栏FreeBuf

骚操作 | 操控大楼灯光打游戏

*本文原创作者:volcanohatred,本文属于FreeBuf原创奖励计划,未经许可禁止转载

8810
来自专栏Java技术栈

同样是5年的开发经验,差距在哪里了?

我现在就职于一家中型的互联网企业,去年年底入职的薪资和待遇都很不错,但是总结起来说的好听就是全村人的希望,说的不好听就是一个人几乎干了一个项目组的事。

11460
来自专栏菩提树下的杨过

企业应用通用架构图

晚上把公司应用的架构结合之前研究的东西梳理了下,整理了一张架构规划图,贴在这里备份 ? 下面是个人理解的做架构的几个要点: 1、系统安全 这是首要考虑的,以这张...

26060

扫码关注云+社区

领取腾讯云代金券