手機開發

手機開發

手機開發也稱為移動開發,或叫做移動化開發。是指以手機、PDA、UMPC等便攜終端為基礎,進行相應的開發工作,由於這些隨身設備基本都採用無線上網的方式,因此,業內也將手機開發稱作為無線開發。

背景資料


3G時代的到來,使得手機應用日漸熱門,由於手機攜帶方便,並且是生活必帶隨身用品,而且信號覆蓋廣,操作便捷,使得人們對其給予了越來越高的期望。大家期待各種常見的或是重要的信息化系統、網際網路應用可以被移植到手機上同步使用,使用戶無論在何時何地,都可以連線精彩的網路世界,登錄信息系統。為此,如何進行手機開發,如何在手機上催生各種多姿多彩的精彩應用,日漸成為整個ICT產業關注的焦點。移動終端的開發對於經濟,國防,通訊的發展都很重要。現代社會的發展對於移動終端的需求更是愈趨明顯,所以手機開發的前景是廣闊的。

手機應用


手機應用的範圍很廣,狹義地可以說是手機上的某個軟體,廣義地也可以說是移動終端的某項網路服務,這個沒有絕對界限。手機應用的主要目的是提供更好的用戶體驗與服務,實現手機操作的便捷化,智能化,多元化。

開發難題


1、手機主要操作系統有:Androidi OSSymbian , Windows Phone ,Blackberry。要想克服不同手機平台的差異,實現應用的統一覆蓋異常困難;這個是基於系統內核與硬體支持的差異性所導致的。
2、手機開發很難?開發人員稀缺,成本太高,進度太慢,無線網路太複雜,門檻障礙太多這些都是過去的情況了。現的許多終端生產商或軟體公司都已經意識到手機開發對於公司及產品發展都有著極其重要的作用,所以開發者都被願意加入到這些公司中,這樣開發者集聚一起,實現了開發新模式——合作化。例如Google,Apple,魅族小米等等
4、行業需要專業的角色,來解決開發應用過程中的各種難題,將複雜難題封裝簡單,把各種異構封裝透明,降低大家進入這個市場的門檻,

解決方法


經過全行業長達多年的不斷探索,業界主張將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可選包,就無法訪問手機的本地文件系統、無法讀取通信錄、無法讀取信箱中保存的簡訊。而這些功能是開發個人信息備份/恢復軟體所必需的。不過這種情況會隨著時間的推移而逐漸好轉,新推出的智能手機中都包括了越來越多的可選包,NokiaMotorola索愛等大廠商對於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應用在國內的爆發是可以預期的。