日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

【百度官方技術(shù)分享】百度智能小程序框架性能優(yōu)化實踐

 小熊丫丫01 2021-01-28

一、百度智能程序整體框架及演進

整個移動互聯(lián)網(wǎng)一直是在 NA 和 H5 之間尋找權(quán)衡,NA 的性能好、能力強;H5 靈活性更高。我認為渲染分為兩派,一派就是 NA 渲染派,一派叫做 H5 渲染派。

NA 渲染派,比較有代表性的如 RN 、 Flutter ;Web 渲染派,比如百度的輕應(yīng)用,以及之后做的小程序。

1. 開發(fā)全流程概覽

百度曾經(jīng)做過的 Web 渲染派的三個代表產(chǎn)品,分別是輕應(yīng)用、直達號和小程序。

輕應(yīng)用,是 H5 + 端能力。它是一個標(biāo)準(zhǔn)的 H5,增加了一些 NA 的 API,比如定位等。

直達號,在技術(shù)層面跟輕應(yīng)用是一樣的。

小程序,本質(zhì)上是一個受限的 H5 + 大量豐富的 API + UI 組件?,F(xiàn)在我們給小程序提供的 API 有 300 多個,組件有 30 多個,組件是有界面的。比如,視頻、地圖 。

為什么小程序要受限,主要有兩個原因:

保持體驗的一致性。H5 太過靈活,JS 隨時可以去改變界面。

安全考慮。因為我們提供了大量 API 和組件,且這些都是很底層的一些能力,比如電話號碼、賬號,肯定不能輕易開放給大家。

怎么受限,主要有兩點:

編寫語言,不再是直接寫 HTML ,而是用自定義語言 swan 來編寫 。

runtime 層有兩個棧,一個是渲染棧,一個是網(wǎng)站監(jiān)控JS 執(zhí)行棧,這兩個棧從物理上隔離,以保障安全性。

2. 智能小程序框架

1)開發(fā)運行全流程

先簡單介紹一下整個百度智能小程序的開發(fā)流程。

首先開發(fā)者用 swan 寫布局;

接著通過開發(fā)者工具打包,上傳到我們的小程序 B 端服務(wù)器;

然后是小程序的審核流程,有機審、人審;

最后是用戶點擊小程序時,客戶端請求小程序 C 端服務(wù)器,C 端服務(wù)器再從 B 端服務(wù)器獲取小程序包。整個過程都是加密傳輸,可以保證代碼的安全。

2)百度智能小程序框架 -SWAN

分層結(jié)構(gòu)如下:

最上層是開發(fā)者基礎(chǔ)庫,命名為 swan-js ,開發(fā)者直接和這層打交道。swan-js 負責(zé)兩件事情:即 swan 代碼轉(zhuǎn)為 HTML,變成 WebView 可運行程序;客戶端端能力的封裝暴露。

再下一層是 swan-native。這里面最核心的是API 和組件的 NA 實現(xiàn)。其中雙棧管理也在這一層,另外標(biāo)紅的 Extension 用于開發(fā)者宿主自身能力擴展使用,比如,貼吧宿主期望增加個發(fā)帖能力,就可以通過此機制。

再下面這層叫 Porting Layer。這層是百度小程序為了實現(xiàn)開源,增加的一層與宿主的接口層。最下面這一層是宿主基礎(chǔ)能力層。如果宿主沒有這些能力,可以參考百度開源的參考實現(xiàn),可直接集成到宿主使用。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多