<ins id="nxvlv"><noframes id="nxvlv"><cite id="nxvlv"></cite>
<ins id="nxvlv"><span id="nxvlv"></span></ins>
<cite id="nxvlv"><noframes id="nxvlv"><cite id="nxvlv"></cite>
<cite id="nxvlv"></cite>
<ins id="nxvlv"><noframes id="nxvlv">
<cite id="nxvlv"><span id="nxvlv"></span></cite>
<ins id="nxvlv"><noframes id="nxvlv"><ins id="nxvlv"></ins><cite id="nxvlv"><noframes id="nxvlv"><cite id="nxvlv"></cite>
<ins id="nxvlv"></ins><ins id="nxvlv"></ins>

小程序技術演進史

2019-06-25 10:02 稿源:CSDN公眾號  0條評論

小程序

聲明:本文來自于微信公眾號CSDN(ID:CSDNnews),作者:王安,授權站長之家轉載發布。

小程序這個由微信帶頭的產物,格外鮮明地體現了移動互聯網的「時機」這個詞,早在微信小程序之前,有力推輕應用的百度,有來自 HTML5 中國產業聯盟的 DCloud 所主張的流應用,但最終卻都已經淹沒在了移動互聯網的歷史長河之中。唯有微信小程序風生水起,更是帶動了巨頭們的爭相入場。

小程序迎來了專屬于中國移動互聯網的群雄逐鹿的時代。

本文作者王安即是流應用的創造者,作為移動領域的老兵,他依然在矢志不移地構建移動開發工具框架及生態,從原生應用到 HTML5 再到如今的小程序,他是這段歷史的見證者、參與者。從這篇文章中,我們能夠鮮活地看到小程序的技術演進歷程,以及對于所有開發者來說,終將去往何處。

中國特色的移動互聯網時代

伴隨著 QQ 小程序面向用戶開放,這個手機端月活 7 億的巨無霸正式入場。小程序,終于成為了超級 App 的標配。

盤點下已經支持小程序的超級 App:

微信、企業微信、QQ、支付寶、高德地圖、手機淘寶、百度、百度貼吧、百度地圖、今日頭條、抖音……

這些璀璨耀眼的名字,背后都是巨大的流量。

在這群超級 App 的支持下,中國的移動互聯網格局被徹底改變。

這個有中國特色的移動互聯網時代,被稱為“小程序時代”。

這是繼手機支付后,中國的移動互聯網領先世界的第二個代表事物。

中國的技術標準、開發者生態,第一次得到大規模的普及應用,而且很明顯,小程序在功能和體驗上均超過了 HTML5。

中國人能建立開發者生態嗎?這個命題曾一度讓人懷疑。

小程序完成了這一步突破,這是一場值得歌頌的中國技術生態發展史。

讓我們來回顧下這場技術生態革命,是如何開始,又將要去向何方。

羅馬不是一天建成的

小程序不是一天發明出來的

HTML5 于 2007 年在 W3C 立項,與 iPhone 發布同年。

喬布斯曾期待 HTML5 能幫助 iPhone 打造起應用生態系統。

但 HTML5 的發展速度并不如預期,它雖然成功地實現了打破 IE+Flash 壟斷局面的目標,卻沒有達到承載優秀的移動互聯網體驗的地步。

于是在 iPhone 站穩腳跟后,發布了自己的 App Store,開啟了移動互聯網的原生應用時代。

隨后的 Android,本來是基于 Linux 的 OS,與之同期的 MeeGo 等競爭對手采用 C + HTML5 的雙模應用生態策略,然而 C 的開發難度太大,HTML5 體驗又不行。Android 依靠 Java 技術生態,在競爭中脫穎而出。

于是在移動互聯網初期,應用生態被定了基調 —— 原生開發。

在那個時候,硬件不行,也沒有其他辦法,原生開發才能在低配硬件上帶來商用體驗。

但大家都在懷念 HTML,那種無需安裝更新、即點即用,直達二級頁面的特點,一直讓人迷戀。

國內有一批做瀏覽器的廠商,嘗試去改進 HTML5,他們提出了輕應用的概念。

通過給 WebView 擴展原生能力,補充 JS API,讓 HTML5 應用可以實現更多功能。

不過這類業務沒有取得成功,HTML5 的問題不止是功能不足,性能體驗是它更嚴重的問題,而體驗問題,不是簡單地擴展 JS 能力能搞定的。

這類業務發展的頂峰,是微信的 JS SDK。

作為國內事實上最大的手機瀏覽器,微信為它的瀏覽器內核擴充了大量 JS API,讓開發者可以用 JS 調用微信支付、掃碼等眾多 HTML5 做不到的功能。

