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