一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android:最全面解析Android消息推送解決方案

 超級致富寶典 2020-05-02

前言

  • 鑒于現(xiàn)在運營需求的增強,消息推送在Android開發(fā)中應用的場景是十分常見

如電商的活動宣傳、資訊類產(chǎn)品進行新聞推送等等

推送消息截圖

  • 今天,我將全面介紹Android中實現(xiàn)消息推送的7種主流解決方案

目錄

示意圖


1. 本質(zhì)

應用App 主動向用戶推送服務器最新消息

實際上,是當服務器有新消息需推送給用戶時,先發(fā)送給應用App,應用App再發(fā)送給用戶

示意圖


2. 作用

  • 產(chǎn)品角度:功能需要,如:資訊類產(chǎn)品的新聞推送、工具類產(chǎn)品的公告推送等等
  • 運營角度:活動運營需要,如:電商類產(chǎn)品的促銷活動;召回用戶 / 提高活躍度等等

作為開發(fā)者,不要有需求就接,應該多思考、多理解用戶 / 功能的使用場景,有助于我們更好地去選擇合適的開發(fā)方式


3. 原理

  • 推送的原理主要是2種方式:Push 和 Pull
  • 具體如下

示意圖


4. 解決方案

  • Android中,實現(xiàn)消息推送的主流方案有7種
  • 下面,我將詳細解析每個解決方案

注:

  1. 每個操作系統(tǒng)有自身的消息推送功能,屬于 系統(tǒng)級別,即 任何時候都可以推送給用戶,且不會被系統(tǒng)殺死
  2. Android的消息推送服務稱為:C2DM(Cloudto Device Messaging),將在下面詳細描述

4.1 C2DM

Cloud to Device Messaging,云端推送,是Android系統(tǒng)級別的消息推送服務(Google出品)

  • 原理
    基于Push方式
  • 具體描述
    C2DM服務負責處理諸如消息排隊等事務,并向運行于目標設備上的應用程序分發(fā)這些消息。如下圖:

C2DM原理

  • 優(yōu)點
    C2DM提供了一個簡單的、輕量級的機制,允許服務器可以通知移動應用程序直接與服務器進行通信,以便于從服務器獲取應用程序更新和用戶數(shù)據(jù)。
  • 缺點
    1. 依賴于Google官方提供的C2DM服務器,但在國內(nèi)使用Google服務需要翻墻,成本較大;
    2. 需要用戶手機安裝Google服務。但由于Android機型、系統(tǒng)的碎片化 & 國內(nèi)環(huán)境,國內(nèi)的Android系統(tǒng)都自動去除Google服務,假如要使用C2DM服務,這意味著用戶還得去安裝Google服務,成本較大。

4.2 輪詢

  • 原理
    基于Pull方式
  • 具體描述
    應用程序隔固定時間主動與服務器進行連接并查詢是否有新的消息
  • 優(yōu)點
    實時性好
  • 缺點
    1. 成本大,需要自己實現(xiàn)與服務器之間的通信,例如消息排隊等;
    2. 到達率不確定,考慮輪詢的頻率:太低可能導致消息的延遲;太高,更費客戶端的資源(CPU資源、網(wǎng)絡流量、系統(tǒng)電量)和服務器資源(網(wǎng)絡帶寬)

####4.3 SMS信令推送

  • 原理
    基于Push方式
  • 具體描述
    服務器有新消息時,發(fā)送1條類似短信的信令給客戶端,客戶端通過攔截信令,解析消息內(nèi)容 / 向服務器獲取信息
  • 優(yōu)點
    可實現(xiàn)完全的實時操作
  • 缺點
    成本高(主要是短信資費的支出)

4.4 MQTT協(xié)議

  • 定義
    輕量級的消息發(fā)布/訂閱協(xié)議
  • 原理
    基于Push方式,wmqtt.jar 是IBM提供的MQTT協(xié)議的實現(xiàn),原理如下圖:

MQTT協(xié)議原理

更多關于MQTT協(xié)議:

  1. 項目實例源
  2. 一個采用PHP書寫的服務器端
  3. Jar包下載地址,并加入自己的Android應用程序中。
  4. 拓展:RSMB是從MQTT協(xié)議引申出來的另外一種解決方案:簡單的MQTT代理,詳情請點擊

4.5 XMPP協(xié)議

  • 定義
    Extensible Messageing and Presence Protocol,可擴展消息與存在協(xié)議,是基于可擴展標記語言(XML)的協(xié)議,是目前主流的四種IM協(xié)議之一

