W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)快應(yīng)用體積較大時(shí),可以使用快應(yīng)用的分包加載功能。
簡單來說,就是將項(xiàng)目中的所有頁面及資源通過配置規(guī)則劃分到多個(gè)單獨(dú)的分包文件中,運(yùn)行時(shí)單獨(dú)下載,加快頁面渲染。
分包加載的能力首先依賴于編譯時(shí)工具,根據(jù)開發(fā)者在 manifest.json 中配置的 subpackages 規(guī)則,將項(xiàng)目打包成多個(gè)分包。
這些分包包含一個(gè)基礎(chǔ)包和若干個(gè)分包,基礎(chǔ)包內(nèi)容包含一些公共的資源、頁面等內(nèi)容,而分包內(nèi)容則是根據(jù)開發(fā)者的配置資源目錄進(jìn)行劃分。
其次運(yùn)行時(shí),快應(yīng)用將優(yōu)先加載基礎(chǔ)包和頁面所在分包,其余分包會(huì)自動(dòng)在后臺(tái)進(jìn)行預(yù)加載。
目前快應(yīng)用分包大小有以下限制:
對(duì)快應(yīng)用進(jìn)行分包,可以優(yōu)化快應(yīng)用首次啟動(dòng)的加載時(shí)間,以及更好的管理和解耦各個(gè)模塊功能。
為達(dá)到最佳的分包效果,可以參考以下建議進(jìn)行分包配置:
假設(shè)應(yīng)用根目錄文件組織如下:
├── manifest.json
├── app.ux
├── Hello
│ ├── hello.ux
├── PackageA
│ ├── Page1
│ │ └──page1.ux
│ ├── Page2
│ │ └──page2.ux
├── PackageB
│ ├── Page3
│ │ └──page3.ux
│ ├── Page4
│ │ └──page4.ux
└── Common
├── ComponentA.ux
├── ComponentB.ux
└── xxx.png
開發(fā)者可以在manifest.json subpackages 字段中聲明項(xiàng)目分包結(jié)構(gòu):
{
"package": "com.company.unit",
"name": "appName",
"icon": "/Common/icon.png",
"versionName": "1.0",
"versionCode": 1,
"minPlatformVersion": 1000,
"features": [{ "name": "system.network" }],
"permissions": [{ "origin": "*" }],
"config": {
"logLevel": "off"
},
"router": {
"entry": "Hello",
"pages": {
"Hello": {
"component": "hello"
},
"PackageA/Page1": {
"component": "page1"
},
"PackageA/Page2": {
"component": "page2"
},
"PackageB/Page3": {
"component": "page3"
},
"PackageB/Page4": {
"component": "page4"
}
}
},
"subpackages": [
{
"name": "pkgA",
"resource": "PackageA"
},
{
"name": "pkgB",
"resource": "PackageB"
}
]
}
subpackages 的具體配置,詳見 manifest 文件
兼容性考慮包括兩方面:編譯時(shí)兼容與運(yùn)行時(shí)兼容
如果項(xiàng)目中沒有配置 subpackages,那么打包最終僅生成rpk后綴的文件,稱為整包,擁有全部的頁面與資源(即沒有啟用分包功能)。
如果項(xiàng)目中正確配置了 subpackages,并且該版本的編譯工具支持分包功能,那么打包最終會(huì)生成rpks后綴的文件,文件內(nèi)部包含一個(gè)整包,以及所有的分包。分包文件后綴名為srpk。
為了做到開發(fā)時(shí)兼容老版本調(diào)試平臺(tái),生成 rpks 文件的同時(shí),也會(huì)生成 rpk 整包文件。
如果快用平臺(tái)不支持分包,線上運(yùn)行時(shí)只會(huì)下載 rpk 文件,保持原有的運(yùn)作方式。
如果快應(yīng)用平臺(tái)支持分包,線上運(yùn)行時(shí)會(huì)優(yōu)先下載基礎(chǔ)包與頁面所在分包,其余分包會(huì)自動(dòng)在后臺(tái)進(jìn)行預(yù)加載。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: