iOS 多工Multitasking、後臺機制解析

LeeJTom發表於2018-04-02

iOS 7後,實際上APP擁有四種後臺模式,無論是哪一種後臺機制,均需要利用蘋果給予的相應後臺介面實現。新系統中,開發者可以靈活利用多種後臺介面(API)實現更加智慧的應用操作。

iOS 後臺模式

  1. 無後臺僅推送
  2. 墓碑式
  3. 智慧排程後臺
  4. 真後臺

無後臺僅推送

  第一種後臺方式為傳統的無後臺操作,僅有蘋果推送機制,這種方式出現在iOS 3.x以下的大部分系統版本上。這個方式下,應用在按下Home鍵後即會關閉退出,其資料通過蘋果搭建的推送伺服器傳輸,並不需要應用後臺執行。這種方式 不太好的原因在於,每次推出後,重新進入均需要重新載入,雖然推送能夠統一解決資料和資訊的傳輸,但遇到需要頻繁進入應用(如聊天APP)的時候便會顯得 體驗不好。

iOS 多工Multitasking、後臺機制解析 iOS 多工Multitasking、後臺機制解析
無後臺僅推送
### 墓碑式

  第二種方式為墓碑式的後臺機制,這在iOS 4後被大量採用,也就是人們所說的偽多工。這方式相比較第一種改進的地方在於,按下Home鍵至主介面後,應用隨即進入後臺,但其被凍結,並不能進行任何操作。   

智慧排程後臺

  第三種為系統智慧排程的後臺,iOS 7新增的background fetch,這個後臺介面在蘋果WWDC 2013上有提及,其會根據使用者行為自動調整達到效率最優的後臺模式,能夠處理不是很有時效性的資訊獲取。例如一些社交、新聞類的應用的後臺資訊更 新,iOS系統便會根據應用啟動頻率、時間和當前網路和電量的狀況來智慧分配每個應用的後臺獲取頻率和啟動時長。   

iOS 多工Multitasking、後臺機制解析 iOS 多工Multitasking、後臺機制解析

新聞類APP
 由於擁有該介面的應用的資料後臺重新整理操作是統一排程的,因此係統可以在一個程式裡面獲得多個應用的資料,類似統一的推送機制,這樣就能夠最大限度地省 電。不過這個方式也有一個缺點,那便是開發者不能設定資料具體什麼時候更新,因此這個後臺方式只能應用在一些時效性和敏感度不高的地方。

真後臺

第四種方式便是真後臺機制,但iOS的真後臺與Android的後臺機制是不一樣的,為了兼顧系統體驗和統一程式管理,iOS在這上面加入了眾多的限制。大致擁有以下幾個後臺介面模式:

iOS 多工Multitasking、後臺機制解析

Background modes for apps
  1. Audio and AirPlay 該應用會向使用者播放可聽內容或在後臺錄製音訊。(此內容包括使用AirPlay播放音訊或視訊內容。)第一次使用需要使用者授權應用使用麥克風。
  2. Location updates 即使在後臺執行時,該應用也會向使用者通知其位置。
  3. Voice over IP 後臺語音服務,類似Skype通話應用呼叫,可以進行後臺語音通話。
  4. Newsstand downloads 報刊雜誌後臺自動下載更新,其能夠自動實時更新。
  5. External accessory communication 該應用程式與需要通過外部附件框架定期傳遞更新的硬體附件配合使用。
  6. Uses Bluetooth LE accessories 該應用程式適用於需要通過核心藍芽框架定期提供更新的藍芽配件。
  7. Acts as a Bluetooth LE accessory 該應用程式通過核心藍芽框架支援外設模式下的藍芽通訊。使用此模式需要使用者授權;
  8. Background fetch 該應用程式定期從網路下載和處理少量內容。
  9. Remote notifications 該應用程式想要在推送通知到達時開始下載內容。使用此通知可最大限度地減少顯示與推送通知相關內容的延遲。(QQ、微信)

參考:

Background Execution

蘋果iOS 7後臺機制解析

相關文章