日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

没推送功能,你好意思叫APP嘛?

發布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 没推送功能,你好意思叫APP嘛? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相信大家對推送這項技術并不陌生。如果沒聽說過,那么作為一個充滿好奇心的孩子,你一定想過這個問題:睡覺前我明明關閉了淘寶、網易新聞等 app,為什么第二天他們又自動出現在我手機的通知欄上呢?這其實就是推送系統干的好事:在你睡覺的時候,服務器悄悄的向你的手機推送了一個消息,然后喚醒了你已經關閉的 app。事實上,無論你愿意與否,現在大多數 ‘有節操’ 的 app,都已經內置了推送系統,并時刻準備著登上你的通知欄的 ‘頭條’。

傳統的 app 架構里,通常是 app 主動向服務器請求數據,服務器被動的提供數據。以新聞客戶端 app 為例:app 被用戶打開的時候,會通過網絡 (無論 3g、4g 還是 wifi) 連接到服務器上,向服務器請求最新的新聞。服務器收到請求,從自己的數據庫里查詢最新的新聞,返回給 app。app 收到服務器返回的數據,經過一系列的解析處理操作,最終把最新的新聞呈現給用戶。一次通信就完成了。然而如果此時服務器上又有了新的新聞,無論多么重要,在用戶沒有主動刷新的情況下,是沒有辦法讓用戶看到的。推送就是為了解決這樣的困境的,它給了服務器一個展示自我的機會,主動連接上所有的 app,告訴他們我有新的新聞了,你們再來請求一次吧,于是收到推送的 app(即時此時已經被用戶關閉了)又去服務器請求最新的新聞,這樣用戶就能看到最新的新聞了。

從技術上來講,實現一個推送系統需要服務器端和終端的配合。一種方法是輪詢,也就是不停的向服務器發起請求。這其實很好理解,作為 app,我既然不知道什么時候會發生新的新聞,那我一遍一遍的問好了,而且我知道這樣一定會成功的。顯而易見,這種方法 app 端費時費力不說,電量流量也扛不住啊,服務器要處理如此量大的請求,必然也是非常頭疼的。另一種方法是服務器和 app 建立一個長時間連接的通道,通過這個通道,不僅 app 可以向服務器請求數據,服務器也可以向 app 發送數據,看起來非常完美,但是如果 app 被用戶關閉的話,通道就斷掉了。好在 android 系統給 app 提供了一個這樣的環境,app 可以啟動一個后臺服務來維持這個通道,即使 app 被關掉了,服務依然可以運行,通道依然還在工作(ios 后面會講)。回到前面的例子,你在睡覺前關掉了淘寶,但是并沒有關閉淘寶的后臺服務,淘寶依然可以接收服務器推送來的指令,把自己的喚醒。

那么如何維持這樣的一條長時間連接的通道呢?就好比兩個人打電話,一開始聊的熱情有來有往,后來慢慢沉默下來了,幾分鐘之后,電話的另一頭沒有任何動靜,如何知道那邊的人還在呢?很簡單,只需要另一頭的人每隔幾分鐘說一個字就行。同樣的道理,app 會每隔一段時間向服務器報告自己還活著,就像心跳一樣,服務器收到后,就知道這個通道是可以繼續使用的了。然而天下沒有免費的午餐,發送心跳是有代價的,一般手機鎖屏之后,為了省電 CPU 是出于休眠狀態的,然而發送心跳就會喚醒 CPU,必然會增加電量的消耗。這還只是一個長連接通道的情況,如果手機里裝了 2、30 個帶有推送的 app 呢?先別急著抱怨,聰明的 android 工程師和 ios 工程師早就想到了這一點,他們分別設計了 GCM 和 apns 來解決多個 app 有多個長連接通道的問題。以 apns 為例,ios 開通了一條系統級別的長連接通道,通道的一端是手機的所有 app,另一端是蘋果的服務器。app 的服務器如果有新的消息需要推送的話,先把消息發送到蘋果的服務器上,再利用蘋果的服務器通過長連接通道發送到用戶手機,然后通知具體的 app。這樣就做到了即使手機安裝了 100 個 app,也只需要向一條通道里發送心跳。

