一、创建新项目
对比 android-studio:ability类似安卓activity
ability分为两种类型(Stage模型) UIAbility和Extensionability(提供系统服务和后台任务)
启动模式
1、 singleton启动模式:单例
2、 multiton启动模式:多实例(后台多个任务卡片,类似Android的多进程的效果)
3、 specified启动模式:介于单例和多实例,可以指定实例
二、项目结构
1、多module机制:通常项目有一个或多个module组成
2、工程结构
appScope:包含应用信息 app.json5 应用配置文件 xxxlib:静态共享包模块 entry:入口模块 /src/main/ets:存放源码 /src/main/resource: 资源文件 (图片、常量等) src/main/module.json5: 模块信息配置 build-profile.json5: 构建配置文件包括 签名、模型、目标设备等 hvigorfile.ts:编译构建任务脚本(类似gradle) oh-package:依赖、版本、证书等配置 hvigor/:编译脚本配置 (类似gradle文件夹) oh-moudles:下载的依赖库列表 FeatureLogin: feature类型的登陆模块 Sharelibrary:动态共享库 |
三、打包与安装
1、打hap包:
命令行运 ./hvigorw -p module=xxx assembleHap 或者build(hap)
安装: hdc install ./entry-default-signed.hap
多hap:hdc install ./FeatureLogin-default-signed.hap ./entry-default-signed.hap ./ShareLibrary-default-signed.hsp
多hap快捷安装 | 多模块安装 |
2、打包app
命令行运行 ./hvigorw assembleApp或者build(apps)
除了静态共享库以源码的形式打包进依赖方,其他几个库都有相应的hap/hsp包,发布应用市场需要app的形式整体上传,而使用时hap/hsp包需要单独安装
hdc install ./FeatureLogin-default-signed.hap ./entry-default-signed.hap ./ShareLibrary-default-signed.hsp
3、运行
entry包 | entry包 | feature包 |
- 单HAP场景:如果只包含UIAbility组件,无需使用ExtensionAbility组件,优先采用单HAP(即一个entry包)来实现应用开发。虽然一个HAP中可以包含一个或多个UIAbility组件,为了避免不必要的资源加载,推荐采用“一个UIAbility+多个页面”的方式。
- 多HAP场景:如果应用的功能比较复杂,需要使用ExtensionAbility组件,可以采用多HAP(即一个entry包+多个feature包)来实现应用开发,每个HAP中包含一个UIAbility组件或者一个ExtensionAbility组件。
4、卸载
hdc uninstall [packageName]