一、产品定制层、基础特性层、公共能力层
1.1、产品定制层:product
应用的入口,
1.2、基础特性层:feature
业务:首页、我的
1.3、公共能力层:common
方法能力复用
一次开发,多段部署
3层架构的包,可以是har包,也可以是hsp包
har静态共享包
不支持依赖循环、A模块依赖B模块,B模块依赖A模块
不支持依赖传递,即:A模块依赖B模块,B模块依赖C模块
可以发三方库,
hsp动态共享包
多个hap/hsp共用的代码和资源放在一个HSP中,可以提高代码、资源的可重用性,只需要一份hsp包,减少了app的空间
不能发三方库
hsp拷贝一份,har会拷贝多份
二、项目中,使用三层架构步骤:
2.1、新建3个目录:product、features、common
2.2、分别在common中,新建1个模块,且选择hsp包,模块名可以命名为:basic
2.3、分别在features中,新建1个模块,且选择hsp包,模块名可以命名为:home、mine、login
2.4、product入口,汽车端,平板端,把默认的entry文件夹,移到该目录下,并重命名为:phone;
如果要在此目录新建平板端的项目,需要新建模块,并且选择hap包,因为只有hap才有页面
调出运行配置,将 deploy multi hap => deploy multi hap packages 勾上,并且下拉出来的选框,都勾上
三、模块之间依赖
在common中,想新建一个head的公共组件,phone模块想依赖这个组件,分2步
3.1、在common => index 文件中,先要导出head组件:
export *from './src/main/ets/components/Head'注意:Head要有export关键字
3.2、在phone => oh-package.json5文件中,设置依赖:
依赖前:
{"name": "phone","version": "1.0.0","description": "Please describe the basic information.","main": "Index.ets","author": "","license": "Apache-2.0","packageType": "InterfaceHar","dependencies": {}
}
依赖后:
{"license": "","devDependencies": {},"author": "","name": "phone","description": "Please describe the basic information.","main": "","version": "1.0.0","dependencies": {'@hw-agconnect/cloud': "^1.0.0",'@hw-agconnect/hmcore': "^1.0.0",'@hw-agconnect/auth-component': "^1.0.0",'long': '^5.2.1','@zjian/basic': 'file:../../common/basic'}
}
完成