回到 Android,系統提供的 GCM 只能在 Android2.2 以上才能使用,3.0 以下必須要安裝 Googleplay 并登陸了 Google 賬號才能支持。而國內發行的手機大多是閹割掉了 google 服務的。因此,對于 Android 系統來說,各家 app 只能各顯神通,開發自己的專用長連接通道了。然而這時候他們遇到了 app 的天敵:管家和衛士們。前文說了,app 想要及時收到服務器推送的消息,關鍵在于自己與服務器的長連接通道不被關閉,也就是自己的后臺服務可以一直在后臺運行,而管家和衛士們的一鍵清理功能就是專治這種 “毒瘤” 的。道高一尺魔高一丈,app 在與管家和斗士們的長期斗爭中,總結了一系列躲避被清理掉的方法,什么定時自啟能力、什么相互喚醒、什么前臺進程等等,當然這就是另一個話題了,我們后面會講到。

總結起來,app 和后臺的連接方式有兩種。一種叫 pull,也叫輪詢,就是定期的不斷向后臺請求,缺點是耗電,費流量,不環保。對于一名有追求的程序員,他應該會比較惡心這種方式的,你千萬不要對他說,我不管你怎么實現,我就要這種效果這種傻逼話了,凡事應該找到最優路徑。另一種叫 push,app 和后臺一直維持了一條通信通道,兩端不定期的就會偷摸的約會,告訴對方 “I ‘m Here”,也能順帶把信息互相攜帶了。缺點是要維持一條長連接通道,這條通道容易被其他程序殺死,要多想復活辦法。

原創文章,作者:給產品經理講技術(微信號:pm_teacher),公眾號堅持每天一篇原創文章,用大白話講互聯網技術,歡迎關注。

總結

以上是生活随笔為你收集整理的没推送功能,你好意思叫APP嘛?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 手机av免费在线观看 | 日韩一区二区在线观看视频 | 操操网 | 欧美一区二区三区激情 | 国产精欧美一区二区三区蓝颜男同 | 看av免费毛片手机播放 | 天天操天天射天天 | 日本免费精品 | 亚洲一区免费视频 | 国产精品无码久久久久 | 久草视频2 | 日韩精品福利 | 1000部国产精品成人观看 | 欧美激情中文字幕 | 欧美一区二区三区视频 | 亚洲第一女人av | 国产极品91| 99精品久久精品一区二区 | 免费毛片a | 久久蜜臀 | 天天操狠狠干 | 69超碰| 日日摸夜夜添夜夜 | 欧美精品亚洲精品日韩精品 | 小伸进喷水网站 | 久草免费福利视频 | 免费无遮挡无码永久在线观看视频 | av超碰| 女优一区 | 999精品一区 | 精品国产一区二区视频 | 日本一二区视频 | 九九在线精品 | jiuse九色 | 亚洲伊人影院 | 久久精品欧美一区 | 国产浮力影院 | 亚洲特级片| 久久久久极品 | 精品人妻伦一二三区久久 | 国产精品亚洲一区 | 一区二区三区免费网站 | 天天干,天天操,天天射 | 色老头在线视频 | 香蕉av777xxx色综合一区 | 天天摸天天射 | 黑人满足娇妻6699xx | 日本特级黄色大片 | av天天有 | 日本性视频网站 | 色爱区综合 | 放几个免费的毛片出来看 | 男人操女人的免费视频 | 国产91精品高潮白浆喷水 | 中文字幕在线观看国产 | 天堂一区在线观看 | 啦啦啦视频在线观看 | 亚洲激情综合 | 激情综合啪啪 | 欧美一级一片 | 性视频在线播放 | 亚洲天堂网在线观看视频 | 青青青免费在线视频 | 午夜欧美福利 | 精品国偷自产国产一区 | 污网站免费在线观看 | 国产尤物视频在线观看 | 国产一区亚洲二区三区 | 欧美日韩亚洲视频 | 男人免费网站 | 久久东京 | 欧美一级二级片 | 国产熟妇久久777777 | 91精品婷婷国产综合久久竹菊 | av免费在线观看不卡 | 国产精品熟妇人妻g奶一区 a少妇 | 日本美女性生活视频 | 夜夜春影院 | 一级片视频免费 | 美日韩成人 | 女人毛片视频 | 一区二区网 | 竹菊影视一区二区三区 | 三级网站免费 | 岛国裸体写真hd在线 | 波多野结衣mp4 | 欧美 日韩 国产 亚洲 色 | 国产精品一线二线三线 | 麻豆蜜桃视频 | 激情午夜天 | 99午夜视频 | 欧美日韩在线免费视频 | 嫩草视频在线免费观看 | 中文字幕一区二区三区四区免费看 | av一二区 | 少妇精品无码一区二区 | 黄色免费在线网址 | 亚洲天堂2021av| 一二三区在线视频 |