Android 高階進階-網路優化筆記
避免 DNS 解析
DNS 是域名系統,使用域名去訪問會有幾百毫秒的延遲,而且會有 DNS 劫持風險,這時候可以使用 IP 直接去訪問,但是 IP 又不夠靈活,當對應服務因為某些原因導致 IP 改變之後,使用 IP就訪問不了了。所以使用 IP 訪問需要增加動態更新的negligence,或者在 IP 訪問失敗後切換到域名訪問的方式。
合併網路請求
對於網路請求應當儘量減少請求的介面,也就是一些不緊要資料可以在其他介面返回時一併返回,不用再新增新的介面。
預先獲取資料
將原本在同一時間需要顯示的資料,分開時間段來獲取,可以避免網路請求集中在一次,起到節省電量的作用。
避免輪詢
一般不建議在應用中使用輪詢,能夠使用推送來替換掉的儘量使用推送。避免使用Thread.sleep()
函式來迴圈等待,可以使用 AlarmManager來實現定時輪詢。
優化重連機制
設定最大的重連次數,超過該次數停止重連。
離線快取
壓縮資料大小
使用 gzip 或者更輕量級的 json 進行格式
CDN 的使用
CDN 全稱是內容分發網路,它的思想是儘可能避網路上可能影響資料傳輸速度和穩定的環節,從而實現跟快、更穩定的資料傳輸。CDN 的加速可以環節電信可信網路延遲帶來的影響。