2017 年 3 月 3 日
「極光」跟我的淵源真的是極深的嘲叔,說到極光亡呵,不得不追溯到 2017 年 3 月 3 日,當(dāng)時正做畢設(shè)項目趣聞借跪≌海基本的預(yù)期功能已經(jīng)實現(xiàn)了,開始考慮集成推送功能,鑒于水平和時間的約束歇由,決定還是集成第三方推送最為保險卵牍。
然后百度了一下「第三方推送」,映入眼簾的便是「極光推送」沦泌,毫不猶豫的選擇了它糊昙。在集成過程中也是比較順利,在收到第一條推送后谢谦,喜悅的心情無以言表释牺,不得不說大平臺就是強(qiáng)。
2017 年 3 月 7 日
3 月 7 日回挽,找到了第一份實習(xí)工作(畢業(yè)后也在這里轉(zhuǎn)了正)没咙,坐標(biāo)「南京」。入職不久千劈,老大開始讓我接手公司項目中的推送模塊祭刚。然后我把公司推送的邏輯大致看了一下,無論是設(shè)置 tag
墙牌、或者是處理通知欄點擊事件處理涡驮、還是自定義消息推送,對于剛?cè)肼毜奈沂窍喈?dāng)?shù)膹?fù)雜喜滨。畢竟在之前集成的畢設(shè)項目中捉捅,邏輯處理很少,只是簡單的收到通知虽风、點擊并打開應(yīng)用...
邏輯整理的差不多棒口,開始了主要的任務(wù)--升級到新版的極光推送。
當(dāng)我看到項目極光當(dāng)前的版本焰情,硬是被嚇一跳陌凳。
我記得當(dāng)時極光已經(jīng)到 3.0.0+
的版本了剥懒,看來升級果斷是有必要的内舟!還有一點,我們公司是「極光」的 VIP,在原來推送的基礎(chǔ)上初橘,多了一項非常強(qiáng)大的功能验游!集成產(chǎn)商的推送(小米、華為和魅族)保檐。
這意味著耕蝉,如果在「小米、華為和魅族」的大部分的設(shè)備上夜只,推送不再走極光的通道垒在,而是走設(shè)備的產(chǎn)商通道。
什么意思呢扔亥?就拿公司老版本的項目來說场躯,不僅集成了極光推送還集成了小米推送谈为,不僅服務(wù)端需要推送兩份推送,就連客戶端自己都要對設(shè)備的類型進(jìn)行判斷踢关,如果是「小米」設(shè)備就調(diào)用「小米」的接口伞鲫。那如果集成了產(chǎn)商推送,就不需要此操作签舞,你只需提供應(yīng)用的 APPID
等其他配置信息即可秕脓,華為和魅族同樣!
那么走產(chǎn)商通道又意味著什么呢儒搭?有集成過推送的小伙伴應(yīng)該知道吠架,推送能準(zhǔn)確到達(dá)在于一個長連接,假如應(yīng)用的進(jìn)程被殺死搂鲫,推送也便收不到诵肛。假如集成了產(chǎn)商的推送,即便進(jìn)程被殺死默穴,推送還是可以正常收到的怔檩,不過僅限于基本的推送,不包括自定義推送蓄诽。
這個升級的過程也是相當(dāng)?shù)目部姥ρ担矣浀眠@部分的功能也是「極光」的測試功能,正好我們集成過來一并測試...不過還有有一位熱心的小姐姐仑氛,習(xí)慣稱之為「大俠」乙埃!這個稱號是當(dāng)時她的昵稱,一直都這么叫過來的锯岖。每次遇到問題都能不厭其煩的為我解惑介袜。
其中讓我印象最為深刻的,是那天公司項目已經(jīng)到了發(fā)版周期的最后兩天出吹,在華為的設(shè)備上推送沒有收到遇伞。這可把我急的,第一時間就是找「大俠」幫忙捶牢,可能因為我在 QQ 上表達(dá)的不是很清楚鸠珠,小姐姐看起來比我 還著急,直接讓我跟她通電話討論一下具體的原因秋麸,這讓我意想不到渐排。還好最后是解決了問題,在此說聲 謝謝灸蟆。
2017年 9月19日
9月 19 日驯耻,工作半年了,打算和大神同事一起維護(hù)一個開源項目,于是就有了 WeaponApp 的誕生可缚,目前也快到 600 的贊了孽水。
當(dāng)然,推送的功能也是少不了的城看,由于有了前面的經(jīng)驗女气,集成起來也是相當(dāng)順手,不過因為是個人項目就沒有考慮测柠,后來同事自學(xué)了服務(wù)端炼鞠,順便也把服務(wù)端的極光推送集成了,感興趣的話可以把項目 clone
下來轰胁。
在這個項目中初次嘗試了集成「極光IM」谒主,官方的接口也是很詳細(xì),并且還有自己的用戶系統(tǒng)赃阀,登錄和注冊不需要自己實現(xiàn)了霎肯,不過目前的用戶還是很少...
2017年 10 月 26 日
10 月 26 日,咱們公司另一交易項目「原油」開始進(jìn)行大版本的升級榛斯,基本上屬于重頭做起观游。不用多說,推送的部分還是由我負(fù)責(zé)驮俗,鑒于又是「極光」的 VIP懂缕,直接將「貴金屬」項目的推送部分挪過來,去除不需要的部分王凑,修改一些基礎(chǔ)的配置搪柑,最后也是順利的完成了。
不知不覺中索烹,推送功能已經(jīng)在 4 個項目中集成了:
公司的就不方便列出來了工碾,加在一塊也有數(shù)十萬的用戶了(絕大部分是公司)...整體的過程還是很順利的,無論是集成的步驟百姓,還是后續(xù)的服務(wù)都很完美渊额,這可能就是「極光」做的那么大的原因吧。
贅述
說完「極光」與我的淵源瓣戚,接下來就大概說一下集成的過程端圈。
官網(wǎng)已經(jīng)有詳細(xì)的集成介紹焦读,我就不贅述了子库。官網(wǎng)集成,只是總結(jié)一下集成的步驟矗晃,一共三步:
- 添加依賴
手動集成仑嗅,需要拷貝相應(yīng)的so
文件到制定的目錄
自動導(dǎo)入,Android Studio
直接添加依賴 - 添加配置文件
拷貝官網(wǎng)的AndroidManifest
數(shù)據(jù)到項目app module
下的AndroidManifest
中,并更換對應(yīng)的包名和APPID
仓技。
調(diào)用「極光」接口進(jìn)行初始化 - 添加接收器
創(chuàng)建自定義Receiver
用于處理推送的消息鸵贬。
一般這樣集成就可以正常收到推送了。如果遇到問題也別慌脖捻,冷靜下來阔逼。從我的經(jīng)驗來看,最好在每個關(guān)鍵的地方打上日志地沮,方便運行時候查看和后面遇到問題方便定位嗜浮。還有就是日志的 TAG
,最好和極光的日志過濾規(guī)則保持一致摩疑,比如 JPush
危融。
當(dāng)你有下面的日志輸出,就證明已經(jīng)集成成功了雷袋!
[JPushInterface] action:init
.......
[PushService] Login succeed!
成功的日志只有這一個吉殃,錯誤的情況就各種各樣了,可以對照之前的日志進(jìn)行分析楷怒,比如:
很有可能是因為 so 文件加載失敗...
還有好多東西蛋勺,我后續(xù)在添加吧,感興趣的小伙伴可以很我交流交流鸠删,希望能幫到你迫卢!
「本文系極光征文 | 寫寫文章就能贏 Filco,豈不美滋滋的參賽文章」