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