其他三種:

  • 即時信息和空間協(xié)議(IMPP)

  • 空間和即時信息協(xié)議(PRIM)

  • 即時通訊和空間平衡擴充的進程開始協(xié)議SIP(SIMPLE)

  • 原理
    XMPP中定義了三個角色,分別是客戶端、服務器和網(wǎng)關
    客戶端

    1. 通過 TCP/IP與XMPP 服務器連接,然后在之上傳輸與即時通訊相關的指令(XML);
    2. 解析組織好的 XML 信息包;
    3. 理解消息數(shù)據(jù)類型。
  • XMPP的核心:XML流傳輸協(xié)議(在網(wǎng)絡上分片斷發(fā)送XML的流協(xié)議),也是即時通訊指令的傳遞基礎,即XMPP用TCP傳的是XML流
  1. 與即時通訊相關的指令,在以前要么用2進制的形式發(fā)送(比如QQ),要么用純文本指令加空格加參數(shù)加換行符的方式發(fā)送(比如MSN)。
  2. XMPP傳輸?shù)募磿r通訊指令的邏輯與以往相仿,只是協(xié)議的形式變成了XML格式的純文本。

服務器

  1. 監(jiān)聽客戶端連接,并直接與客戶端應用程序通信(客戶端信息記錄)
  2. 與其他 XMPP 服務器通信;

網(wǎng)關:與異構(gòu)即時通信系統(tǒng)進行通信

異構(gòu)系統(tǒng)包括SMS(短信),MSN,ICQ等

通信能夠在這三者的任意兩個之間雙向發(fā)生。

原理流程

原理流程

  • 優(yōu)點

    1. 開源:可通過修改其源代碼來適應我們的應用程序。
    2. 簡單:XML易于解析和閱讀;將復雜性從客戶端轉(zhuǎn)移到了服務器端
    3. 可拓展性強:繼承了在XML環(huán)境中靈活的發(fā)展性,可進一步對協(xié)議進行擴展,實現(xiàn)更為完善的功能。

    GTalk、QQ、IM等都用這個協(xié)議

  • 缺點
    如果將消息從服務器上推送出去,則不管消息是否成功到達客戶端手機上。

  • 源碼實例:有一個很棒的基于XMPP協(xié)議的java開源Android push notification:Androidpn項目地址,大家有興趣可以去看看

更多關于XMPP協(xié)議更加詳細請點擊

4.6 使用第三方平臺

現(xiàn)今主流的推送平臺分為

  1. 手機廠商類:小米推送、華為推送。
  2. 第三方平臺類:友盟推送、極光推送、云巴(基于MQTT)
  3. BAT大廠的平臺推送:阿里云移動推送、騰訊信鴿推送、百度云推送

具體各推送平臺的優(yōu)缺點請看我寫的文章:Android推送:第三方消息推送平臺詳細解析

4.7 自己搭建

如果你的產(chǎn)品對于消息推送具備較高的功能和性能要求,同時對安全性要求非常高的話,自己搭建可能是最好的方式,但這種方式無疑成本是最高的。

至此,關于Android推送的解決方案講解完畢。


5. Android推送 與 iOS推送的區(qū)別

示意圖


6. 總結(jié)

  • 經(jīng)過上面的詳細講解,相信大家現(xiàn)在對Android中消息推送的解決方案已經(jīng)非常了解,總結(jié)如下
    示意圖

  • 解決方案沒有優(yōu)劣,要具具體使用場景而定。但一般來說,個人建議使用第三方平臺推送,成本低+抵達率高

  • 關于Android消息推送的其他知識,具體請看:
    Android消息推送:手把手教你集成小米推送
    Android推送:第三方消息推送平臺詳細解析

  • 接下來,我會繼續(xù)講解Android開發(fā)中關于消息推送的其他知識,感興趣的同學可以繼續(xù)關注carson_ho的微信公眾號

    示意圖


請幫頂 / 評論點贊!因為你的鼓勵是我寫作的最大動力!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产肥女老熟女激情视频一区 | 日韩美女偷拍视频久久| 91在线爽的少妇嗷嗷叫| 国产二级一级内射视频播放| 久久亚洲精品中文字幕| 国产精品免费无遮挡不卡视频| 中文字幕一区二区熟女| 亚洲香艳网久久五月婷婷| 亚洲国产91精品视频| 色老汉在线视频免费亚欧| 国产又粗又硬又长又爽的剧情| 中文字幕精品少妇人妻| 欧美精品专区一区二区| 国产农村妇女成人精品| 精品香蕉一区二区在线| 不卡一区二区高清视频| 亚洲欧美黑人一区二区| 国产又粗又爽又猛又黄的| 亚洲精品中文字幕欧美| 老司机精品国产在线视频| 好吊色免费在线观看视频| 91欧美亚洲精品在线观看| 麻豆一区二区三区精品视频| 欧美国产日本高清在线| 国产又黄又爽又粗视频在线| 欧美中文字幕一区在线| 亚洲欧美日韩色图七区| 人人妻在人人看人人澡| 日本在线 一区 二区| 国产成人精品午夜福利av免费| 久久女同精品一区二区| 国产精品欧美日韩中文字幕| 国产欧美一区二区色综合| 不卡视频免费一区二区三区| 欧美日韩中黄片免费看| 国产欧美日韩在线一区二区| 中文字幕日韩无套内射| 免费久久一级欧美特大黄孕妇| 日韩精品综合免费视频| 精品少妇人妻av一区二区蜜桃| 午夜福利网午夜福利网|