蘋果iOS 7後臺機制解析


蘋果iOS 7後臺機制解析


http://mobile.pconline.com.cn/358/3585921.html


【PConline 技術分析】iOS系統作爲市面上最受歡迎的移動操作系統,流暢的系統滑動和出色的操作體驗是值得稱道的。雖然iOS系統的後臺僞多任務一直被Android用戶所詬病,但從筆者看來iOS和Android後臺機制即使不同,但是各有各的優點和缺點,並不能單純去分辨孰優孰劣。在iOS 7上,其新增了幾種真後臺的模式,接下來我們一起詳細瞭解。

ios7
蘋果iOS 7後臺機制解析

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

無後臺僅推送

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

iOS7 iOS7
iOS 7新的後臺管理和信息推送

墓碑式

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

智能調度後臺

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

iOS7 iOS7
新聞類APP

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

真後臺

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

  1、Background Audio,這是後臺的音頻,這個很早之前便有,也是iOS設備中用得最多的後臺應用,調用這個接口可以實現後臺的音樂播放。

iOS7 iOS7
音樂後臺運行

  2、Location Services,這是後臺的定位,系統會擁有統一頁面進行管理。

  3、VoIP,後臺語音服務,類似Skype通話應用需要調用,可進行後臺的語音通話。

  4、Newsstand,報刊雜誌後臺自動下載更新,其能夠自動實時更新。

iOS7 iOS7
報刊雜誌自動更新

  5、Background Task  Completion,這個接口早在iOS 4時候便擁有,其可以供任意類型的APP使用,不過在舊系統中,這個接口的後臺限制運行時間僅爲10分鐘,意味着當應用退至後臺,其後臺運行僅能持續10分鐘便會轉至休眠狀態。iOS 7中對這個接口作出了改變,原來的爲連續10分鐘,即不論你這10分鐘內用戶是否關閉屏幕進入休眠狀態,應用仍然會在後臺等待10分鐘完結後推出,而新的改進爲假如遇到關閉屏幕休眠的情況,這後臺運行的10分鐘便會跟隨一同休眠,剩餘的後臺時間將會留待用戶再一次喚醒設備才計算。這樣後臺運行的時間仍然爲10分鐘,但並不連續,這樣做的優點爲省電。

iOS7 iOS7
有道詞典的後臺更新

  如現在有一些詞典應用帶有後臺複製選詞功能,實際上其是利用了這個接口,如果用戶開啓詞典後並推出,即使屏幕關閉,但詞典仍然在後臺運行,電量消耗還是比較大的,在iOS 7上,這個問題可以得到解決。

  6、 Remote Notification,這是本次較大的一個改進接口,以往聊天類應用接受推送後點進去需要再收一次信息,這情況在QQ、微信等應用上最爲明顯。不過擁有了這個接口後,這情況將不復存在,以後推送將能夠直接啓動後臺任務。值得注意的是remote notification支持silent notification(靜默推送),這樣dropbox這類同步應用可以在後臺以最節能的模式實時靜默同步了,類似布卡漫畫這種也可以推送正在追的漫畫的新章節並在後臺靜默下載,待到下載好再給用戶發送一個本地推送,用戶點開即看無需再聯網。

  7、Background Transfer Service,後臺上傳下載。iOS最接近傳統多任務的後臺接口,可供任意類型的app調用,無時間限制。應用場景包括後臺上傳和下載數據,這使得遊戲後臺更新數據包,後臺上傳視頻等等都成爲可能,但是正如其名字,它只能用於處理上傳下載這種傳輸類的任務,類似後臺剪切板監控這種它就無能爲力了。

總結

  以上便是iOS 7系統中最主要的後臺機制,有部分是舊版iOS系統已經存在,現在也被沿用下來,而新增加的幾個後臺接口,進一步開放iOS設備的後臺權限,不過爲了繼續保持iOS移動設備的優秀體驗,蘋果是逐步放開,並且加入了相應的限制。background fetch、Remote Notification、Background Transfer Service是三個比較有看頭的後臺接口,實際中,開發者可以靈活運用這些接口實現應用的智能後臺服務,例如常見的地圖應用可以開啓定位(Location),其檢測到用戶進入到另外的城市便會自動進行後臺的離線地圖下載,通過Background Transfer Service接口。更多更多的組合需要等開發者來實現。

省電建議

  最後要說的便是,有朋友感覺更新到iOS 7系統後,感覺耗電量大增,尤其是以待機電量最爲明顯。實際上iOS已經有較成熟的電源管理,而且也提供統一的頁面供消費者設計,耗電量大戶主要在於定位服務和後臺應用程序刷新。筆者給的建議便是把不需要用到定位的應用取消權限,進入設置-隱私-定位服務,把應用的權限剔除。此外在該頁面下的系統服務定位上,只保留指南針校準。

iOS7 iOS7
剔除不需要的後臺運行和定位的應用

iOS7 iOS7
保留必要的系統定位服務

  此外進入通用-後臺應用程序刷新頁面中,同樣把不需要後臺刷新的應用關閉。可以看到主要後臺運行的有地圖類應用、天氣、網盤,這幾類應用如果允許在後臺運行,地圖會自動檢測地理位置提供該地區的信息或自動進行離線數據下載,而天氣應用也會自動檢測位置提供該地方天氣信息,而網盤會在檢測到WIFI後自動進行後臺上傳,關閉後臺應用刷新能夠大大提高續航。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章