2013年2月8日 星期五

[手機]Symbian系統究竟差在哪裡?






塞班衰落的原因並非如人們想像得那麼簡單。
  餘天升 程式員

  Symbian(塞班)的衰落,絕不是因為Symbian落伍了。

  首先,應當說,Symbian是一個優秀的嵌入式系統。Symbian是一個實時操作系統,是一個微內核系統,從設計的時候,就是為了能在有限的硬件資源和能源的環境下,長時間穩定運行的。Symbian採取了許多措施,比如使用微內核架構、嚴格控制內存洩漏、搶占式多任務調度等。Symbian使用的是Symbian C++進行開發,有自己一套完整的開發框架和機制,約束開發者,保証系統的穩定性和可靠性,提高系統的性能。

  這些都是,Symbian的優勢,同時也是Symbian的劣勢。在Symbian下進行應用的開發難度是很高的,因為要寫一個高質量的C++程式,確實不容易。

  Symbian檢測到內存洩漏,是會讓應用程式崩潰的。避免內存洩漏,這對於一般程式員來說,是一個不小的難題。

  雖然Symbian本身有二階構造函數、清除棧這樣的機制輔助開發者進行內存管理和控制,但是這些都需要開發者對C++的內存分配機制有一個比較清晰和深刻的瞭解,而大部分開發者,是不知道到底什麼是棧什麼是堆的。

  因為工作在硬件資源有限的嵌入式系統中,Symbian的棧大小非常有限,所有的數據都要放到堆上,於是需要使用二階構造函數。

  還有那個蛋疼的Leave機制,基本上是對C++過於簡單的異常機制的簡單封裝,稍微不慎,就會出現內存洩漏。

  在微內核機制中,許多東西都和我們平時的開發不一樣,大部分的系統功能都不在內核中,需要連接提供該功能的模塊進行操作,這些模塊都是C/S模式的。

  Symbian中不提倡使用多線程或者多進程,提倡使用調度器,進行搶占式多任務調度,我自認為對於併發控制學得比較好,多線程工作的問題也能處理和發現,但是對於這個搶占式多任務的流程,我真的足足花了一個禮拜才弄明白到底怎麼回事。

  因為上述原因,進行Symbian開發的門檻還是比較高的(相比於不需要關心上述所有問題的Java而言)。Symbian的機型非常多,使得Symbian上應用的調試也比較麻煩,除了螢幕解像度、鍵盤結構、揚聲器數量、相機型號、閃光燈等因素,即使是同一款系統,運行在不同機型上的系統也有細微的差別,所以往往要對眾多的機型進行適配。

  除了不討好開發者以為, Nokia 在一些方面也是比較認死理,比如手機就應該不容易摔壞,手機信號就是應該好。我一直覺得,這個是 Nokia 遲遲不使用大尺寸電容屏的原因之一(當然,大家常調侃的Q屏採購量過大沒用完可能也是)。即使到今天,摔不壞、信號好依然是 Nokia 給大家的印象,難以磨滅。我們必須承認,這些都是對的,但是,這些也確實是不容易被人們注意到的方面。

  Symbian S60 第三版開始,對應用引入了簽名機制,只有有簽名的應用才能安裝到機器上。有人認為複雜的簽名機制是導致Symbian衰落的原因之一。其實簽名並沒有錯,iOS上一樣也是使用簽名機制,不也是好好的?錯的是當時那個互聯網暫時還沒有普及到手機上的時候,人們過多的使用了盜版軟件,而我們也都知道,只有盜版軟件才需要進行複雜的簽名才能安裝到自己的手機上的。

  至於操作系統的界面,這個我想不用我說太多,用過的人,不管懂行不懂行,都知道怎麼評價。Symbian的界面要說很差我覺得不至於,時間太久了沒有什麼變化,讓大家缺少新鮮感,然後直接敗給了又好看又好玩的 Apple 。

  在系統上,不討好開發者;在使用的時候,也不討好使用者,但是憑藉多年的積累,Symbian還是穩穩的把握住了市場,當時不是沒有其他的系統,Windows Mobile、Palm、BlackBerry OS都是。但是Symbian因為定位能在性能比較差的機器上運行, Nokia 的智能機在性能、種類和價格上,以及Symbian平台上的眾多的應用,穩穩的壓倒了其他競爭者。

  2007年iPhone剛剛出現的時候,不僅僅是 Nokia ,全世界都覺得這是個笑話。一個不能換鈴聲、不能後台運行程式,甚至就根本沒有第三方應用的手機,怎麼好意思稱作智能機,唯一的亮點,大概就是那個好玩的多點觸控的螢幕,和那個相比於Symbian將近十年不變的界面,相對好看的UI。

  當然後來,全世界都知道了,喬幫主在下一盤很大的棋,當祭出App Store這個大殺器的時候,所有的開發者都開始倒戈了。因為Symbian開發困難,還賺不到錢, Apple 上開發簡單,沒有盜版,能賺到錢。錢這個東西一來引誘,加上Symbian即不討好開發者,也不討好使用者,當然也就沒有人擁護。

  價格上, Nokia 從低端到高端全線都有,不過在高端市場(不含vertu),價格一直都很坑爹,旗艦級的機器往往都能5k+到6k+。 Apple 也是跟運營商合作,通過套餐,讓iPhone的使用成本跟別的機器基本沒有區別。正好手機壞了,幾百刀買一個iPhone,幾年的合約,還不見得比別的手機貴,還好玩,為什麼不呢?



.[手機]Symbian系統究竟差在哪裡?
http://digital1010.blogspot.com/2013/02/symbian.html