隨著Macromedia在Flash Lite方面的大力推廣,這支Mobile新軍看來終於要展露頭角了。不可避免的,眾多的開發者會將它與現有的技術放在一起品評比較一番,而這次被推上擂台的,是已經在移動開發領域有著堅實基礎的J2ME。技術的比較有的時候很盲目,大家唇槍舌劍、旁證博引了半天,卻發現兩種技術根本就沒有可比性。而那些狂熱的擁護者則往往要追求一個“A最終會代替B”的極端。
那麼,J2ME和Flash Lite到底有沒有可比性?而Flash Lite的是否會代替J2ME原有地位而成為移動應用開發的首選。
我的觀點是: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)