流應用是DCloud公司開發的一種可以讓手機App安裝包實現邊用邊下的技術。基于HTML5+規范的即點即用應用,開發者按照HTML5+規范開發的應用,可以在支持HTML5+流應用的發行渠道實現即點即用的效果。
流應用是基于?HTML5+規范的即點即用應用,開發者按照 HTML5+規范開發的應用,可以在支持 HTML5+流應用的發行渠道實現即點即用的效果。
流應用是?DCloud?公司開發的一種可以讓手機 App 安裝包實現邊用邊下的技術。利用 js 的動態語言特點,把手機端 App 的安裝包拆解,流式下載到手機端。類似流媒體邊看邊下一樣,流應用也可以邊用邊下。再輔以特殊的壓縮解碼技術,使得流應用可以在 5 秒內完成 App 的下載-安裝-啟動全過程。
DCloud 流應用引擎是一款基于 HTM5+的技術的增強型 js 引擎,它首先對 H5 進行了大幅強化,讓 js 可以調用 40 萬原生能力,并且大幅提升了 H5 的性能體驗。經過強化過后,使得基于 HTML5+開發的流應用可以達到原生應用的標準。
邊用邊下依賴于動態語言的支持,所以流應用的客戶端安裝包是使用 HTML 和 JS 這種動態語言來編寫的,但是為了保證 App 的功能和體驗仍然是原生效果,使用了經過強化的 js 引擎,這種稱之為 HTML5+的引擎可以使得 js 調用幾十萬原生 API,包括離線使用、本地設備能力調用以及強化的渲染引擎,使得流應用仍然做到了和原生一樣的功能和體驗。
流應用的離線能力并非 web 緩存,是原生存儲,不會被三方清理軟件清理緩存而導致流應用失效。流應用結合了原生 App 和 Web App 的優勢,又消除了各自的缺點,雖然是體驗良好的 c/s 結構,但又讓 client 秒開秒更新,是移動互聯網 App 的更高級形態。
流應用即點即開,無需下載安裝,即可以保證離線運行,又能夠使用所有原生的能力。流應用類似流媒體,在應用第一次安裝時,動態下載首頁的程序及相關資源,快速打開 App 首頁,并持續下載后續程序,下次可離線從本機運行。
在功能和體驗與原生接近的前提下,流應用擁有原生 App 也無法比擬的 6 大特點:
1.以往獲取一個 App 要經歷下載、安裝、啟動等過程,至少一分鐘,點擊若干次。而流應用做到了 5 秒開完成全部過程。以往 App 從下載到啟動激活的激活率不足 50%,而流應用的激活率在 95%以上。
2.流應用比原生 App 的包體積縮小至原來的 10%,安裝幾千個流應用也不會讓手機變卡變費電。
3.流應用更新是在使用時自動差量更新,一般每次更新消耗幾 K 流量左右。流應用可以方便的通過社交網絡分享。
4.可以方便的進入到 App 的內容頁面,可以實現搜索直購、掃描直購、分享直購等各種營銷新方式。
5.流應用基于 HTML5,使用 DCloud 的 MUI 框架開發流應用,可以自動兼容多個平臺。
流應用的重要前提是功能和體驗要足夠好,達到原生 App 的效果。過去業內也有 HTML5 強化引擎或 hybrid 方案,比如 phonegap/cordova,但其在功能和性能上與原生應用相差還非常遠。HTML5+做到了這一點,傳統 HTML5 效果不佳的窗體切換、長列表滾動、下拉刷新、大容量選項卡切換等問題都被解決,體驗流暢,用戶很難感知到與原生的區別。而且 HTML5+強化引擎使得 js 可以調用原生幾十萬 API,掃一掃、搖一搖、開關藍牙、獲取 IMEI 等各種原生 API 都可以隨意使用。
■ 流應用小結?■
流應用是一種實時應用程序,它以流的形式實時交換數據。它與Web應用程序的主要區別在于,流應用程序通常不需要用戶發送HTTP請求,數據可以以持續的方式發送。
流應用程序通常使用特定的協議來傳輸數據,例如HTTP流,WebSocket或TCP。許多流應用程序使用持續連接來提高性能,因為它們不需要每次傳輸數據都重建連接。
這種方法為開發人員提供了更多的靈活性,以便他們可以與來自不同領域的客戶端交互,例如多媒體應用程序,社交網絡應用程序和虛擬現實應用程序等。
開發人員可以將流應用程序用于多種不同的目的,包括推送到客戶端的實時消息,交易處理,流媒體內容傳輸,可視化多媒體內容傳輸,社交網絡管理,流應用程序管理,以及機器學習和深度學習等等。
例如,流應用程序可以用于實時更新交易信息,例如股票市場的實時交易信息。使用流應用程序可以實現低延遲的實時交互,并顯著地提高客戶端體驗。
此外,與傳統的web應用程序不同,流應用程序使開發人員能夠構建更輕,更可擴展的應用程序,因為它們只需要使用更少的步驟就可以完成任務,基本上可以說,它們可以迅速地構建出功能強大的應用程序,并且能夠以更簡單,更高效的方式推送消息和內容。
因為它們旨在提供實時,有效的信息,因此流應用程序具有廣泛的應用,并在諸如財務數據和媒體視頻方面越來越受歡迎。事實上,在最近幾年,流應用程序一直在不斷地發展和繼續成長,已經成為許多應用領域,特別是移動應用程序開發和互聯網應用程序開發的基礎。
? 番外:關于HTML5 和 HTML5+
HTML5
就是傳統意義上的 HTML5。目前最新的 HTML 規范,互聯網的下一代標準,W3C 聯盟制定,手機端主要由 webkit 實現規范,對用戶來說就是瀏覽器實現了它。
HTML5+ / HTML5Plus
通過 HTML5 開發移動 App 時,會發現 HTML5 很多能力不具備。為彌補 HTML5 能力的不足,在 W3C 中國的指導下成立了中國HTML5+產業聯盟,推出 HTML5+ 規范。
HTML5+ 擴展了 JS 對象 plus,使得 JS 可以調用各種瀏覽器無法實現或實現不佳的系統能力,設備能力如攝像頭、陀螺儀、文件系統等,業務能力如上傳下載、二維碼、地圖、支付、語音輸入、消息推送等。同時實現了 Android 和 IOS 的解析引擎,使得開發者的代碼編寫一次,可跨平臺運行。
除了功能外,HTML5+ 很重要的特點是提供了原生的渲染能力,通過 plus.webview、 plus.nativeObj、 plus.nativeUI,讓開發者可以使用 JS 來調用原生渲染能力,實現體驗的大幅提升。
原生的 API 多達 40 萬,HTML5+ 的封裝并非把 40 萬 API 都封裝了一遍,而是分成了 2 個層面:HTML5+ 規范和Native.js
Native.js
手機 OS 的原生 API 有四十多萬,大量的 API 沒有被 HTML5+ 封裝。所以 Native.js 把四十多萬原生 API 映射成了 JS 對象,通過 JS 可以直接調 IOS 和 Android 的原生 API。這部分就不再跨平臺,寫法分別是 plus.ios 和 plus.android。
上面的 HTML5+ 就是 Native.js 一個實現好的子集。Native.js 不是 JS 框架,是技術!
使用 Native.js 需要對原生語法和 API 十分的了解,你至少要學過 Android 或者 IOS 開發,否則只能復制別人代碼。
HTML5+ Runtime / 5+ Runtime
HTML5+ Runtime 是 Native.js 的運行環境。相當于 .NET 之于 C#,JRE 之于 JAVA,有把 Native.js 映射到 JAVA 和 ObjectC 代碼的原生 API 功能,從而實現原生的調用。
對于 HTML5+ Runtime 和 Native.js 的關系可以理解成:Native.js 是一種語言(語法基于 JS),HTML5+ Runtime 是這語言的運行環境!
HTML5+ SDK / 5+ SDK
軟件開發工具包,它和 Android SDK,IOS SDK 一樣。
HTML5+ SDK 是把 HTML5+ Runtime 封裝為原生 SDK ,它有 3 個用途:
- 使用 HTML5+ SDK 實現本地打包。
- 通過原生代碼擴展 HTML5+ Runtime 的功能。
- 在現有原生項目中使用 HTML5+ SDK 替換原有的 webview,以獲得更強的 web 增強表現。
- 資料來源:uniapp、HTML5、HTML5+、HTML5+ Runtime、HTML5+ SDK、Native.js 名詞解釋
? 番外:原生App和webApp的區別小結
原生app和webapp的區別為:來源不同、開發成本不同、流暢度相對不同。
一、來源不同
1、原生app:原生app是與移動設備所安裝的操作系統所使用的同一種編程語言開發的APP。
2、webapp:webapp是由html5所做的網站通過一些打包平臺或者使用工具打包而成的軟件。
二、開發成本不同
1、原生app:原生app開發成本高,需要使用單獨的開發工具進行開發。
2、webapp:webapp開發成本低,不需要使用單獨的開發工具進行開發。
三、流暢度相對不同
1、原生app:原生app完美適配移動設備,流暢度相對較高。
2、webapp:webapp兼容適配移動設備,流暢度相對較低。
? 相關參考:原生app、webapp、混合app有哪些區別?