關(guān)系型數(shù)據(jù)庫—?jiǎng)討B(tài)共享包開發(fā)
想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:
前言
當(dāng)看到DevEco Studio 3.1 Release | 動(dòng)態(tài)共享包開發(fā),編譯更快,包更小這篇文章時(shí),就馬上想動(dòng)手寫一個(gè)Demo, 把平常工作寫后端結(jié)構(gòu)搬上來,從0開始寫一個(gè)動(dòng)態(tài)共享包Demo有點(diǎn)費(fèi)時(shí),于是在Codelabs看到一個(gè)關(guān)系型數(shù)據(jù)庫(ArkTS) 的Sample,就想著在這基礎(chǔ)上,把數(shù)據(jù)庫表操作,抽到動(dòng)態(tài)共享包模塊,然后在Entry模塊上引入使用,到這里可能有小伙伴有疑問?其實(shí)用靜態(tài)共享包把數(shù)據(jù)庫表操作抽出來,在Entry模塊上引入使用,對的,這樣也是可以達(dá)到分離,但如果有部分公共的資源和代碼,只能在開發(fā)靜態(tài)共享,并且打包到每個(gè)依賴的HAP里,這樣導(dǎo)致包體積較大,且有重復(fù)多份公共資源和代碼重復(fù)打包到應(yīng)用中。如果使用動(dòng)態(tài)共享,可以減少包體積,讓多個(gè)HAP能夠共享同一公共資源代碼。應(yīng)用內(nèi)動(dòng)態(tài)共享包指的是專門為某一應(yīng)用開發(fā)的動(dòng)態(tài)共享包,只能被該應(yīng)用內(nèi)部其他HAP/HSP使用,用于應(yīng)用內(nèi)部代碼、資源的共享。 應(yīng)用內(nèi)HSP跟隨其宿主應(yīng)用的APP包一起發(fā)布,與該宿主應(yīng)用具有相同的包名和生命周期。下面先看看這個(gè)賬目記錄Demo的效果圖:
知識(shí)點(diǎn)
關(guān)系型數(shù)據(jù)庫
開發(fā)及引用動(dòng)態(tài)共享包
項(xiàng)目結(jié)構(gòu)圖
動(dòng)態(tài)共享包結(jié)構(gòu)圖
頁面邏輯結(jié)構(gòu)圖
講解
1、動(dòng)態(tài)共享包創(chuàng)建、開發(fā)與導(dǎo)出
(1)創(chuàng)建動(dòng)態(tài)共享包具體操作參考官方文檔:
(2)開發(fā)按照業(yè)務(wù)邏輯編寫相應(yīng)代碼就行.
(3)導(dǎo)出業(yè)務(wù)接口,給其它地方引用使用,在Index.ets文件編寫導(dǎo)出內(nèi)容,如下:
export { AccountTable } from "./database/tables/AccountTable"
export { AccountData } from "./bean/AccountData"
export { AccountItem } from "./bean/AccountItem"
export { Logger } from "./utils/Logger"
(4)編譯動(dòng)態(tài)共享包,參考1.1官方文檔鏈接,通過DevEco Studio菜單欄的Build > Make Module ${libraryName}進(jìn)行編譯構(gòu)建,生成HSP。
2、Entry模塊引入使用
(1)在使用方entry/feature模塊的oh-package.json5文件中添加HSP模塊引用,以引用名為sharedlibrary的HSP為例:
{
...
"dependencies": {
"@ohos/db_library": "file:../DB_library"
}
}
(2) 運(yùn)行引用HSP的使用方模塊,單擊Run > Edit Configurations,選擇Deploy Multi Hap標(biāo)簽頁,勾選Deploy Multi Hap Packages,選擇使用方模塊(如entry)和HSP模塊(如sharedlibrary),點(diǎn)擊OK,單擊Run > Run’模塊名稱’(如Run ‘entry’)或。DevEco Studio會(huì)啟動(dòng)應(yīng)用/服務(wù)的編譯構(gòu)建,完成后應(yīng)用/服務(wù)即可運(yùn)行在本地真機(jī)或模擬器上.
總結(jié)
體驗(yàn)了一番動(dòng)態(tài)共享包實(shí)例,感覺太爽了,不用把全部代碼都寫在Entry模塊里,同時(shí)也節(jié)省了App的大小,目前應(yīng)用內(nèi)HSP指的是專門為某一應(yīng)用開發(fā)的HSP,只能被該應(yīng)用內(nèi)部其他HAP/HSP使用,用于應(yīng)用內(nèi)部代碼、資源的共享。 應(yīng)用內(nèi)HSP跟隨其宿主應(yīng)用的APP包一起發(fā)布,與該宿主應(yīng)用具有相同的包名和生命周期。遺憾當(dāng)前暫不支持跨應(yīng)用共享包,還有引用動(dòng)態(tài)共享包后,預(yù)覽器不支持。
資料文件是源代碼,感興趣小伙伴可以下載來體驗(yàn)一下,約束與限制如下:
- 本示例僅支持標(biāo)準(zhǔn)系統(tǒng)上運(yùn)行,支持設(shè)備:華為手機(jī)3.1系統(tǒng)或運(yùn)行在DevEco Studio上的華為手機(jī)遠(yuǎn)程模擬器API9。
- 本示例為Stage模型,支持API version 9及以上版本SDK。
- 本示例需要使用DevEco Studio 3.1 Release及以上版本進(jìn)行編譯運(yùn)行。
文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載:
https://ost.51cto.com/resource/2739。