摘 要:智能手機已伴隨著我們的生活、工作和學習,而其中起決定作用的是智能操作系統(tǒng),本文就目前國內市場上主流的Android和IOS兩大操作系統(tǒng)的多任務運行機制和推送機制進行了比較和分析,讓用戶在選擇時有一個參考標準。
關鍵詞:智能手機;Android;IOS;多任務;推送機制
“我?guī)е?寸輕巧,在城市閱讀美好;我?guī)е?寸自由,在兩個世界任意游走;我?guī)е?寸寫意,更多的效率生活更愜意;我?guī)е?寸震撼,讓精彩如影隨行;我?guī)е?寸動感,隨時隨地隨手皆靈感。”這是三星GALAXYNote8.0的創(chuàng)意廣告,其中邊接電話邊查資料分屏工作的場景讓我記憶猶新,一直縈繞在我的腦海里,這不就是我們常說的多任務嗎?當手機剛剛能下載安裝JAVA小程序已讓人們興奮不已,隨著手機操作系統(tǒng)的革新?lián)Q代,Symbian(塞班)、Android(安卓)、IPhone(蘋果)這些字眼闖入我們的生活,在智能操作系統(tǒng)潮流影響下手機不再是簡單通話工具,而演成了多媒體移動終端,上網(wǎng)、聽音樂、看電影、發(fā)微博、玩游戲、網(wǎng)上購物、定位導航、社區(qū)交友等手機應用軟件顧及我們生活的種種,再加上3G網(wǎng)絡的發(fā)展,用手機上網(wǎng)甚至比用電腦來得更方便,隨著GPS等實時應用的出現(xiàn),人們也對智能手機提出了新的要求,怎樣才能像電腦一樣不關閉當前任務的同時打開另外一個需要處理的軟件,即實現(xiàn)多任務操作呢?這正是手機廠商思慮解決的新問題。
1 主流智能操作系統(tǒng)分類
智能手機[1]指具有獨立的操作系統(tǒng),第三方服務商可根據(jù)操作系統(tǒng)提供的應用編程接口為手機開發(fā)各種擴展應用,用戶可以自行安裝和卸載這些應用程序,并可以通過移動通訊網(wǎng)絡來實現(xiàn)無線網(wǎng)絡接入的一類手機的總稱,其核心在于開放式操作系統(tǒng)可以讓手機在軟件和輔助硬件設備上進行擴展,從而達到增強手機功能、擴大手機本身的應用范圍的目的。真正引起人們注意的智能手機是2001年由諾基亞推出的9210及2002年推出的7650和3250,這三款手機均采用Symbian操作系統(tǒng),鑒于它們良好的市場表現(xiàn),一線手機廠商看好其發(fā)展的巨大潛力,紛紛推出自己具有影響力的產(chǎn)品。這其中真正暗藏的是操作系統(tǒng)間的較量,由于缺乏新技術的支持,塞班各個版本已相繼停止運營和更新,2013年1月24日晚間諾基亞宣布不再發(fā)布塞班系統(tǒng)的手機,標志著塞班系統(tǒng)的謝幕,而如今歷經(jīng)十余年的激烈競爭中國智能手機終端市場上有谷歌的Android、蘋果的IOS兩款操作系統(tǒng)暗中抗衡。
Android是Google公司于2007年宣布以Linx2.6平臺為核心開發(fā)的開源移動操作系統(tǒng),該系統(tǒng)由操作系統(tǒng)、中間件、應用程序框架和應用軟件組成,它采用軟件堆層[2]的架構,其中最底層的操作系統(tǒng)以Linx內核為基礎工作,由C語言開發(fā),只提供基本的核心系統(tǒng)服務,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務。中間件由函數(shù)庫和運行時庫組成,其中函數(shù)庫提供了JAVA的核心函數(shù)庫和C/C++的一些函數(shù)庫,通過應用程序框架為開發(fā)者提供服務;運行時庫相當于JAVA虛擬機,使得應用程序都在這個虛擬平臺編譯成機器碼文件,進而能屏蔽掉各種操作系統(tǒng)的不統(tǒng)一性后在所有硬件上都能運行;應用程序框架是編寫Google發(fā)布的核心應用時所使用的API框架,包括活動管理器、窗口管理器、內容提供器、視圖系統(tǒng)、包管理器、電話管理器、資源管理器、位置管理器、通知管理器九大部分,開發(fā)人員遵守框架的開發(fā)原則來開發(fā)自己的應用程序,提高了開發(fā)效率;應用軟件層的開發(fā)基本上采用JAVA作為官方語言,使用Google 提供的Android SDK中的工具集(包括編譯器、資源編譯器、調試器和仿真器),并使用Eclipse加上ADT( Android Developer Tools)插件作為集成開發(fā)環(huán)境開發(fā)。
IOS是蘋果公司專門為IPhone開發(fā),只能在蘋果公司自身的移動設備上安裝的操作系統(tǒng)。它是基于Unix的內核,具有Unix風格的內存管理和搶占式多任務處理,大大改進內存管理,允許同時運行更多軟件,是一個完全封閉型的操作系統(tǒng),不僅系統(tǒng)封閉,連應用、資源都是封閉的,只能通過APPStore商店購買。IOS的系統(tǒng)架構分為四個層次:核心操作系統(tǒng)層、核心服務層、媒體層和可觸摸層,其中,核心操作系統(tǒng)層包括內存管理、文件系統(tǒng)、電源管理以及一些其他的操作系統(tǒng)任務,可以直接和硬件設備進行交互;核心服務層是用來訪問IOS的一些服務;媒體層可以支持應用程序使用各種媒體文件,進行音頻與視頻的錄制,圖形的繪制,以及制作基礎動畫;可觸摸層為開發(fā)應用程序提供各種框架,其中大部分與用戶界面有關,負責用戶在IOS設備上的觸摸交互操作,IOS本身具備的最大優(yōu)勢是操控性極高的點觸式用戶界面,完全擺脫了手機的傳統(tǒng)鍵盤。
2 智能手機操作系統(tǒng)多任務運行機制概述
由于系統(tǒng)資源和電池容量的限制,移動操作系統(tǒng)不能像Windows桌面操作系統(tǒng)那樣為任務分配短暫的CPU時間片來輪流執(zhí)行,真正在后臺運行多個任務,移動系統(tǒng)的多任務是在不同應用中快速切換,切換其他應用時,原程序被掛起,暫停執(zhí)行。Android和IOS都是支持多任務的,機制基本相同,即“前臺運行后臺掛起,特殊情況有權限”,簡單有效的多任務管理模式能夠提升用戶體驗,提高使用效率,否則任由程序在后臺堆棧,電量很快被耗盡,失去多任務的意義。
Android系統(tǒng)原生(即硬件本身)就支持多任務[3],其運行模式是:當運行不同應用程序時進入了該應用相應的層面,層與層之間相互疊加,當新層活動時覆蓋在舊層上面,舊層被凍結(或者說是被掛起),新層被激活。谷歌為開發(fā)者提供了7個API(應用程序接口)來調整應用層之間的切換和運行,它的用途主要是用來設置如何切換,以及切換后要做怎樣的操作。Android為需要在后臺運行的應用提供了兩種解決方案:一是服務類應用,此類應用將由程序自身決定在該應用轉入后臺時仍需繼續(xù)運行的內容以代碼的形式寫入服務中,當該應用被轉入后臺運行時它所有活動的都被凍結,但寫入服務的那些操作仍然可由系統(tǒng)繼續(xù)執(zhí)行,如QQ等;二是廣播接收類應用,此類應用可以在系統(tǒng)分配的一個既定時間段和目標內在后臺完整運行,當應用消耗完時間,或達成了目標后,系統(tǒng)就會結束并凍結該應用的所有活動,如鬧鐘和GPS等應用。理論上Android系統(tǒng)沒有運行程序的數(shù)量限制,只要內存足夠可以無限制的開啟任意多個應用,當后臺中運行的應用越來越多,運行內存吃緊,系統(tǒng)便會強制結束凍結中的活動,優(yōu)先結束沒有服務類和廣播類的活動,其次是服務類,最后結束廣播類活動。
IOS最初不支持多任務,隨著即時通訊和GPS等應用的出現(xiàn),支持多任務已成為一種趨勢,IOS4.0引入了受限制的后臺多任務,采用“保存現(xiàn)場+通知系統(tǒng)”[4]的組合來支持多任務,雙擊Home鍵可以激活屏幕下方的夾層列出了所有最近被掛起的應用。單擊Home鍵從應用退回桌面,APP從活動態(tài)轉入后臺,絕大多數(shù)程序在幾秒內從后臺變?yōu)閽炱穑粧炱鸬腁PP仍然駐留在系統(tǒng)內存中,但并不占用CPU時間片運行,這也是在掛起后短時間內重新進入應用時會進入并恢復到退出時狀態(tài)的原因,但是由于IOS內存的容量是固定的,沒有像windows那樣占用存儲卡容量為APP開辟虛擬內存,當打開一些內存敏感的應用時,系統(tǒng)會自動清理那些沒用的或最早被掛起APP所占用的內存,由掛起變?yōu)橥V梗藭r再次通過單擊多任務夾層應用程序圖標時會發(fā)現(xiàn)重新加載程序,這些是偽后臺運行的程序。當然,IOS還支持受限的多任務和真正意義的多任務,如GPS導航和播客下載等應用,按下Home鍵后程序會保存到內存中,在有限的時間內占用CPU時間片繼續(xù)運行,直至導航至目地的和當前下載任務完成,然后通過一條信息通知用戶當前任務已完成,由系統(tǒng)將其變?yōu)閽炱馉顟B(tài);還有像Safari和Mail這樣真正意義上的多任務,允許程序在切換到后臺后無限制的做出動作,不會被結束,這類程序的數(shù)量受到嚴格限制。
3 智能手機操作系統(tǒng)的推送機制
移動智能操作系統(tǒng)的多任務運行機制為保證當前活躍應用的系統(tǒng)資源會根據(jù)內存實際運行情況自動結束前期掛起的應用,那么如果應用有一些更新或者消息要告知用戶怎么辦呢?這就要講到推送機制,當服務器端有更新時自動把最新的信息以鈴聲、應用圖標上的數(shù)字或一條文本信息的形式Push到客戶端上,這樣能更節(jié)省內存、CPU占用時間、3G流量及電量等,符合智能移動終端的需求。
在推送機制[5]方面IOS的發(fā)展較為成熟,IOS3.0中引入通知架構,這無論在單任務時代還是在“保存現(xiàn)場+通知系統(tǒng)”多任務體系實現(xiàn)中都貢獻了力量,完善的推送機制在效率、續(xù)航以及流量節(jié)省方面都帶來了優(yōu)勢,它的實現(xiàn)分為三個階段:1)Provider(某應用程序的Push服務器)把要發(fā)送的消息、目的IOS設備的標識打包發(fā)給APNS(蘋果的服務器);2)APNS在自身的已注冊Push服務的IOS設備列表中,查找有相應標識的IOS設備并把消息發(fā)到它;3)IOS設備把發(fā)來的消息傳遞給相應的應用程序,并且按照設定彈出Push通知。在這個過程中在這種機制下,應用本身不用有常駐的后臺進程,系統(tǒng)的開銷少,內存使用更少,電量也更少,并且Provider、APNS和IOS設備客戶端都是通過證書進行連接的,保證了其安全性和可靠性。
相比之下,Android就較為慚愧,雖然它也有類似IOS一樣的機制——GCM(Google Cloud Messaging),但由于系統(tǒng)的開放性,加之GCM服務器強制用戶有一個Gmail賬戶,而國內市場上主流品牌三星、HTC等都不支持Gmail賬戶登錄,造成國內的應用受到很大限制,但PUSH需求依然存在,所以各種形式的第三方推送服務較為流行,這也是使用不同廠商的Android手機有不統(tǒng)一的體驗的原因。
4 結束語
對于手機用戶來說,選擇智能手機的時候去除功能上的偏向和主要用途外,主要是選擇何種操作系統(tǒng)的智能手機,目前二者在國內市場上勢均力敵,均有著自己的優(yōu)勢,而且不斷推出新版本,加入新的具有特色的功能,只為給用戶提供更自然、更高效、更快捷的體驗。例如:IOS7在多任務處理方面終于告別了“偽后臺”,根據(jù)軟件以及用戶的使用情況來智能判斷其是否能夠占用后臺資源運行;又如,Android在惡意軟件防護方面加以改進,采用地址空間隨機化布局使得惡意軟件更難找到關鍵數(shù)據(jù)結構,而數(shù)據(jù)執(zhí)行防護機制也能中止惡意代碼在某些區(qū)域內的執(zhí)行。
[參考文獻]
[1]孫孺石.智能手機操作系統(tǒng)[M].人民郵電出版社,1996.
[2]段升杰.淺談軟件三層架構開發(fā)[J].信息與電腦,2010.
[3]Android的多任務運行機制,http://android.tgbus.com/Android/tutorial/201107/358597.shtml[EB/OL].
[4]IOS的多任務后臺是如何工作的,http://www.tudou.com/programs/view/F2E2B5BWcNw [EB/OL].
[5]IOS推送機制.http://wenku.baidu.com/view/9325b9dfd15abe23482f4da9.html[EB/OL].
作者簡介:段莎莉(1981-),女,山西洪洞人,山西國際商務職業(yè)學院,信息系,助教。