自從2002年以來(lái),S60也經(jīng)歷了3年多的發(fā)展歷程,出現(xiàn)了數(shù)個(gè)版本:第1版(如7650),第2版(如6600),第2版FeaturePack1(如7610),第2版FP2(如6681),第2版FP3(如N70),第3版(如3250)。在第2版FP3及其以前的版本中,雖然每次升級(jí)都會(huì)引入一些兼容性問題,但主要軟件(本文指的是以.sis為擴(kuò)展名的S60軟件包,不包括Java軟件)是大體可以通用的。其中第1版到第2版的升級(jí)的兼容性破壞的相對(duì)嚴(yán)重一些,但尚可接受。
但是用戶一旦購(gòu)買了即將上市的使用S60第3版的手機(jī)就會(huì)發(fā)現(xiàn),現(xiàn)有的支持S60第1,2版的第三方軟件竟然沒有一款能夠在新手機(jī)上運(yùn)行了,甚至安裝都不行。這類手機(jī)包括3250、N71、N80、N91、N92、E60、E61、E70,以后會(huì)更多。看著手機(jī)屏幕的熟悉的S60界面,用戶可能很茫然。誠(chéng)然,S60第3版的顯示界面和前兩版的很類似,主要有了下列幾項(xiàng)改進(jìn):多種分辨率、橫向縱向屏幕的支持(并不是導(dǎo)致兼容性的根本原因,想想N90),卷滾條由底部菜單的箭頭改為右側(cè)的一條線,九宮格圖標(biāo)改為3x4,正在運(yùn)行的程序在九宮格對(duì)應(yīng)圖標(biāo)的右上角顯示一個(gè)小圓圈……。然而,藏在基本相同的用戶界面底下的,是操作系統(tǒng)的前后不同版本之間的巨大的差異。
S60第1版使用了Symbian 6.1版操作系統(tǒng),第2版和第2版FP1使用了Symbian 7.0s,第2版FP2使用了Symbian 8.0a,第2版FP3使用了Symbian 8.1a,第3版使用了Symbian 9.1(注意不要把Symbian 9操作系統(tǒng)和S90手寫屏平臺(tái)混淆,這是兩個(gè)不同的概念;赟90平臺(tái)的手機(jī)只有7710,它使用了Symbian 7.0s操作系統(tǒng))。因?yàn)镾ymbian自從版本9以后引入了許多嶄新的特性,使得它和以前版本的兼容性遭到了徹底的破壞。也就是說,S60的兼容性問題是其底層的Symbian操作系統(tǒng)導(dǎo)致的。在此給出帶來(lái)兼容性問題的3個(gè)主要新特性:
(一)開發(fā)Symbian 8.1a及以前版本的工具中,編譯器使用的是gcc for ARM。9.0及以后版本使用的編譯器是支持ABI標(biāo)準(zhǔn)的RVCT。誠(chéng)然,使用RVCT使得在相同的硬件條件下,新的系統(tǒng)速度更快、更省內(nèi)存。但是,兩者編譯產(chǎn)生的可執(zhí)行文件和DLL文件的格式有諸多不同,是導(dǎo)致系統(tǒng)兼容性問題的最主要原因。
(二)Symbian 9.0及以后的版本引入了新的系統(tǒng)安全模型。因?yàn)樵絹?lái)越多的個(gè)人信息(如電話簿、商業(yè)機(jī)密文檔)會(huì)被保存在智能手機(jī)中,防止惡意軟件或病毒竊取這些信息或者耗費(fèi)用戶通信費(fèi)用很有必要。用戶會(huì)注意到,以前的系統(tǒng)中安裝的某個(gè)軟件的所有文件都會(huì)存儲(chǔ)在\system\apps\xxx目錄下。Symbian 9.0及以后的系統(tǒng)中,某個(gè)軟件中的不同文件會(huì)存放在不同的目錄?蓤(zhí)行文件(.exe,以前是.app)被統(tǒng)統(tǒng)放在\sys\bin下,資源文件被統(tǒng)統(tǒng)放在\resource下,每個(gè)軟件的所有私有數(shù)據(jù)被放在\private\<軟件安全號(hào)>目錄下,其他目錄是供所有軟件共享的目錄。其中\(zhòng)sys\bin和\resource用戶不能更改,可執(zhí)行文件只能由安裝程序復(fù)制進(jìn)去。\private\<軟件安全號(hào)>只能由軟件安全號(hào)所對(duì)應(yīng)的軟件訪問。可執(zhí)行文件引入了能力模型。取得某些能力,例如訪問用戶的電話簿、發(fā)送短信、修改手機(jī)設(shè)置等,需要讓可執(zhí)行文件獲得Symbian公司或者諾基亞公司的數(shù)字簽名。系統(tǒng)還具備可執(zhí)行文件防纂改功能,安裝經(jīng)過修改的軟件包,或者用讀卡器修改存儲(chǔ)卡的\sys\bin目錄,會(huì)被Symbian系統(tǒng)發(fā)現(xiàn)。引入這些性特性,使得系統(tǒng)的安全性大大提高,各種私人數(shù)據(jù)可以放心的保存在手機(jī)中。但是系統(tǒng)安全模型的引入,是導(dǎo)致系統(tǒng)兼容性問題的另一個(gè)重要原因。
(三)Symbian 8.1a及以前版本全部使用了EKA1核心,9.0及以后版本使用了EKA2核心。EKA2全面改進(jìn)了EKA1的任務(wù)調(diào)度算法,完全支持實(shí)時(shí)性。實(shí)時(shí)性是支持某些高帶寬、高優(yōu)先級(jí)的任務(wù)對(duì)系統(tǒng)的基本要求。這些任務(wù)包括VoIP網(wǎng)絡(luò)電話、高速率的視頻在線點(diǎn)播。EKA2還可以利用最新的CPU特性。但是,EKA2和EKA1的一些區(qū)別導(dǎo)致了少量兼容性問題的出現(xiàn)。
因?yàn)檫@些新特性會(huì)導(dǎo)致S60第3版和先前版本的徹底的不兼容,所以Symbian和諾基亞在引入這些特性前肯定做了許多權(quán)衡。最后決定,為了Symbian和S60系統(tǒng)長(zhǎng)遠(yuǎn)的發(fā)展,例如支持VoIP、支持在線的MP4高速解碼和回放、支持商務(wù)人士對(duì)應(yīng)用軟件的安全性要求,忍受軟件兼容性的陣痛是值得的。另外,諾基亞已經(jīng)承諾,S60的第4版會(huì)和第3版保持兼容性。
為了讓自己的軟件能夠在S60第3版平臺(tái)上運(yùn)行,各軟件商必須修改自己的軟件,推出支持S60第3版的新版本。好在這個(gè)工作并不費(fèi)力,對(duì)源代碼作很少量的修改,用前面提到的新編譯器編譯一下,測(cè)試通過后新版本隨即誕生。我估計(jì)新手機(jī)面世后,用于S60第3版的軟件會(huì)馬上大量出現(xiàn)。另外,基于前面的原因,支持S60第3版的新版軟件也不能在現(xiàn)有的S60的第1,2版手機(jī)上運(yùn)行。所以以后各個(gè)第三方軟件可能會(huì)并列開發(fā)兩個(gè)版本,一個(gè)用于S60第1,2版,一個(gè)用于第3版。但S60第3版絕對(duì)是諾基亞今后的發(fā)展重點(diǎn),以后新出的S60手機(jī)基本都是第3版的,S60第1,2版的市場(chǎng)會(huì)逐漸消亡。而且S40的市場(chǎng)也會(huì)萎縮,只用于最低端的手機(jī)。S60第3版會(huì)成為今后幾年內(nèi)諾基亞手機(jī)的最主要平臺(tái),涵蓋中低端和高端手機(jī)。所以不用擔(dān)心S60第3版的前途。