當看到 DevEco Studio 3.1 Release | 動態共享包開發,編譯更快,包更小這篇文章時,就馬上想動手寫一個 Demo,把平常工作寫后端結構搬上來。
從 0 開始寫一個動態共享包 Demo 有點費時,于是在 Codelabs 看到一個關系型數據庫(ArkTS)的 Sample,就想著在這基礎上,把數據庫表操作,抽到動態共享包模塊,然后在 Entry 模塊上引入使用。
到這里可能有小伙伴有疑問?其實用靜態共享包把數據庫表操作抽出來,在 Entry 模塊上引入使用,對的,這樣也是可以達到分離。
但如果有部分公共的資源和代碼,只能在開發靜態共享,并且打包到每個依賴的 HAP 里,這樣導致包體積較大,且有重復多份公共資源和代碼重復打包到應用中。
如果使用動態共享,可以減少包體積,讓多個 HAP 能夠共享同一公共資源代碼。
應用內動態共享包指的是專門為某一應用開發的動態共享包,只能被該應用內部其他 HAP/HSP 使用,用于應用內部代碼、資源的共享。
應用內 HSP 跟隨其宿主應用的 APP 包一起發布,與該宿主應用具有相同的包名和生命周期。
下面先看看這個賬目記錄 Demo 的效果圖:
知識點
關系型數據庫:
https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-data-relationalstore-0000001493744128-V3?catalogVersion=V3開發及引用動態共享包:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/hsp-0000001521396322-V3?catalogVersion=V3項目結構圖:
動態共享包結構圖:
頁面邏輯結構圖:
講解
①動態共享包創建、開發與導出
創建動態共享包具體操作參考官方文檔:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/hsp-0000001521396322-V3?catalogVersion=V3
開發按照業務邏輯編寫相應代碼就行。
導出業務接口,給其它地方引用使用,在 Index.ets 文件編寫導出內容,如下:
export{AccountTable}from"./database/tables/AccountTable" export{AccountData}from"./bean/AccountData" export{AccountItem}from"./bean/AccountItem" export{Logger}from"./utils/Logger"
編譯動態共享包,參考 1.1 官方文檔鏈接,通過 DevEco Studio 菜單欄的 Build > Make Module ${libraryName} 進行編譯構建,生成 HSP。
②Entry 模塊引入使用
在使用方 entry/feature 模塊的 oh-package.json5 文件中添加 HSP 模塊引用,以引用名為 sharedlibrary 的 HSP 為例:
{ ... "dependencies":{ "@ohos/db_library":"file:../DB_library" } }
運行引用 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 及以上版本進行編譯運行。
審核編輯:湯梓紅
-
模塊
+關注
關注
7文章
2785瀏覽量
49883 -
數據庫
+關注
關注
7文章
3905瀏覽量
65878 -
結構圖
+關注
關注
1文章
38瀏覽量
23227 -
鴻蒙
+關注
關注
59文章
2545瀏覽量
43842
原文標題:鴻蒙上寫一個賬目記錄Demo
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
在鴻蒙上使用Python進行物聯網編程

評論