應用程序框架與應用模型的區別
應用框架可以看做是應用模型的一種實現方式,開發人員可以用應用模型來描述應用程序的結構和行為的描述,然后使用應用程序框架來實現這些描述。
應用模型
應用模型是一個應用程序的模型,它是一種抽象的描述,用來描述一個程序的不同方面。例如應用組件,進程模型,線程模型,任務管理,以及包管理。應用模型提供了一種統一的語言和架構來描述應用程序的各個方面。應用模型可以幫助開發人員更好的理解應用程序的架構和設計,從而更有效的利用應用程序框架。
應用框架
應用程序框架是一種編程框架,用來簡化應用程序的開發過程,提高代碼可重用性和可維護性,可以幫助開發人員更快更高效的開發應用程序。
Stage應用模型
Stage應用模型對開發者實現中目標如下
Stage模型應用程序包結構
開發時包結構
編譯態包結構
發布態包結構
上述圖中出現了打包后的結構,里面有一些 .hap, .hsp 之類的文件格式,下面我們講一下這些文件格式. 這些格式的文件都是包.格式是不一樣的,里面有區別. 它們是多模塊開發,模塊的編譯產物. 對于模塊而言,分為三類,對應編譯出來的包文件格式也是三類.
模塊分類為: Ability類型, Static類型, share類型. 類型在 module.json5文件中進行聲明.
對應關系是
- Ability類型-entry,feature 都是 打印出hap包
- static類型- har - 打印出 har包
- share類型 - 選share - 打印出 hsp包
每一個應用中至少要含有一個hap文件的,或許會包含若干個hsp文件,也可能不包含. 一個應用中所有的 hap文件與所有的hsp文件合起來稱之為bundle, 其對應的boundleName是 app.json5中聲明的,是一個唯一標識.
當應用打包上架時候,需要將blundle打包為一個app格式的文件進行上架, 這個.app文件我們稱之為App Pack.與此同時, DevEco Studio工具會生成一個pack.info文件,描述每一個 HAP和HSP文件的屬性,包含APP中的bundleName和versionCode信息、以及Module中的name、type和abilities等信息。
應用的簽名,云端分發,端側安裝時,都是以HAP,HSP為單位進行簽名,分發和安裝的。這在一方面體現了,可分可合的特點。