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