在移動(dòng)應(yīng)用程序的開發(fā)中,選擇選擇使用基于 Web 技術(shù)的移動(dòng)應(yīng)用(例如基于 HTML5 和 JavaScript 的 Web App)或使用傳統(tǒng)的本地應(yīng)用程序(原生應(yīng)用程序)來進(jìn)行開發(fā)都稱為兩個(gè)主要的選擇。H5做app和原生app之間的根本區(qū)別在于它們是基于不同的代碼和技術(shù)。但是,開始針對(duì)一個(gè)問題首先需要對(duì)這兩種技術(shù)進(jìn)行了解和梳理。接下來本文將從原理、技術(shù)和性能等多個(gè)方面進(jìn)行詳細(xì)描述。
**一、H5做app**
為了清晰地解釋H5做app的原理,首先需要明確數(shù)據(jù)傳遞模型。在Web App中,瀏覽器作為一個(gè)客戶端,將請(qǐng)求發(fā)送到服務(wù)器,并在收到響應(yīng)時(shí)顯示相應(yīng)的數(shù)據(jù)。但是,HTML5 的出現(xiàn)為 Web App 帶來了一些好處,HTML5 本身提供了大量的 API,可以直接執(zhí)行 Video,Audio、JavaScript。瀏覽器就變成了一個(gè)執(zhí)行介質(zhì),而不是一個(gè)只負(fù)責(zé)響應(yīng)客戶端提交的 HTTP 請(qǐng)求。
HTML5 可以通過支持本地存儲(chǔ)、聲音、視頻和離線訪問等 API 來處理 Web App 中的多媒體和資源訪問。 相比于原生應(yīng)用,僅僅使用 HTML5 構(gòu)建的 Web App 通常可以使用像 Cordova 和 PhoneGap 這樣的打包工具轉(zhuǎn)換為原生應(yīng)用程序。 所以說 H5做app的技術(shù)水平更低,相對(duì)容易上手。
缺點(diǎn):H5應(yīng)用程序的一個(gè)問題是其性能。許多移動(dòng)設(shè)備具有諸如內(nèi)存和 CPU 速度等方面的限制,因此使用 HTML5 來架構(gòu)移動(dòng) Web App,可能無法提供流暢的用戶體驗(yàn)。此外,由于它是基于網(wǎng)絡(luò)技術(shù),因此對(duì)于不穩(wěn)定的網(wǎng)絡(luò)連接,Web App 可能無法實(shí)時(shí)訪問所需的數(shù)據(jù)。因此使用 H5技術(shù)做app時(shí)必須要考慮到這些問題。
**二、原生app**
在原生應(yīng)用程序中,所有代碼都是使用語(yǔ)言和庫(kù)來編寫的,這些語(yǔ)言和庫(kù)是與設(shè)備操作系統(tǒng)和平臺(tái)密切相關(guān)的,比如Android系統(tǒng)中使用Java語(yǔ)言開發(fā)應(yīng)用程及蘋果iOS系統(tǒng)中使用Swift/Objective-C語(yǔ)言。在原生應(yīng)用開發(fā)中,使用強(qiáng)大的 SDK,能夠訪問本機(jī)功能,包括文件系統(tǒng)、攝像頭、加速器和 GPS 等。由于原生應(yīng)用程序是直接在設(shè)備上運(yùn)行的,因此可以直接訪問本地硬件,也可以保持顯著的性能和優(yōu)化。
原生應(yīng)用程序具有許多優(yōu)點(diǎn),包括更高的效率、更好的用戶體驗(yàn)、更好的可訪問性和更高的穩(wěn)定性和更高的安全性。 另外,原生應(yīng)用程序可以避免 HTML5 應(yīng)用程序的性能問題,因?yàn)樗梢栽L問本地設(shè)備資源和優(yōu)化性能的 API。
在極端情況下,原生應(yīng)用程序與 HTML5 應(yīng)用程序相比,可能需要更多的時(shí)間、精力和金錢開發(fā),因?yàn)殚_發(fā)人員必須為每個(gè)平臺(tái)提供獨(dú)立的代碼庫(kù)和用戶接口等。 另外,也需要對(duì)不同的設(shè)備尺寸,及操作系統(tǒng)版本進(jìn)行適配。
綜上所述,原生應(yīng)用程序比 HTML5 應(yīng)用程序具有更多的可控性和管理性,但是 H5技術(shù)做app的門檻比原生應(yīng)用程序較低,開發(fā)速度也更快。 在選擇何種技術(shù)做app時(shí),需要根據(jù)項(xiàng)目的實(shí)際特點(diǎn)進(jìn)行評(píng)估,以確定何種技術(shù)更合適。