比較
隨著Macromedia在Flash Lite方面的大力推廣,這支Mobile新軍看來終於要展露頭角了。不可避免的,眾多的開發人員會將它與現有的技術放在一起品評比較一番,而這次被推上擂台的,是已經在移動開發領域有著堅實基礎的J2ME。技術的比較有的時候很盲目,大家唇槍舌劍、旁證博引了半天,卻發現兩種技術根本就沒有可比性。而那些狂熱的擁護者則往往要追求一個“A最終會代替B”的極端。
那麼,J2ME和Flash Lite到底有沒有可比性?而Flash Lite的是否會代替J2ME原有地位而成為行動裝置 App開發的首選。
我的觀點是:J2ME和Flash Lite在某些領域存在交集,因此如果Flash Lite可以被廣泛支援,確實給了開發人員相對於J2ME而言更好的選擇。但在大部分時候,它們適用於不同需求,因而不存在Flash Lite代替J2ME的可能。
首先來說說J2ME和Flash Lite的“交集”在哪?Flash Lite/J2ME讓我們可以充分的利用行動裝置的計算能力,而無需藉助網路和伺服器,即便需要串連網路,我們也可以將大量的工作交由用戶端完成,從而減低伺服器的壓力和網路頻寬的耗費,這是與WAP的技術最大的區別,也是優勢所在。因此,從理論上講,J2ME和Flash Lite都可以用於在行動裝置上實現商務、娛樂、管理等功能。
但是,Flash Lite和J2ME兩者都具備自身的優勢和劣勢,這種優勢和劣勢也導致了兩者必將在不同的領域發揮作用。http://www.design-nation.net/en/archives/000453.php 這篇文章中談到的幾點我不再贅述,以下是我對二者區別的補充:
1.Flash Lite擁有統一的規範,即Flash Lite Player,任何安裝了Flash Lite Player的裝置都可以播放Flash Lite檔案而不需要加以編譯修改。J2ME儘管在基礎規範(MIDP/CLDC)上相對統一,但是大量的可選包使得程式的相容性下降。更何況各個廠商的KVM實現還有眾多Bug。
2.Flash Lite無疑會提供更好的使用者體驗,擺脫了MIDP lcdui甚至是手機底層的MMI實現,開發人員可以自由的設計應用程式的介面,同時也避免了使用API的困擾。相對而言,MIDP的UI架構過於醜陋,而且功能簡單。(我現在正在試圖解決這一問題)。當然,繪製複雜美觀的介面也會帶來資源和效能的耗費,因此開發人員需要在兩者之間尋找平衡點。
3.Flash Lite支援SVG,同時本身也是向量格式,因而在解析度多樣化的移動平台上可以更好的施展拳腳。J2ME開發人員則需要認為解決解析度適應的問題。在某些狀況下,為了適應解析度而帶來的工作可能非常繁複。而且使用J2ME製作MTV類動畫幾乎不可能,逐楨繪圖方式在J2ME上不可能毫無顧慮的使用。
4.Flash Cast??現有資料太少,不知道他究竟能發揮多大的威力,但無論如何是值得期待的。相反,Sun並沒有推出與J2ME完美整合的伺服器技術,但事實上,J2ME可以和任何一種伺服器技術整合。
5.Flash Lite從現在看來,功能還過於單薄。J2ME則由JCP推動其發展,新規範曾出不窮,從對手機底層的訪問,到多媒體的支援,從SVG到G3D。儘管很多規範真正在手機上實現還需要一段時間,但至少我們知道,J2ME真的可以做很多事。
6.Flash Lite目前並不是以native方式存在於手機中,而是用應用程式擴充的方式,儘管安裝一個.sis檔案並不是難事,但如果廠商可以將Flash Lite Player綁定在手機中,相信推廣程度會更好。
7.Flash Lite仍然不適合作複雜的應用,包括商務和娛樂方面,從安全機制,儲存能力,網路連接等層面,Flash Lite都比較薄弱,而且可能難以改進,而在這幾個方面J2ME要強得多。
8.儘管簽下了Nokia和SamSung,但是Flash Lite推廣的路還很長。而且,非智能手機仍然佔據了大部分市場,Nokia雖然致力於發展S60等智能手機平台,但S40手機仍然是主要盈利點。因此,如果Flash Lite只能出現在S60一類的中高端智能手機上,對Flash Lite的普及可能並不是十分有利。
作為一個開發人員,最重要的是瞭解各種技術的優勢劣勢,用適當的工具完成最適當的工作。至於“那種技術最強”的問題,大可不必爭個你死我活。
註:文本中的J2ME實際上特指(MIDP/CLDC規範,不包含CDC和PersonalJava)