微信 JS SDK 說明文檔

但微信團隊對這套方案的體驗仍然不滿意,微信錢包欄目里打車、理財等很多應用雖然嵌入了 JS SDK,但每次點擊要等半天白屏,讓人用著很痛苦,他們在業內開始尋找新的解決方案。

業內早有專業團隊看到了相同的問題。

與瀏覽器不同,Hybrid 應用是另一個細分領域。它們為開發者提供使用 JS 編寫跨平臺應用的工具,為了讓 JS 應用更接近原生應用的功能體驗,這個行業的從業者做出了很多嘗試。

筆者所在的 DCloud 即是其中之一,我們提出了改進 HTML5 的“性工能”障礙的解決方案 —— 通過工具、引擎優化、開發模式調整,讓開發者可以通過 JS 寫出更接近原生 App 體驗的應用。

多 WebView 模式,原生接管轉場動畫、下拉刷新、Tab 分頁,預載 WebView……各種優化技術不停迭代,終于讓 Hybrid 應用取得了性能體驗的突破。

Hybrid 應用和普通的輕應用相比,還有一個巨大的差別:一個是 Client/Server,一個是 Browser/Server。簡單來說,Hybrid 應用是 JS 編寫的需要安裝的 App,而輕應用是在線網頁。

C/S 的應用在每次頁面加載時,僅需要聯網獲取 JSON 數據;而 B/S 應用除了 JSON 數據外,還需要每次從服務器加載頁面 DOM、樣式、邏輯代碼,所以 B/S 應用的頁面加載很慢,體驗很差。

可是這樣的 C/S 應用雖然體驗好,卻失去了 HTML5 的動態性,仍然需要安裝、更新,無法即點即用、直達二級頁面。

那么 C/S 應用的動態性是否可以解決呢?對此,我們提出了流應用概念,把之前 Hybrid 應用里的運行于客戶端的 JS 代碼,先打包發布到服務器,制定流式加載協議,手機端引擎動態下載這些 JS 代碼到本地,并且為了第一次加載速度更快,實現了應用的邊下載邊運行。

就像流媒體的邊下邊播一樣,應用也可以實現邊用邊下。

在這套方案的保障下,終于解決了之前的各種難題:讓 JS 應用功能體驗達到原生,并且可即點即用、可直達二級頁面。

如今看來,這已經變成了常識。但在當年,先驅們做了無數艱辛探索。

這套技術,需要讓客戶端引擎提前預置在手機上,就像流媒體的普及,建立在 Flash 的裝機量巨大的基礎上,那么普及這個客戶端引擎就變得很重要。

2015 年,360 和 DCloud 合作,在 360 手機助手里內嵌了這個客戶端引擎,推出了業內第一個商用的小程序,360 稱之為 360 微應用。

微應用實現了在 360 手機助手的應用下載頁面,同時出現了“秒開”按鈕,點擊后直接使用。

并且在 360 手機助手的掃碼里,應用的分享里,都實現了掃碼獲得一個應用,點擊分享消息獲得一個應用。

在 360 手機助手 3.4 版本中上線的中國第一個小程序

為了做大生態,DCloud 把這套技術標準,捐獻給了 HTML5 中國產業聯盟,隨后,聯盟開始推動更多的超級 App 和手機廠商加入,共同推進動態 App 產業的發展。

然而事情并不順利,巨頭們有自己的利益訴求。雖然有一批廠商同意加入聯盟共建生態,但最關鍵的角色,真正的國民應用“微信”,最終決定自立標準、自研引擎,當然技術原理與流應用是基本一致的。

2016 年 1 月 11 日,微信公開課,張小龍罕見露面,公布了微信應用號的計劃,為這個大事件親自站臺。

2016 年 9 月 21 日,微信宣布更名應用號為小程序,面向首批開發者內測。從此,這個詞被正式定了下來,“小程序”,成為后續一個時代的代名詞。而“流應用”、“微應用”則淹沒在歷史長河中成為一個令人唏噓的故事。

2017 年 1 月 9 日,微信公開課,小程序面向用戶正式推出。

從此后,阿里巴巴、手機廠商聯盟、百度、今日頭條,陸續推出了自己的小程序平臺,其中也有很多波折與故事,在有偶然、有必然的過程中,形成了今天的局面。

小程序大潮卷入了更多人,并形成了更大的浪潮,最終迎來了不可逆轉的小程序時代。

聲明:本文轉載自第三方媒體,如需轉載,請聯系版權方授權轉載。協助申請

相關文章

相關熱點

查看更多
?
關閉
狠狠撸撸_AV在线视频成人社区,男人的天堂东京热!