快速擇校
政策解讀
010-51291557
客服熱線:8:00-20:00
自從2007年我們認(rèn)識(shí)到喬布斯的iphone以后,移動(dòng)應(yīng)用的發(fā)展從此開(kāi)始迅速發(fā)展,給我們帶來(lái)了移動(dòng)互聯(lián)網(wǎng)的新時(shí)代。移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)是移動(dòng)互聯(lián)網(wǎng)的熱門(mén)專(zhuān)業(yè)之一,今天小編就給大家?guī)?lái)移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)選擇六要素。
平臺(tái)選擇
從2007年到現(xiàn)在,涌現(xiàn)出了不少面向移動(dòng)設(shè)備的操作系統(tǒng)平臺(tái)。先不論原先已存在的Symbian和Windows Mobile系統(tǒng),新的系統(tǒng)就有蘋(píng)果的iOS、Google的Android、Palm/HP的WebOS、Nokia的Maemo/MeeGo、三星的bada,以及RIM新的基于QNX的PlayBook Tablet OS。
一個(gè)真正占有市場(chǎng)的平臺(tái)才能吸引更多開(kāi)發(fā)者為其開(kāi)發(fā)更多應(yīng)用,更多應(yīng)用又能反過(guò)來(lái)替平臺(tái)爭(zhēng)取更多用戶,從而促進(jìn)平臺(tái)的進(jìn)一步發(fā)展。正是由于平臺(tái)與應(yīng)用之間相輔相成的關(guān)系,使得平臺(tái)的選擇成為開(kāi)發(fā)者首要關(guān)注的重點(diǎn)。
對(duì)于開(kāi)發(fā)者而言,一個(gè)移動(dòng)平臺(tái)的意義,并不只是一個(gè)操作系統(tǒng)而已,它還包括了與之相聯(lián)系的整個(gè)生態(tài)環(huán)境。平臺(tái)的市場(chǎng)占有率直接決定了應(yīng)用能夠被多少消費(fèi)者使用,平臺(tái)本身又能帶給開(kāi)發(fā)者多少回報(bào)。這些都是在平臺(tái)選擇中必須考慮到的問(wèn)題。
無(wú)疑,iOS和Android是目前占有市場(chǎng)份額最大的兩個(gè)平臺(tái)。這兩個(gè)平臺(tái)不但用戶眾多,擁有的開(kāi)發(fā)者數(shù)量、應(yīng)用數(shù)量和下載量也都遠(yuǎn)遠(yuǎn)高于其他平臺(tái)。一些數(shù)據(jù)可以反映這種情況: 在今年最新的北美地區(qū)智能手機(jī)市場(chǎng)份額調(diào)查中,Android及其定制版占有了58.67% 的市場(chǎng)份額,iPhone占有14.67%,Symbian占有14.33%,BlackBerry占有9.2%,bada占有3.33%,而Windows Phone僅占有1.67%的份額。
作為一個(gè)平臺(tái),iOS有以下幾大特點(diǎn):第一,iOS是一個(gè)相當(dāng)一致的系統(tǒng)。目前蘋(píng)果僅有三種運(yùn)行iOS的設(shè)備:iPhone、iPad和Apple TV。從API方面來(lái)說(shuō),這三種設(shè)備的不同代產(chǎn)品各自的設(shè)備屬性都相當(dāng)固定,而各自的操作系統(tǒng)版本也都保持一致,這對(duì)開(kāi)發(fā)者來(lái)說(shuō)是一件極其方便的事情;第二,iOS系統(tǒng)本身具備了相當(dāng)良好的,內(nèi)建流暢的用戶交互實(shí)現(xiàn)。就算是一個(gè)照著教科書(shū)中規(guī)中矩寫(xiě)出來(lái)的iOS程序,其用戶體驗(yàn)也會(huì)不會(huì)差;第三,蘋(píng)果提供了一個(gè)非常良好的iOS程序開(kāi)發(fā)環(huán)境。只有很少的功能是模擬器無(wú)法模擬而必須在真機(jī)上進(jìn)行調(diào)試測(cè)試的;最后,蘋(píng)果本身的品牌也是一個(gè)相當(dāng)有影響力的支持。
另一個(gè)主要的平臺(tái)就是Android。得益于Google對(duì)Android的開(kāi)放(不向廠商收取授權(quán)費(fèi)), 以及大大小小各種廠商的機(jī)海戰(zhàn)術(shù),Android手機(jī)的占有量已經(jīng)是第一位了。因此,選擇了Android平臺(tái)就意味著選擇了最大的用戶群體。另外,Android本身源碼的開(kāi)放性,對(duì)于一些需要利用底層實(shí)現(xiàn)細(xì)節(jié)的開(kāi)發(fā)者來(lái)說(shuō),是個(gè)很好的特性。而且從開(kāi)發(fā)本身來(lái)說(shuō),Android 所采用的開(kāi)發(fā)語(yǔ)言和環(huán)境, 相對(duì)來(lái)說(shuō)比iOS 的門(mén)檻要低,這是它的優(yōu)勢(shì)所在。但也正是因?yàn)锳ndroid的開(kāi)放,造成了市場(chǎng)上Android設(shè)備的規(guī)格特性各不相同,增加了應(yīng)用開(kāi)發(fā)中機(jī)型適配所帶來(lái)的大量開(kāi)發(fā)和測(cè)試工作。
除了iOS和Android這兩大巨頭之外,Microsoft的Windows Phone 7從去年開(kāi)始也大張旗鼓地開(kāi)始發(fā)力。在WP7平臺(tái)上,Microsoft仍然扮演著系統(tǒng)提供商的角色, 硬件生產(chǎn)仍然是各個(gè)廠商的事。但Microsoft為了保證用戶體驗(yàn)的一致性,對(duì)設(shè)備的指標(biāo)作了非常嚴(yán)格的規(guī)定。因此,目前WP7還沒(méi)有機(jī)型適配的問(wèn)題。在新的移動(dòng)市場(chǎng)上,Microsoft顯然來(lái)晚了一步, 成為占有比較小的市場(chǎng)份額的競(jìng)爭(zhēng)者,這一點(diǎn)遠(yuǎn)遠(yuǎn)比不上iOS和Android。 另外,WP7提供了專(zhuān)有的Metro UI界面形式,展現(xiàn)了跟iOS和Android都截然不同的風(fēng)貌,這對(duì)其是有益的。從開(kāi)發(fā)本身來(lái)說(shuō),Microsoft為WP7開(kāi)發(fā)者提供的工具有比較大的限制。除了 Silverlight和XNA之外就沒(méi)有別的支持了。很多非Web Based的、非游戲類(lèi)應(yīng)用無(wú)法在現(xiàn)有的平臺(tái)上進(jìn)行開(kāi)發(fā)。這不能不說(shuō)是一個(gè)弱點(diǎn)。
三者之外,除了BlackBerry在北美地區(qū)的占有率較高以外,別的平臺(tái)都只占有少少的一點(diǎn)份額。BlackBerry的系統(tǒng),已是一個(gè)落后整個(gè)產(chǎn)業(yè)十余年的東西,BlackBerry賴(lài)以生存的基礎(chǔ)是集成到系統(tǒng)中的push mail機(jī)制,而不是它的系統(tǒng)本身是先進(jìn)還是落后。Symbian則是連Nokia自己都放棄的東西,不會(huì)對(duì)現(xiàn)在的開(kāi)發(fā)者有多大的吸引力。webOS生不逢時(shí),空有良好的用戶體驗(yàn)和很有特色的開(kāi)發(fā)方式,卻最終被HP所拋棄。三星的bada則仿佛是其自身的一畝三分地,只在wave系列中推出。
從市場(chǎng)占有率來(lái)看, 開(kāi)發(fā)者首選的平臺(tái)無(wú)疑是iOS和Android了。除了已占有的市場(chǎng)份額,以及目前所能看到的發(fā)展前景之外, 對(duì)開(kāi)發(fā)者來(lái)說(shuō),還有一點(diǎn)非常重要:這個(gè)平臺(tái)對(duì)開(kāi)發(fā)者的回報(bào)如何,對(duì)于開(kāi)發(fā)者的支持如何。在這一點(diǎn)上目前蘋(píng)果比Google做得好。各種調(diào)查統(tǒng)計(jì)數(shù)據(jù)表明,在iOS平臺(tái)上的開(kāi)發(fā)者收入要高于Android平臺(tái)。另外,蘋(píng)果對(duì)從設(shè)備到應(yīng)用的嚴(yán)格控制雖然為人詬病,但也無(wú)可非議地為應(yīng)用開(kāi)發(fā)者創(chuàng)建了一個(gè)單一而良好的環(huán)境。反過(guò)來(lái),Google的開(kāi)放政策變成了不管不問(wèn)政策,由于沒(méi)有審查機(jī)制,導(dǎo)致Android Market里有很多質(zhì)量低劣的應(yīng)用,甚至是惡意應(yīng)用。官方的Android Market尚且如此,各種第三方的商店市場(chǎng)就更不用說(shuō)了。
當(dāng)然,在做平臺(tái)選擇時(shí),可能還會(huì)有一些其他因素存在。比如在iOS上,應(yīng)用無(wú)法讀取用戶的短信記錄,也不能在不通知用戶的情況下發(fā)送短信或者撥打電話。對(duì)于有這樣需求的應(yīng)用(我們姑且先不談是否惡意或者侵犯隱私)就只能在Android上開(kāi)發(fā)了。因此,對(duì)于平臺(tái)的選擇,市場(chǎng)占有量、生態(tài)環(huán)境的優(yōu)劣、以及平臺(tái)是否能提供所需要的具體功是幾個(gè)比較重要的考慮因素。
技術(shù)路線的選擇
操作系統(tǒng)
首先考慮的是操作系統(tǒng)。操作系統(tǒng)是開(kāi)發(fā)應(yīng)用的基礎(chǔ),操作系統(tǒng)的能力提供也限制了開(kāi)發(fā)的應(yīng)用程序的能力。其實(shí),在選擇平臺(tái)的部分,我們已考慮到了操作系統(tǒng)。因?yàn)楝F(xiàn)在的平臺(tái)本身,就是以設(shè)備,運(yùn)行在其上的操作系統(tǒng), 以及圍繞著應(yīng)用開(kāi)發(fā)和用戶建立起來(lái)的一個(gè)生態(tài)環(huán)境組成的。在設(shè)備廠商的設(shè)備差異努力被操作系統(tǒng)隱藏起來(lái),運(yùn)營(yíng)商慢慢淪為純粹的數(shù)據(jù)帶寬提供商的今天,我們通常都已經(jīng)直接把操作系統(tǒng)的名稱(chēng)用作平臺(tái)的名稱(chēng)了。不過(guò),在選擇平臺(tái)時(shí),我們會(huì)更多地考慮到宏觀因素,而做具體的技術(shù)選擇時(shí),就要多考慮一些具體的技術(shù)因素。
系統(tǒng)是否支持多任務(wù)。支持多任務(wù)意味著可以編寫(xiě)運(yùn)行在后臺(tái)的服務(wù)程序,可以在不干擾或者不通知用戶的情況下做一些工作。目前,iOS系統(tǒng)只支持一些有限的多任務(wù),而Android則對(duì)此不加限制。所以,如果有很強(qiáng)烈的多任務(wù)需求的應(yīng)用, Android會(huì)是一個(gè)更好的選擇。
操作系統(tǒng)本身對(duì)應(yīng)用能做的事情有什么樣的限制。相對(duì)來(lái)說(shuō),iOS對(duì)應(yīng)用的限制較大,應(yīng)用程序運(yùn)行在一個(gè)單獨(dú)的沙盒中,不能讀寫(xiě)任何其他應(yīng)用的數(shù)據(jù),只能訪問(wèn)很少一部分系統(tǒng)允許應(yīng)用訪問(wèn)的數(shù)據(jù)。而Android限制較少,絕大部分系統(tǒng)數(shù)據(jù)都能訪問(wèn)。
安全性和隱私。應(yīng)用能訪問(wèn)的系統(tǒng)數(shù)據(jù)越多,所能獲得的用戶信息也就越多,用戶的隱私和數(shù)據(jù)安全就越難以得到保障。從這個(gè)角度看,iOS 顯然更優(yōu)勢(shì)。
使用同一系統(tǒng)的不同設(shè)備之間的差異。這是一個(gè)跟操作系統(tǒng)和具體設(shè)備都相關(guān)的重要因素是。差異越大,應(yīng)用開(kāi)發(fā)中需要對(duì)不同設(shè)備作不同處理的地方就越多。iOS一致的設(shè)備指標(biāo)使開(kāi)發(fā)者不用在這方面花什么心思。反觀Android,設(shè)備的差異非常大,從屏幕分辨率大小到有無(wú)鍵盤(pán),從電阻屏還是電容屏到有沒(méi)有浮點(diǎn)處理器,每一款都有其自身特色和不同之處。這樣就使得應(yīng)用開(kāi)發(fā)者需要對(duì)大部分不同的設(shè)備都作測(cè)試才能發(fā)布到市場(chǎng)上,很多時(shí)候還需要針對(duì)不同的設(shè)備編寫(xiě)不同代碼。說(shuō)得再遠(yuǎn)一些,那些基于Android開(kāi)放的源代碼修改出來(lái)的系統(tǒng),往往會(huì)給開(kāi)發(fā)者造成很大的困擾。
平臺(tái)之爭(zhēng)仍在繼續(xù),期待新平臺(tái)的崛起
設(shè)備能力
在技術(shù)路線選擇中,設(shè)備本身的能力也是重要因素。設(shè)備本身的能力包括了設(shè)備自身的計(jì)算能力,即CPU的性能,以及是否具有浮點(diǎn)處理器等;圖形能力,是否具有圖形處理器加速、GPU是否支持OpenGL、支持哪個(gè)版本等。這些功能對(duì)于計(jì)算密集型和圖形密集型的應(yīng)用,比如3D游戲, 是極端重要的。從更細(xì)節(jié)的角度來(lái)講,CPU支持什么樣的指令集,對(duì)于比如視頻解碼這樣的應(yīng)用來(lái)說(shuō),都是十分重要的因素。設(shè)備本身的能力還包括交互部分,即屏幕大小、分辨率、是否具有硬鍵盤(pán)等。屏幕大小直接決定了屏幕上能顯示能操作內(nèi)容的多少。一個(gè)為手機(jī)設(shè)計(jì)的UI在平板上會(huì)顯得很丑陋,而一個(gè)為Galaxy Note設(shè)計(jì)的UI在QVGA上根本都沒(méi)法看。而硬鍵盤(pán)的存在與否,不但跟系統(tǒng)本身相關(guān),跟應(yīng)用程序本身也相關(guān)。在一個(gè)有硬鍵盤(pán)的手機(jī)上,就有更多空間來(lái)顯示內(nèi)。而Android下的輸入法,對(duì)硬鍵盤(pán)的輸入處理跟屏幕軟鍵盤(pán)的處理就完全不同。移動(dòng)設(shè)備上所附帶的各種傳感器或數(shù)據(jù)采集設(shè)備,也是跟應(yīng)用的技術(shù)路線息息相關(guān)的。目前很多應(yīng)用都依賴(lài)于GPS、攝像頭這些附件。
云端
云端,即服務(wù)器端。在這個(gè)移動(dòng)+互聯(lián)的時(shí)代里,完全脫離云端的應(yīng)用越來(lái)越少,而社交網(wǎng)絡(luò)的興起加上移動(dòng)對(duì)社交的天然親和性,使移動(dòng)應(yīng)用對(duì)服務(wù)器端的依賴(lài)度更高了。從跟服務(wù)器端的交互來(lái)看,需要考慮的技術(shù)有四個(gè)方面。首先,需要云端提供什么樣的服務(wù)。這是最基本的一點(diǎn),無(wú)須多說(shuō)。其次,移動(dòng)端以什么樣的方式從云端取得數(shù)據(jù)并數(shù)據(jù)發(fā)送到云端。是采用通用的協(xié)議還是私有協(xié)議,數(shù)據(jù)是否需要加密等問(wèn)題。再次,移動(dòng)端與云端之間的通信需要多少帶寬。是否在現(xiàn)有的2G/3G網(wǎng)絡(luò)條件下能夠得到滿足,抑或必須使用Wi-Fi。移動(dòng)端與云端之間的通信是必須長(zhǎng)時(shí)間保持還是可以斷續(xù)進(jìn)行。移動(dòng)應(yīng)用的網(wǎng)絡(luò)環(huán)境會(huì)比桌面復(fù)雜得多,網(wǎng)絡(luò)帶寬會(huì)比較快而頻繁,并且會(huì)經(jīng)常在有網(wǎng)絡(luò)連接與無(wú)網(wǎng)絡(luò)連接的情況下轉(zhuǎn)換。最后,還需要考慮一個(gè)問(wèn)題是自己搭建服務(wù)端還是直接利用現(xiàn)有的公開(kāi)服務(wù)。自己搭建服務(wù)端能夠更好地與自己的移動(dòng)應(yīng)用進(jìn)行配合,能夠自行定義把哪些計(jì)算放到服務(wù)端進(jìn)行,但需要在服務(wù)端的軟硬件上投入與維護(hù)。而利用現(xiàn)有的服務(wù)則比較省事,代價(jià)是移動(dòng)端需要做更多的工作,有些功能會(huì)難以做到。
原生應(yīng)用還是Web應(yīng)用
大部分面向互聯(lián)網(wǎng)服務(wù)的移動(dòng)應(yīng)用都會(huì)面臨這樣一個(gè)問(wèn)題:是開(kāi)發(fā)一個(gè)移動(dòng)設(shè)備上的原生應(yīng)用,還是直接開(kāi)發(fā)一個(gè)適應(yīng)于移動(dòng)設(shè)備上瀏覽器的 Web 應(yīng)用?這兩種形式各有利弊。原生應(yīng)用的優(yōu)勢(shì)在于能夠充分利用設(shè)備的能力,達(dá)到比較好的表現(xiàn)效果和更加平滑的用戶體驗(yàn)。有一些能力是Web應(yīng)用所無(wú)法做到的,比如需要用到加速度測(cè)量?jī)x的應(yīng)用,需要用到攝像頭的應(yīng)用,這些只有原生應(yīng)用才能做到。另外,原生應(yīng)用的好處在于即使沒(méi)有網(wǎng)絡(luò)連接,很多本地功能都可以繼續(xù)使用,而在有網(wǎng)絡(luò)連接的情況下,把一部分功能由原生應(yīng)用來(lái)實(shí)現(xiàn),還能大大節(jié)省流量,并提高應(yīng)用程序的響應(yīng)速度。
Web應(yīng)用的優(yōu)勢(shì)在于,開(kāi)發(fā)者不需要具備專(zhuān)門(mén)的移動(dòng)平臺(tái)開(kāi)發(fā)知識(shí),并且能夠隨時(shí)對(duì)問(wèn)題進(jìn)行修正和發(fā)布新版本,能夠更快地讓用戶體驗(yàn)更新,符合目前流行的先發(fā)布再慢慢改的風(fēng)氣。這兩者中,一方的優(yōu)勢(shì)恰恰就是另一方的劣勢(shì)。針對(duì)不同類(lèi)型的應(yīng)用程序以及開(kāi)發(fā)人員的具體狀況, 需要有具體的判斷。這兩者的優(yōu)缺點(diǎn)都同樣明顯,因此將長(zhǎng)期共存下去,共同繁榮,不存在一方消滅另一方的可能。
跨平臺(tái)
隨著各種不同的系統(tǒng)出現(xiàn),也出現(xiàn)了不少立足于跨平臺(tái)的解決方案。本來(lái)在PC上最強(qiáng)大的跨平臺(tái)方案Flash在被蘋(píng)果拒之門(mén)外后,由于其本身在移動(dòng)平臺(tái)上性能和電池消耗方面的不足,最后退出了市場(chǎng)。但新興的以HTML 5為口號(hào)的新一代跨平臺(tái)方案紛紛出現(xiàn),其中最著名的是PhoneGap。這類(lèi)以HTML 5為旗幟的跨平臺(tái)方案內(nèi)容都很類(lèi)似:開(kāi)發(fā)者利用HTML 5/CSS/JavaScript編寫(xiě)應(yīng)用,編寫(xiě)的應(yīng)用經(jīng)過(guò)本地的一個(gè)定制過(guò)的瀏覽器中間層運(yùn)行。這些應(yīng)用都還是原生應(yīng)用而非Web應(yīng)用, 只不過(guò)以開(kāi)發(fā)Web應(yīng)用的形式進(jìn)行開(kāi)發(fā)而已。這樣的框架,通過(guò)對(duì)本地瀏覽器框架的定制,將設(shè)備的特殊能力封裝成能夠被JavaScript訪問(wèn)的系統(tǒng)對(duì)象,從而能夠充分利設(shè)備的能力。這樣的跨平臺(tái)方案有很明顯的優(yōu)勢(shì):開(kāi)發(fā)一套東西運(yùn)行于各個(gè)移動(dòng)平臺(tái),平臺(tái)間的差異由框架解決;不需要學(xué)習(xí)各平臺(tái)各自的語(yǔ)言和API,只需要會(huì)用HTML 5/CSS/JavaScript開(kāi)發(fā)即可,降低了開(kāi)發(fā)成本。
不過(guò),我們也能很清楚地看到它的劣勢(shì):中間的運(yùn)行適配層有相當(dāng)大的運(yùn)行開(kāi)銷(xiāo),性能與原生代碼相比有較大損失;因?yàn)樾枰獛攵ㄖ频臑g覽器框架, 最終生成的獨(dú)立應(yīng)用體積相對(duì)比較大, 需要使用更多的資源。20世紀(jì)80年代以來(lái),無(wú)數(shù)人有著跨平臺(tái)夢(mèng)想,從桌面到服務(wù)器到移動(dòng)設(shè)備,都希望一套東西包打天下。可惜到現(xiàn)在這還只是美好的愿望而已。我個(gè)人認(rèn)為,這世上沒(méi)有一統(tǒng)江湖的可能,跨平臺(tái)對(duì)于一些應(yīng)用或者對(duì)于某些開(kāi)發(fā)者來(lái)說(shuō)是個(gè)利器,但它并不能成為統(tǒng)治者。
以上便是有關(guān)于移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)選擇六要素的相關(guān)介紹,不知道大家對(duì)移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)有沒(méi)有更加深入的了解呢?移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)如今是熱門(mén)專(zhuān)業(yè)之一,有興趣的同學(xué)可以考慮一下這個(gè)專(zhuān)業(yè)。
推薦院校:北京物資院校南通校區(qū)、太原工業(yè)大學(xué)、中國(guó)石油大學(xué)(華東)
本站覆蓋全國(guó)各省市專(zhuān)本科院校及計(jì)劃外招生院校,匯總各校招生要求及專(zhuān)業(yè)信息,如您今年尚未被任何院校錄取,請(qǐng)自愿填寫(xiě)下表,我們將在全國(guó)范圍內(nèi)篩選適合您就讀的大學(xué),安排校方老師與您溝通。即刻報(bào)名,圓大學(xué)夢(mèng)!
報(bào)名咨詢(xún)電話:010-51291557
高校招生網(wǎng)
評(píng)論0
“無(wú)需登錄,可直接評(píng)論...”