『技术分享』—— 我和 Android 推送的时间简史

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 的赞了。

WeaponApp

当然,推送的功能也是少不了的,由于有了前面的经验,集成起来也是相当顺手,不过因为是个人项目就没有考虑,后来同事自学了服务端,顺便也把服务端的极光推送集成了,感兴趣的话可以把项目 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,岂不美滋滋的参赛文章」

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,832评论 25 707
  • 最初了解到极光,是看到极光在知乎发的一篇帖子,关于他们开源的 IM 项目:Aurora IMUI的,从此知道了...
    碳酸氢钠x阅读 6,490评论 56 135
  • 推送技术产生场景: --服务器端主动性: 客户端与服务器交互都是客户端主动的, 服务器一般不能主动与客户端进行数据...
    原军锋阅读 34,538评论 4 60
  • 雨后 天边的晚霞在黄昏里笑了 笑红了半天的云彩 小河里的水也笑了 和天成了一色 岸边的垂柳笑了 招摇着裹了金边的玉...
    Harvest收获阅读 538评论 60 78
  • 去年暑假写的:) 我25岁之前唯一养过的植物是绿豆。丢进水里它就会发芽,当它长到5厘米左右叶子出来了,我从来都不知...
    溶溶月色淡淡清风阅读 462评论 0 0