高效能iOS應用開發
IOS網路優化點
1.DNS查詢時間
為了最大限度地減少DNS查詢時間所產生的延遲,應遵循以下的實踐:
最小化應用使用的專有域名的數量。按照路由的一般工作方式,多個域名是不可避免的。最好能做到以下幾點:
身份管理(登入、登出、配置檔案)
資料服務(API端點)
CDN(圖片和其他靜態人工產品)
在應用啟動時不需要連線所有的域名,可能只需要身份管理和初始畫面所需的資料。對於後續的子域名,嘗試更早地進行DNS解析(DNS預先下載)。
2.SSL握手時間
SSL握手主要是驗證伺服器證書,同時共享用於通訊的隨機金鑰。這一過程會耗費較多的時間。
遵循以下實踐優化SSL握手:
最大程度地減少應用發起的連線數。因此,也需要減少應用連線的獨有域名的數量。
複用連線:為所有的HTTPS請求新增頭(Connection:Keep-alive)
使用域分片(不理解)
3.網路型別
遵循以下實踐使應用在各種網路環境下都能正常使用:
設計時考慮不同的網路型別。
對於流媒體,最好選擇HTTP實時流或任何可用的自適應位元率流媒體技術,這些技術可以在某一時刻對可用頻寬進行動態切換,切換至當前頻寬的最佳流質量,從而提供流暢的視訊播放。
對於非流媒體內容,需要確定在單位拉取時應該下載多少資料,並且資料量必須時自適應的。
同樣,在弱網狀態下,不要開啟視訊自動播放功能,節約使用者的流量第一。
對於自定義的非流媒體資料拉取,要保持對伺服器的關注。讓客戶端傳送網路特徵數,伺服器決定返回的記錄條數,這樣可以在不釋出新版本的情況下進行適應性改變。
出現失敗時,在隨機的、以指數增長的延遲後進行重試,但一定要設定最多的自動重試次數,不能不斷地刷伺服器
設定強制重新整理的間隔最短時間。當使用者明確要求重新整理時,不要立即發出請求。相反,檢查與上次請求時間間隔是否小於閥值或已經存在該請求。
使用可到達性庫發現網路狀態的變化。使用指示條向使用者展示不可用的狀態,讓使用者瞭解潛在的連線問題。
不要快取網路狀態。要始終使用網路敏感度高的任務的最新值。
基於網路型別下載內容,對於影像,可預先展示小尺寸影像,當使用者點選檢視原圖時下載原圖。 對於視訊內容,最好有一個與之關聯的預覽圖下。 可仿照WhatsApp對不同內容的網路型別進行可選設定。
預先下載:在Wi-Fi網路中預先下載使用者在後續時刻需要關注的內容。隨後可以使用快取內容,最好分次下載內容,在使用之後關掉網路連線。
相關文章
- 《高效能iOS應用開發》讀書筆記iOS筆記
- 《高效能iOS 應用開發》之影響移動應用效能的因素iOS
- 《高效能iOS 應用開發》之降低你 APP 的電量消耗iOSAPP
- 《高效能iOS應用開發》打造使用者稀飯的AppiOSAPP
- iOS開發-SiriKit應用iOS
- 用 Nginx + Lua(OpenResty) 開發高效能 Web 應用NginxRESTWeb
- Node助力Web應用開發——在新的開發平臺,打造高效能Web應用Web
- 使用 Nginx + Lua(OpenResty)開發高效能Web應用NginxRESTWeb
- 讀書筆記:高效能PHP應用開發筆記PHP
- IOS 逆向開發(三)應用簽名iOS
- PHP - 《高效能php應用開發》學習筆記PHP筆記
- iOS開發經驗談:如何提高應用開發效率?iOS
- Cordova - 使用Cordova開發iOS應用實戰1(配置、開發第一個應用)iOS
- Infinum:開發iOS應用要比開發Android應用節省約30%時間iOSAndroid
- iOS開發Runtime的理解與應用iOS
- 類簇在iOS開發中的應用iOS
- Venturebeat:2014年微軟開發74款iOS應用 蘋果未開發WP應用微軟iOS蘋果
- 開發高效能的MongoDB應用:淺談MongoDB效能優化MongoDB優化
- 鴻蒙 Android iOS 應用開發對比02鴻蒙AndroidiOS
- iOS開發中的Scroll View應用詳解iOSView
- 使用Go語言開發iOS應用(Swift版)GoiOSSwift
- “自釋放”在iOS開發中的應用iOS
- 用於金融科技應用開發的高效能圖表控制元件控制元件
- 【iOS開發】如何用 Swift 語言進行LBS應用的開發?iOSSwift
- Xamarin ios 教程 Xamarin跨平臺開發 C#蘋果應用開發iOSC#蘋果
- iOS 11開發教程(十二)iOS11應用檢視始祖——UIViewiOSUIView
- iOS 11開發教程(十一)瞭解iOS11應用檢視iOS
- iOS 11開發教程(二)編寫第一個iOS 11應用iOS
- iOS開發-響應鏈iOS
- 正規表示式在iOS開發中的應用iOS
- 使用Go語言開發Android&IOS應用GoAndroidiOS
- iOS開發技巧:應用巨集定義使用字型iOS
- 使用React Native開發第一個iOS應用React NativeiOS
- 開發者 請優先開發Android應用而非iOSAndroidiOS
- iOS開發系列–讓你的應用“動”起來iOS
- Flutter與Native混合開發-FlutterBoost整合應用和開發實踐(iOS)FlutteriOS
- iOS 11開發教程(八)定製iOS11應用程式圖示iOS
- iOS 11開發教程(十四)iOS11應用程式碼新增檢視iOS