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

一、创建新项目

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/669527.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TinTin Web3 Bounty 挑战杯第二期再启程,NEAR 生态邀请你来找 Bug!

对 Web3 来说,Bounty 任务应该是普通人获得行业“一杯羹”的重要捷径! 通过深入学习各类 Web3 公链技术,凭借实战锻炼开发创新项目,或完善已有网络运行中出现的问题,就有机会更加快速了解其底层技术逻辑,更…

笔记:编写程序,绘制一个展示支付宝月账单报告的饼图

文章目录 前言一、饼图是什么?二、编写代码总结 前言 笔记:编写程序,绘制一个展示支付宝月账单报告的饼图 (1) 导入 matplotlib.pyplot 模块; (2) 准备饼图所需的数据; …

在Node.js(express 框架)中使用 nodemailer 实现邮箱注册功能

文章目录 一、准备工作1、安装 nodemailer2、打开 QQ(此处使用QQ邮箱) 的 IMAP/SMTP服务 二、功能实现1、发送邮件功能封装2、生成随机验证码3、发送邮箱验证码4、注册功能 三、邮件接收消息展示四、参考资料 一、准备工作 1、安装 nodemailer yarn add nodemailer 2、打开 QQ…

Verilog中求两个数的差值

根据输入信号a,b的大小关系,求解两个数的差值:输入信号a,b为8bit位宽的无符号数。如果a>b,则输出a-b,如果a≤b,则输出b-a。 接口信号图如下: 代码如下: (CSDN代码块不支持Veril…

QT程序简单国际化实验

文章目录 第一步:新建一个QT工程第二步:添加控件第三步:在pro文件中添加内容第四步:更新文件第五步:打开QT的Linguist第六步:添加翻译内容第七步:回到QT Creator中添加文件第八步:给…

论文精读-存内计算芯片研究进展及应用

文章目录 论文精读-存内计算芯片研究进展及应用概述背景介绍前人工作 存内计算3.1 SRAM存内计算3.2 DRAM存内计算3.3 ReRAM/PCM存内计算3.4 MRAM存内计算3.5 NOR Flash存内计算3.6 基于其他介质的存内计算3.7 存内计算芯片应用场景 总结QA 论文精读-存内计算芯片研究进展及应用…

临时邮箱API发送邮件的安全性?如何保障?

临时邮箱API发送邮件的步骤有哪些?设置邮箱API方法? 电子邮件作为一种重要的通信方式,而临时邮箱API作为一种新兴的邮件发送技术,其安全性更是成为大家关注的焦点。那么,临时邮箱API发送邮件的安全性究竟如何呢&#…

毕业单纯的钻研嵌入式知识有前景吗?

毕业之后单纯地去钻研嵌入式知识到底有没有前景呢?不可否认的是,嵌入式领域有着较高的薪资待遇,并且还存在着巨大的上升空间。然而,要学习嵌入式开发并非易事,其中存在着诸多挑战。其中一个挑战就是需要深入理解计算机…

Django 中链接静态文件目录

将静态文件存放在单独的目录中,使得 Django 可以有效地提供这些静态资源,如图片、CSS 文件、JavaScript 文件等,给用户的浏览器。在部署项目时,可以通过收集静态文件到一个单独的目录,然后将该目录服务于静态文件的 We…

IP地址类型

这些IP地址中有IPv4和IPv6地址,以及一些是链路本地地址(通常用于本地网络中的通信),而另一些则是可以被路由的公共或私有IP地址。 这里是您提供的IP地址的一些简要说明: IPv6 链路本地地址:以fe80:开头的地址是IPv6链路本地地址。这些地址仅用于同一链路(如以太网段或无…

外贸工厂玩转TikTok高效获客,多种引流方式/账号定位/爆款打造/全方位讲解

课程亮点 讲解工厂爆款账号打造技巧,每月实现近1000的询盘 掌握多种引流方式,实现快速搭建流量池 全方位讲解如何抢占行业标签,抢占TikTok流量红利 讲解打造短视频爆款技巧,高效获客 课程大纲 导言:课程介绍 传统外贸获客渠…

java基础之Netty(主要用来开发像微信,qq等聊天软件)

一、Netty的定义 Netty是一个基于Java NIO的网络编程框架,提供了一套高效的、事件驱动的异步网络通信机制。简化了网络应用程序的开发过程,提供了可靠的、高性能的网络传输 二、Netty的特点是什么 异步和事件驱动:Netty使用异步的、非阻塞…