一、写给Android开发者之harmony入门

发布于:2024-05-06 ⋅ 阅读:(27) ⋅ 点赞:(0)

一、创建新项目

对比 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]