购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.1 App

在第3章DevEco Studio会为我们自动创建如图4-1所示的目录结构的工程源码。那么这些目录结构到底有什么含义,每个文件的作用是什么?这些都是接下来我们要探索的话题。

本节将探索App这个话题。

4.1.1 什么是App

首先,我们来认识App。

App就是应用,是Application的简写。比如,在Android手机上安装一个软件,这个软件就称为应用。应用泛指运行在设备的操作系统之上,为用户提供特定服务的程序。

在HarmonyOS上运行的应用有两种形态:

· 传统方式需要安装的应用。

· 提供特定功能,免安装的应用,即原子化服务。

图4-1 DevEco Studio自动创建的工程

4.1.2 应用程序包结构

Android平台是以APK(Android Application Package,Android应用程序包)形式来发布的,当我们要在Android手机上安装一个App时,首先要找到这个App对应的APK安装包,执行该APK安装包就能安装App了。

同理,HarmonyOS的应用软件包以App Pack(Application Package)形式发布,它是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的pack.info组成的。HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开。

一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为entry和feature两种模块类型,如图4-2所示。

图4-2 App逻辑视图

其中:

· entry:应用的主模块。一个App中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。

· feature:应用的动态特性模块。一个App可以包含一个或多个feature类型的HAP,也可以不包含。只有包含Ability的HAP才能够独立运行。

我们在应用的build目录下可以找到名为entry-debug-rich-unsigned.hap或者entry-debug-rich-signed.hap的文件,如图4-3所示。这些.hap文件就是HarmonyOS的应用软件包。

图4-3 App逻辑视图

4.1.3 代码层次的应用

在代码层次,我们可以看到如图4-4所示的MyApplication,这就是整个应用的入口。

图4-4 App逻辑视图

从代码可以看到,MyApplication继承自AbilityPackage。AbilityPackage用来初始化每个HAP的基类。 sLf/EtKkwZt9U9a2Ckic3vs/GS4xpxT+b96k8oWOEhwteaczYgaIsxwa/Kz8OOcR

点击中间区域
呼出菜单
上一章
目录
下一章
×