當我們開始關注 App 的用戶體驗后,網絡通暢性和界面的流暢性是保證 App 好用的重要指標。近期對項目中的網絡數據進行了簡單的分析,又對業界的一些方案做了調研,故寫此文做一下知識梳理。
在使用 App 時,如經常遇到加載失敗或者小圈轉個不停的情況,那么很可能 App 的網絡性能出現了問題,急需研發同學來進行優化。而對于開發人員來說,定位網絡問題又是十分艱難,因為出現網絡問題的用戶往往遙在天邊,你沒辦法進行調試定位。那么建立完善的網絡監控體系就顯得十分重要,通過海量數據的分析來對網絡問題精確定位。
通過對數據的分析以及調研、用戶反饋,發現移動端網絡常常存在如下的問題:
針對上面一系列的問題,業界已經有很多解決方案,我在這里簡單列舉一些。
對于 DNS 劫持的情況,業界的主要做法是 HTTPDNS 或者內置 Server IP 列表。客戶端直接訪問 HttpDNS 接口,獲取業務在域名配置管理系統上配置的訪問延遲優的IP,獲取到IP后就直接往此IP發送業務協議請求,不需要使用本地運營商解析域名,所以從根本避免了劫持問題,同時可以降低網絡延遲,提高連接成功率。而建立 Server IP 列表,是在本地緩存一個 IP 的映射表,此表可在App啟動時動態下發更新,訪問服務器時直接拿出 IP 發出請求。
傳輸的 Payload 也直接影響了延遲,并且對成功率有影響,對于數據的壓縮,業界很多公司已經開始使用 ProtoBuf 協議,對于優化的百分比我還沒有準確的說數據結論,但是從大家的反饋來說,優化效果明顯。對于數據的壓縮,還可以考慮接入 HTTP 2.0,畢這是一個趨勢,也有較多公司已經加入 HTTP 2.0,HTTP 2.0 通過頭部壓縮等方式也幫你減小了傳輸的 Payload。
上面的問題其實很多是涉及到長連與短連的問題,對這個問題有較多的問題可以考慮。
再者還有一些其他可以考慮的點:
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。