电竞比分网-中国电竞赛事及体育赛事平台

分享

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

 小熊丫丫01 2021-01-28

一、百度智能程序整體框架及演進(jìn)

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

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

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

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

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

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

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

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

保持體驗(yàn)的一致性。H5 太過靈活,JS 隨時(shí)可以去改變界面。

安全考慮。因?yàn)槲覀兲峁┝舜罅?/span> API 和組件,且這些都是很底層的一些能力,比如電話號(hào)碼、賬號(hào),肯定不能輕易開放給大家。

怎么受限,主要有兩點(diǎn):

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

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

2. 智能小程序框架

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

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

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

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

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

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

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

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

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

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

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多