Android 推送方案

2021-08-22 17:54:51 字數 1187 閱讀 8968

修改版本:2018/8/13-1(23:25)

參考資料

1、推送方案有哪些?

輪詢

長連線sms通知

xmpp/mqtt

2、長連線的方案

目前最佳方案

客戶端主動和伺服器建立tcp長連線

客戶端定期向服務端傳送心跳包

有訊息時,服務端會通過該tcp連線去通知客戶端

3、nat是什麼?

ipv4位址不足或者想通過無線路由器上網,裝置就會處於乙個nat裝置的後面。

nat裝置會在ip封包通過裝置時修改源/目的ip位址.

家用路由器使用的是網路位址埠轉換(napt), 它不僅改ip, 還修改tcp和udp協議的埠號, 這樣就能讓內網中的裝置共用同乙個外網ip.

4、nat超時

內網ip和外網ip之間的對映因為某些原因被nat裝置所淘汰,從而導致外部裝置無法繼續和 內網的裝置通訊(只能找到路由器的外網ip,卻已經不知道該和哪個內網裝置通訊)。

5、長連線為什麼要傳送心跳包

tcp本身是長連線的,即使過去幾個小時也依舊可以通訊。

心跳包是為了解決nat超時問題。

1、利用系統廣播拉活(某些5.0以下機型上有用)

2、利用 jobscheduler 機制拉活,只在5.0及5.1手機上有用。

3、利用鬧鐘廣播拉活,在4.4及以下部分手機上有效

4、採用aidl雙程序守護互相監聽,乙個被殺後立即拉活,在5.0以下絕大部分手機上有效

5、鎖屏單畫素activity

1、通過1000條資料涵蓋了android5.0-android8.0,小公尺,華為,三星,oppo/vivo,金立等各種機型的測試結果。

android 6.0以下大部分機型是有效的。

android 7.0/8.0 絕大部分機型都是無效的,且後台程序無法活過20分鐘。

oppo/vivo這兩家廠商程序保活最困難,小公尺和三星比較寬鬆。其他的機型居中。

除了廠商加入白名單,沒有其他真正可行的辦法。

這些辦法只能是一種優化。

android推送技術研究

android推送解決方案

應用程式應當階段性的與伺服器進行連線並查詢是否有新的訊息到達,你必須自己實現與伺服器之間的通訊,例如訊息排隊等。而且你還要考慮輪詢的頻率,如果太慢可能導致某些訊息的延遲,如果太快,則會大量消耗網路頻寬和電池。在android平台上,你可以通過攔截sms訊息並且解析訊息內容來了解伺服器的意圖,並獲取其...

Android訊息推送解決方案

怎麼定位gps座標佔時不考慮,我們來分析下服務端打折優惠資訊是怎麼推送給手機客戶端的。一 訊息推送基礎 如何使客戶端能夠實時的收到伺服器的訊息和通知,總體來說有兩種方式,第一種是客戶端使用pull 拉 的方式,就是隔一段時間就去伺服器上獲取一下資訊,看是否有更新的資訊出現。第二種就是 伺服器使用pu...

android 之推送(本地推送遠端推送)

推送分為遠端推送和本地推送,都可以通過推送訊息跳轉到一些應用或者活動介面,本地推送幾行 就可以實現,遠端推送就需要借助一些平台的力量 1 本地推送 notificationmanager nm notificationmanager getsystemservice context.notifica...