更新時(shí)間:2022-04-29 來(lái)源:黑馬程序員 瀏覽量:
移動(dòng)App即移動(dòng)設(shè)備上的應(yīng)用軟件。目前移動(dòng)App開(kāi)發(fā)主要分為三種模式:Native App、Web App和Hybrid App。
1. Native App
Native App是指本地應(yīng)用程序,后文稱之為原生App,如圖1-1所示。
從圖1-1中可以看到,原生App內(nèi)部運(yùn)行的是二進(jìn)制數(shù)據(jù)(機(jī)器碼);也就是說(shuō),原生語(yǔ)言最后是直接轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)執(zhí)行的,并且可以直接調(diào)用底層的設(shè)備API,如手機(jī)振動(dòng)、攝像頭、日歷和地理位置等。
原生App是使用相應(yīng)平臺(tái)特有的開(kāi)發(fā)工具和語(yǔ)言進(jìn)行開(kāi)發(fā)的(如Android App),這使得應(yīng)用程序外觀和性能極佳,但是開(kāi)發(fā)成本較高,因?yàn)槊恳环N移動(dòng)操作系統(tǒng)都需要獨(dú)立的開(kāi)發(fā)項(xiàng)目,對(duì)企業(yè)來(lái)說(shuō)人員需求量較大。
2. Web App
WebApp是指網(wǎng)頁(yè)應(yīng)用程序,后文稱之為移動(dòng)Web,移動(dòng)Web需要依賴于Mobile Browser(移動(dòng)設(shè)備中的瀏覽器)運(yùn)行,內(nèi)部執(zhí)行普通的網(wǎng)頁(yè)代碼,也可以理解為在移動(dòng)設(shè)備瀏覽器中運(yùn)行的Web應(yīng)用。
移動(dòng)Web主要使用HTML5移動(dòng)Web技術(shù)進(jìn)行開(kāi)發(fā),包括HTML5、CSS3和JavaScript等。由于只依賴移動(dòng)設(shè)備瀏覽器,可實(shí)現(xiàn)“一次編寫(xiě),多個(gè)設(shè)備上運(yùn)行”。雖然開(kāi)發(fā)人員只使用HTML5和JavaScript就能構(gòu)建功能復(fù)雜的應(yīng)用程序,但目前仍然存在一些局限性,例如沒(méi)訪問(wèn)原生設(shè)備API的功能。
3. Hybrid App
HybridApp是指混合模式移動(dòng)應(yīng)用,后文稱之為混合App。
在圖1-3中可以看到,混合App需要依賴Native Container(原生容器)運(yùn)行,Native Container內(nèi)部可以運(yùn)行網(wǎng)頁(yè)代碼,還可以調(diào)用設(shè)備API。
混合App主要通過(guò)Web前端技術(shù)來(lái)實(shí)現(xiàn),是介于移動(dòng)Web和原生App這兩者之間的App開(kāi)發(fā)方式?;旌螦pp開(kāi)發(fā)的具體實(shí)現(xiàn)方式是:在一個(gè)原生ApP中內(nèi)嵌一個(gè)輕量級(jí)的瀏覽器,然后使用HTML5開(kāi)發(fā)一部分原生功能,這部分功能能夠在不升級(jí)APP的情況下動(dòng)態(tài)更新。由于是嵌套在原生APP中,這讓混合APP有了訪問(wèn)原生設(shè)備API的能力?!耙淮伍_(kāi)發(fā),多平臺(tái)運(yùn)行”的特點(diǎn)使得混合App開(kāi)發(fā)方式在不影響用戶體驗(yàn)的同時(shí)還可以節(jié)省開(kāi)發(fā)的成本。
以上三種移動(dòng)App開(kāi)發(fā)模式從開(kāi)發(fā)成本、維護(hù)更新和安裝等角度進(jìn)行了對(duì)比,如表1-1所示。
在表1-1中可以看出,原生App的開(kāi)發(fā)成本最高,那么同樣是跨平臺(tái)的App技術(shù),為什么混合App的成本要高于移動(dòng)Web?混合App兼具原生App和移動(dòng)Web的優(yōu)勢(shì),混合App開(kāi)發(fā)要比普通移動(dòng)Web開(kāi)發(fā)的技術(shù)要求更高,因此在資源需求相同的情況下,混合App比移動(dòng)Web開(kāi)發(fā)成本也更高。
混合App是嵌套在“原生殼”里的,因此這些App在App Store或Market(手機(jī)應(yīng)用商店)中都是認(rèn)可的。