手機(jī)客戶端軟件開發(fā)最大的困難就是平臺(tái)不統(tǒng)一,手機(jī)開發(fā)平臺(tái)太多。
手機(jī)可分為智能手機(jī)開發(fā)和featherphone手機(jī)。開發(fā)平臺(tái)可分為開放式平臺(tái)和封閉式平臺(tái),開放式平臺(tái)包括symbian、windowsmobile、linux、iPhone、Android、BlackBerry、j2me、brew等,支持手機(jī)應(yīng)用程序通過OTA下載和安裝;封閉式平臺(tái)包括MTK、展訊、TI、飛利浦等。下面分別介紹。
1.Symbian:
Symbian平臺(tái)為目前智能手機(jī)市場(chǎng)的老大,智能手機(jī)全球市場(chǎng)占70%以上,在歐洲和亞洲占絕對(duì)優(yōu)勢(shì),只是在美國(guó)市場(chǎng)份額少得可憐,希望今年nokia在美國(guó)發(fā)力,趕上其它智能手機(jī)。根據(jù)UI風(fēng)格的不同,Symbian分為s60和UIQ兩個(gè)平臺(tái),其中nokia使用s60平臺(tái),索愛和moto采用UIQ平臺(tái)。Symbian平臺(tái)由于發(fā)展時(shí)間較長(zhǎng),又是市場(chǎng)老大,目前中文資料也較多,不像幾年前剛接觸時(shí)只有英文資料。以下書籍值得推薦:
《SYMBIANOS軟件開發(fā)開發(fā)--應(yīng)用C++開發(fā)智能手機(jī)應(yīng)用程序入門》(其中UI部分為UIQ平臺(tái)),
《Series60應(yīng)用程序開發(fā)》(以s60平臺(tái)為主,重點(diǎn)推薦)
《SymbianOSC++手機(jī)應(yīng)用開發(fā)(第2卷)》
另外今年將出來一本有關(guān)uiq3.0的新書,值得期待。
關(guān)于symbian的開發(fā)網(wǎng)站和論壇:
諾基亞論壇:最好的symbian論壇,
http://discussion.forum.nokia.com/forum/forumdisplay.php?f=6,其中還有中文論壇。
UIQ官方論壇:
http://developer.uiq.com/ Symbian公司中文論壇:
http://developer.symbian.com/forum/forum.jspa?forumID=37 NewLC網(wǎng)站:
http://www.newlc.com/ 索愛uiq官方論壇:
http://developer.sonyericsson.com/category.jspa?categoryID=3 索愛uiq中文論壇
http://developer.sonyericsson.com/forum.jspa?forumID=133 2.windowsmobile:
智能手機(jī)全球市場(chǎng)中windowsmobile占12%左右市場(chǎng)份額。開發(fā)與windows平臺(tái)類似,所以熟悉windows開發(fā)的能很快上手。目前沒有較好的針對(duì)windowsmobile的書,經(jīng)典書籍《Windows程序設(shè)計(jì)(第5版)》對(duì)于開發(fā)win32程序依然是最好的,經(jīng)典的書就是牛啊!雖然pocketpc支持MFC,但smartphone不支持,所以為了更好的移植,用win32開發(fā)較好。由本書做基礎(chǔ),再參考windowsmobile的sdk以及示例代碼,應(yīng)該能很快上手。
關(guān)于windowsmobile的開發(fā)網(wǎng)站和論壇:
Windowsmobile中文社區(qū):
http://www.winbile.net/BBS/ Pocketpcforum:
http://www.windowsmobiledn.com/forum/ 微軟官方網(wǎng)站:
http://www.microsoft.com/windowsmobile/developers/default.mspx 3.linux:
智能手機(jī)全球市場(chǎng)中l(wèi)inux手機(jī)僅占可憐的4.4%市場(chǎng)份額。原來moto還出過不少linux手機(jī),如A768、A1200、E680、E2、E6、V8等,07年8月份還信誓旦旦預(yù)測(cè)60%手機(jī)采用LinuxOS,但moto后來回購了UIQ的股份,又與微軟合作,還加入了google的開放手機(jī)聯(lián)盟,看來要拋棄自己的linux平臺(tái)了。另外,moto的策略是linux+j2me的模式,雖然采用linuxos,但并不對(duì)外開放linux的sdk,只有和moto合作的廠家才能獲得nativelinuxsdk,所以導(dǎo)致目前l(fā)inux手機(jī)開發(fā)的資料和論壇較少。雖然有民間linux高手破解了moto的linux的sdk,可以開發(fā)nativelinux的程序,但nativelinux的程序不能直接安裝在moto的linux手機(jī)上,還必須安裝一個(gè)插件,這對(duì)普通用戶又是難以跨越的一個(gè)門檻。所以個(gè)人覺得nativelinux手機(jī)的開發(fā)將走向末路。大部分linux手機(jī)的ui開發(fā)都是基于QT,關(guān)于QT開發(fā),可參考《C++GUIQt3編程》、《精通Qt4編程》,如果有moto官方的sdk,參考API文檔以及一些示例代碼,將可以較快上手,如果沒有官方的sdk,那就要話很長(zhǎng)時(shí)間hack了。目前沒有很好的關(guān)于linux手機(jī)開發(fā)的論壇,個(gè)人推薦陳罡的博客
http://www.cublog.cn/u/26691/,內(nèi)有motoa1200開發(fā)隨筆,對(duì)于熟悉和了解手機(jī)nativelinux開發(fā)有很大幫助。
4.MTK:
MTK最近幾年異軍突起,近70%的國(guó)產(chǎn)手機(jī)采用MTK的芯片和平臺(tái),黑手機(jī)更幾乎是MTK的代名詞。國(guó)內(nèi)廠家只有夏新沒有采用MTK的方案。MTK的模式名為“Turn-key”的全面解決方案,廠商采用了這個(gè)方案,只需要加一個(gè)手機(jī)外殼即可成品——這能大大降低了出貨時(shí)間,一般廠家只修改界面、鈴聲以及增加一些應(yīng)用軟件。有關(guān)MTK平臺(tái)的介紹,見環(huán)球企業(yè)家雜志的文章“國(guó)產(chǎn)手機(jī)操縱者聯(lián)發(fā)科的秘密”
http://www.cnbeta.com/articles/45580.htm。
MTK是私有平臺(tái),目前沒有書籍介紹MTK平臺(tái),所以只能從網(wǎng)上查找MTK的資料。以下資料大家可以從網(wǎng)上獲得,對(duì)于了解MTK很有幫助:《mtk訓(xùn)練課程.pdf》、《MMIPlatformSourceCodeTraining.pdf》主要是MMI界面開發(fā)介紹、《MMIResource&CustomizationTool.pdf》MMI資源工具介紹。
最近,MTK平臺(tái)MMI設(shè)計(jì)牛人FUGUI自己編寫了一本有關(guān)mtk平臺(tái)MMI開發(fā)的實(shí)例教程,書名為《MMI實(shí)例培訓(xùn)教程》(本書大家通過Google下載到),此書深入淺出,全面的介紹了MTK平臺(tái)MMI開發(fā)的各個(gè)方面,通過本書,開發(fā)人員將能很快進(jìn)入MTK平臺(tái)開發(fā)領(lǐng)域,實(shí)為MTK平臺(tái)MMI開發(fā)的圣經(jīng)!MTK平臺(tái)的操作系統(tǒng)為nucleus,有關(guān)nucleus的介紹網(wǎng)上有一篇文章《Nucleus實(shí)時(shí)操作系統(tǒng)分析報(bào)告》。MTK平臺(tái)主要用C語言開發(fā),所以要熟悉MTK開發(fā),首先必須熟悉掌握C語言,MTK的sdk與vc6集成,MMI的各控件和窗口之間通過回調(diào)函數(shù)實(shí)現(xiàn)通訊。
關(guān)于MTK的開發(fā)網(wǎng)站和論壇:
我愛研發(fā)網(wǎng):
http://www.52rd.com/上面幾篇文章和書籍都能從本網(wǎng)站找到。
手機(jī)研【非法詞語被屏蔽】壇:
http://www.1mp.cc/bbs/index.asp 5.展訊:
展訊平臺(tái)07年也發(fā)展很快,利用MTK下半年P(guān)A放大器缺貨的機(jī)會(huì),趁勢(shì)而入,搶走mtk很多市場(chǎng)份額。展訊的開發(fā)模式和MTK的很類似,基本也是給廠家提供整體解決方案,與MTK的差別見此鏈接
http://www.chinabyte.com/telecom/267/2507267.shtml。國(guó)內(nèi)主要是夏新、聯(lián)想、文泰等采用展訊平臺(tái)。展訊平臺(tái)采用的嵌入式操作系統(tǒng)是threadx,關(guān)于threadx的有一本中文書《嵌入式實(shí)時(shí)操作系統(tǒng)的多線程計(jì)算:基于ThreadX和ARM》。同MTK平臺(tái)一樣,為封閉平臺(tái),開發(fā)語言為C,開發(fā)環(huán)境為vc6,MMI的各控件和窗口之間與windows類似通過消息進(jìn)制實(shí)現(xiàn)通訊。另外也沒有書籍介紹展訊平臺(tái),以下資料值得推薦:
《Spreadtrum_SAP.ppt》
《MMK_Kernel軟件API接口說明書.doc》
《MMK_Window_Table開發(fā)說明書.doc》
《展訊平臺(tái)MMI窗口開發(fā)說明書.pdf》
《展訊手機(jī)平臺(tái)軟件簡(jiǎn)介.pdf》
關(guān)于展訊的開發(fā)網(wǎng)站和論壇:
手機(jī)研【非法詞語被屏蔽】壇:
http://www.1mp.cc/bbs/index.asp 6.J2ME:
J2ME平臺(tái)為手機(jī)上運(yùn)用最廣泛的開放式平臺(tái),絕大部分手機(jī)均已經(jīng)支持J2ME了。關(guān)于J2ME的書籍?dāng)?shù)不勝數(shù),個(gè)人推薦以下書籍:
《j2me技術(shù)手冊(cè)》
《J2ME開發(fā)大全》
《J2ME移動(dòng)應(yīng)用程序開發(fā)》
關(guān)于J2ME的開發(fā)網(wǎng)站和論壇:
J2ME開發(fā)網(wǎng):
http://www.j2medev.com/Index.html 中國(guó)Java手機(jī)網(wǎng):
http://www.cnjm.net/ 以及各手機(jī)廠商的官方j(luò)ava論壇
7.Brew
Brew的全稱是無線二進(jìn)制運(yùn)行時(shí)環(huán)境。Brew平臺(tái)是高通公司開發(fā)的,從無線應(yīng)用程序開發(fā)、設(shè)備配置、應(yīng)用程序分發(fā)以及計(jì)費(fèi)和支付的完整端到端解決方案中的無線應(yīng)用程序開發(fā)部分。目前絕大部分CDMA手機(jī)都支持Brew平臺(tái)。學(xué)習(xí)Brew平臺(tái),首先需要熟悉c語言。學(xué)習(xí)步驟和方法可參考”BREW高手之路-解析BREW學(xué)習(xí)過程”。
學(xué)習(xí)書籍:
《深入BREW【非法詞語被屏蔽】開發(fā)》
《BREW 技術(shù)開發(fā)與應(yīng)用》
這些書雖然不夠深入,但對(duì)于入門還是可以參考的。
關(guān)于Brew的開發(fā)網(wǎng)站和論壇:
Brew官方論壇:
http://brewforums.qualcomm.com/index.php
8. iPhone
Windows平臺(tái)iPhone開發(fā)環(huán)境搭建方法見筆者的文章《Windows平臺(tái)上iPhone基于cygwin開發(fā)環(huán)境的搭建方法》
http://canco.javaeye.com/admin/blogs/199106
開發(fā)入門介紹見筆者的文章《iPhone手機(jī)開發(fā)平臺(tái)入門介紹和教程》
http://canco.javaeye.com/admin/blogs/199144
9. Blackberry,Android
黑莓公司BlackBerry手機(jī)和Google的Android手機(jī)均只支持java開發(fā)。BlackBerry的開發(fā)網(wǎng)站和論壇:
BlackBerry開發(fā)者指南:
http://www.cnblogs.com/confach/category/36451.htmlBlackBerry官方網(wǎng)站:
http://na.blackberry.com/eng/developers/community.jsphttp://bbs.maxpda.com/forum-184-1.html
Android的開發(fā)網(wǎng)站和論壇:
http://www.androiddev.net.cn/bbs/
http://www.androidin.com/http://www.androidcn.net/
http://bbs.maxpda.com/forum-190-1.html
10. 其它Feather phone平臺(tái)
其它feather phone平臺(tái),如TI、飛利浦、英飛凌(Infineon)、飛思卡爾(Freescale)、Broadcom、Skyworks等平臺(tái),由于平臺(tái)私有,并且不提供第三方sdk,所以也沒有相關(guān)資料和文檔,希望有了解的朋友介紹一下。