關系型數據庫—動態共享包開發

前言
當看到DevEco Studio 3.1 Release | 動態共享包開發,編譯更快,包更小這篇文章時,就馬上想動手寫一個Demo, 把平常工作寫后端結構搬上來,從0開始寫一個動態共享包Demo有點費時,于是在Codelabs看到一個關系型數據庫(ArkTS) 的Sample,就想著在這基礎上,把數據庫表操作,抽到動態共享包模塊,然后在Entry模塊上引入使用,到這里可能有小伙伴有疑問?其實用靜態共享包把數據庫表操作抽出來,在Entry模塊上引入使用,對的,這樣也是可以達到分離,但如果有部分公共的資源和代碼,只能在開發靜態共享,并且打包到每個依賴的HAP里,這樣導致包體積較大,且有重復多份公共資源和代碼重復打包到應用中。如果使用動態共享,可以減少包體積,讓多個HAP能夠共享同一公共資源代碼。應用內動態共享包指的是專門為某一應用開發的動態共享包,只能被該應用內部其他HAP/HSP使用,用于應用內部代碼、資源的共享。 應用內HSP跟隨其宿主應用的APP包一起發布,與該宿主應用具有相同的包名和生命周期。下面先看看這個賬目記錄Demo的效果圖:

知識點
關系型數據庫
開發及引用動態共享包
項目結構圖

動態共享包結構圖

頁面邏輯結構圖

講解
1、動態共享包創建、開發與導出
(1)創建動態共享包具體操作參考官方文檔:
(2)開發按照業務邏輯編寫相應代碼就行.
(3)導出業務接口,給其它地方引用使用,在Index.ets文件編寫導出內容,如下:
export { AccountTable } from "./database/tables/AccountTable"
export { AccountData } from "./bean/AccountData"
export { AccountItem } from "./bean/AccountItem"
export { Logger } from "./utils/Logger"(4)編譯動態共享包,參考1.1官方文檔鏈接,通過DevEco Studio菜單欄的Build > Make Module ${libraryName}進行編譯構建,生成HSP。
2、Entry模塊引入使用
(1)在使用方entry/feature模塊的oh-package.json5文件中添加HSP模塊引用,以引用名為sharedlibrary的HSP為例:
{
...
"dependencies": {
"@ohos/db_library": "file:../DB_library"
}
}(2) 運行引用HSP的使用方模塊,單擊Run > Edit Configurations,選擇Deploy Multi Hap標簽頁,勾選Deploy Multi Hap Packages,選擇使用方模塊(如entry)和HSP模塊(如sharedlibrary),點擊OK,單擊Run > Run’模塊名稱’(如Run ‘entry’)或。DevEco Studio會啟動應用/服務的編譯構建,完成后應用/服務即可運行在本地真機或模擬器上.

總結
體驗了一番動態共享包實例,感覺太爽了,不用把全部代碼都寫在Entry模塊里,同時也節省了App的大小,目前應用內HSP指的是專門為某一應用開發的HSP,只能被該應用內部其他HAP/HSP使用,用于應用內部代碼、資源的共享。 應用內HSP跟隨其宿主應用的APP包一起發布,與該宿主應用具有相同的包名和生命周期。遺憾當前暫不支持跨應用共享包,還有引用動態共享包后,預覽器不支持。
資料文件是源代碼,感興趣小伙伴可以下載來體驗一下,約束與限制如下:
- 本示例僅支持標準系統上運行,支持設備:華為手機3.1系統或運行在DevEco Studio上的華為手機遠程模擬器API9。
- 本示例為Stage模型,支持API version 9及以上版本SDK。
- 本示例需要使用DevEco Studio 3.1 Release及以上版本進行編譯運行。
文章相關附件可以點擊下面的原文鏈接前往下載:
























