背景資料
3G時代的到來,使得手機套用日漸熱門,由於手機攜帶方便,並且是生活必帶隨身用品,而且信號覆蓋廣,操作便捷,使得人們對其給予了越來越高的期望。大家期待各種常見的或是重要的信息化系統、網際網路套用可以被移植到手機上同步使用,使用戶無論在何時何地,都可以連線精彩的網路世界,登錄信息系統。為此,如何進行手機開發,如何在手機上催生各種多姿多彩的精彩套用,日漸成為整個ICT產業關注的焦點。手機套用
由於整個市場還處於發軔階段,目前大眾對於手機套用了解並不很多,但其實在這個市場早已是暗流涌動,春潮泛濫,各種各樣有趣的套用層出不窮,新奇創意不斷,大量原來PC和網際網路上的信息化套用、網際網路套用均已出現在手機平台上,一些前所未見的新奇套用也開始出現,並日漸增多。下文將介紹一些目前市場上較為流行的精彩套用。開發難題
1、手機作業系統很多:Android,Mac OS,Symbian S60, UIQ, Windows Mobile, Linux, Brew、 Blackberry……,要想克服不同手機平台的差異,實現套用的統一覆蓋異常困難;2、手機開發很難:開發人員稀缺,成本太高,進度太慢,無線網路太複雜,門檻障礙太多……;
3、軟體或網際網路公司如果為了實現移動套用,而把精力投入到並非自己所長的領域,無疑將會得不償失。
4、行業需要專業的角色,來解決開發套用過程中的各種難題,將複雜難題封裝簡單,把各種異構封裝透明,降低大家進入這個市場的門檻。
問題解決方法
經過全行業長達多年的不斷探索,業界主張將MKey無線中間件作為標準化的無線開發平台,進行手機開發和手機套用。利用MKey無線中間件進行手機開發,不僅能夠解決上述的各方面開發難題,而且在成本控制、開發周期、開發難度等方面,均是目前最為出色的實現方法,整體開發技術水平相較國外無線開發而言,也顯得十分突出。MKey無線中間件禁止了各種硬體平台、作業系統、無線網路和數據源的差異,將所有技術難點進行了統一封裝,可幫開發者快速、低成本實現移動化開發套用。
MKey無線中間件的特點
開發1次,全終端適用;2周完成一個項目的開發;
開發費用節省70%;
開發周期縮短80%。
開發模式的比對
1、沒有MKey的移動開發* 手工作坊模式,所有技術從頭到尾研究,“自己種棉自己織布”
* 實施一個普通的移動OA項目,需要耗費5-10人/月
* 會手機開發的人才稀少,人員成本高昂
* 多終端覆蓋難以實現,綜合成本十分巨大
* 一年實施十幾個無線項目已是極限
* 技術不成熟、不可控因素多,項目風險高,一旦失敗損失巨大
————————————————————————————————————
2、利用MKey進行移動開發
* 工業流水線模式,使用專業工具,快速批量“織布”
* 實施一個普通的移動OA項目,只需0.5-1人/月
* 只需了解Web開發,經過幾天培訓就能上手使用MKey,人才資源豐富、成本小
* 只需編寫一次程式,就能生成適用不同平台的多個安裝包,全終端覆蓋
* 一年實施幾百個項目輕而易舉
* 成熟工具、成熟套用,項目實施高度可控,無任何後顧之憂
MKey無線中間件的開發原理
MKey可實現的手機套用
1、企業套用***CMMB移動電視增值平台
***移動(無線)電子政務平台
***移動電子商務平台
***移動OA
***移動IM
***移動CRM
***移動erp
***手機業務助理
***移動維保
***移動物流
***移動保險
***移動采編
***移動進銷存
***移動直銷管理
***移動分銷管理
***移動電子商務
***移動執法
***移動稅務
***移動統計
***移動警務
***移動城管
***移動工商
***……
2、個人套用
***手機搜尋
***手機瀏覽器
***手機證券
***手機自助服務系統
***手機銀行
***手機社區
***手機郵件
***……
開發平台
有三大平台:Symbian、WindowsMobile(以下簡稱Windows)、Linux。Palm已經完全出局了,不需要再考慮。另外還有兩大陣營:J2ME陣營(跨多種作業系統,包括Windows)和ASPCF陣營(只能運行在Windows上,以下簡稱ASP)。這些平台上的開發語言包括:
Symbian:C++、Java、Python
Windows:C#、C++、VB、Java
Linux:C++、Java...
J2ME陣營:Java
ASP陣營:C#
手機開發趨勢
J2ME相比.NET來說,優勢主要在遊戲開發方面,但是.NET有著更加廣泛的用途。在MIDP2.0中,核心部分所加入的主要是對於3D圖形、多媒體、GameAPI的支持,用來支持遊戲的開發。因為在制定MIDP2.0規範時時間有限,所以將其他很多重要的功能都放入了可選包中,而不是作為MIDP2.0的核心內容。因此儘管很多手機都聲稱支持MIDP2.0,但是可能沒有安裝某個可選包,使得使用了這個可選包的軟體在這款手機上無法運行。例如,假如沒有安裝PDA可選包,就無法訪問手機的本地檔案系統、無法讀取通信錄、無法讀取信箱中保存的簡訊。而這些功能是開發個人信息備份/恢復軟體所必需的。不過這種情況會隨著時間的推移而逐漸好轉,新推出的智慧型手機中都包括了越來越多的可選包,Nokia、Motorola、索愛等大廠商對於J2ME的支持力度是非常大的。除了可選包未安裝這個限制之外,J2ME套用運行在嚴格的沙箱之中,要開發使用除系統記憶體、顯示、聲音控制之外的其他資源(例如,本地檔案系統、通信錄、信箱),所開發的套用必需經過簽名,這個開發過程相當的繁瑣。正是因為目前大多數Symbian手機上J2ME版本太老,功能非常有限,所以除非開發遊戲類套用,大多數Symbian開發者都選擇使用C++做開發,因為C++可以訪問系統所有的資源。然而,SymbianC++儘管有很多優點,但是對於開發者卻是很不友好的,學習門檻相當高(一大堆的清規戒律,好像是魯提轄上了五台山),從面向對象設計的角度來看問題也很多(與MFC類似,也許有人認為面向對象在手機開發中並不是很重要)。沒有半年時間想成為SymbianC++的高手相當困難,這個巨大的sinklost需要經過慎重的權衡。
在Symbian上使用Python做開發的人還很少,優缺點目前還不大清楚。
順便說一下,Nokia今年上半年推出了開發工具Carbide,針對SymbianC++和J2ME分成兩個版本,這兩個版本都是基於Eclipse的。
在Windows上也可以做J2ME開發,如果手機安裝了MIDP2.0的支持就可以直接使用,如果沒有安裝,需要開發者另外安裝。Windows上比較好用的是IBM的J9VM,但是J9VM僅包括MIDP2.0的核心部分,而不包括大量的可選包。如果你只是開發遊戲,那應該是夠用了。
不過Windows開發者首選的還是C#,C#開發效率大大高於C++,性能也很不錯。相比Java來說,可以更加容易地訪問所需要的資源,因此開發效率也更高。Windows上前幾年使用的EmbedVC++、EmbedVB兩個工具已經退居二線。
Linux上可以使用C++和Java做開發,筆者對於在Linux上如何做開發沒有任何經驗,在此略過。
綜上所述,目前在手機開發中占據統治地位的是三大語言:C++、Java與C#。
J2ME與.NET兩大平台相比,J2ME在遊戲開發方面有優勢,而.NET在遊戲以外其他領域的開發(例如:移動企業套用)更有優勢。但是由於J2ME得到了手機一線大廠的力捧,因此前途不可限量。目前銷售Windows智慧型手機的廠商主要還是一些新興的排名稍靠後的廠商(聯想、多普達、夏新...)。
移動智慧型套用比較發達的國家是日本和美國。在日本是以遊戲類套用為主,在美國是以移動企業套用為主。中國將來走的道路,大概會與日本相同。因此在3G上馬後,J2ME套用在國內的爆發是可以預期的。