应用程序框架基础

Harmoney OS学习笔记——应用程序框架概述

概述

应用程序框架是连接开发者与用户的桥梁
用户行为:应用内的交互、应用间的交互、应用的跨设备流转
开发者行为:提供应用进程管理、应用生命周期调度、应用组件生命周期调度、应用上下文环境、系统环境监听等相关能力等是实现用户功能的关键。
用户在应用中的行为需要开发者借助应用程序框架的能力来实现

应用程序框架与应用模型

应用程序框架

是一种编程框架,用来简化应用程序的开发过程,提高代码的可重用性和可维护性。可以帮助开发人员更快速、更高效地开发应用程序。

应用模型

应用模型是一个应用程序的模型,它是一种抽象描述。
用于表示应用程序的不同方面,例如应用组件、进程模型、线程模型、任务管理以及包管理。
应用模型提供了一种统一的语言和架构来描述应用程序的各个方面。
应用模型可以帮助开发者更好地理解应用程序的架构和设计,从而更有效地利用应用程序框架。

两者之间的关系

应用程序框架可以被看做是应用模型的一种实现方式。
应用模型是抽象,而应用程序框架是具体的实现方式。
开发人员可以根据应用模型描述应用程序的结构和行为,然后使用应用程序框架来实现这些描述。

Stage模型设计思想

  1. 为复杂应用而设计
    1. 不同应用组件间实例共享:可以减少复杂应用运行时对内存的占用
    2. 基于面向对象的开发方式:可以使得复杂应用代码可读性高、易维护性好、可拓展性强
  2. 原生支持应用组件级的跨端迁移和多端协同
    1. Stage模型提供了应用组件间通信的RPC调用能力,在不同设备的应用组件可以便携的迁移数据和状态
    2. UIAbility与UI分离:便可以利用ArkUI的声明式特点,通过组件中数据和状态的变化更新用户界面,从而实现跨端迁移和多端协同。
    3. UI展示与服务能力合一的UIAbility组件
  3. 支持多设备和多窗口形态
    1. UIAbility生命周期定义:Stage模型为应用组件设计了一套生命周期来适应不同的设备,提供统一的生命周期管理,可以减少应用组件在不同设备上的行为差异。
    2. 组件管理和窗口管理解耦:为系统提供了对应用组件进行裁剪以及拓展窗口形态的能力
  4. 平衡应用能力与系统管控成本
    1. 严格的后台管理:应用程序不能随意驻留在后台
    2. 基于场景的服务机制:Stage模型为卡片服务、输入法服务等提供了特定的应用组件,以满足更多的开发场景。
    3. 严格进程模型:应用后台行为会受到管理,防止一些恶意的应用行为

工程目录结构

Stage模型 工程目录结构

文件类型

  • 资源文件
  • 配置文件
  • ArkTS文件

ArkTS源码文件

页面文件、Ability类、常量类都属于ArkTS源码文件,主要存放在模块的ets目录下。
其中entryability目录下放置的是当前模块中定义的Ability组件;pages目录主要放置当前模块的页面文件

配置文件

每个项目的工程目录下必须包含应用配置文件,这些配置文件会向编译工具、操作系统和应用市场提供应用的基本信息,几种主要配置文件的类型如下:

  • app.json5:应用级配置文件,提供了应用的配置信息,如应用的唯一标识、版本号、应用图标、应用名称等信息
  • module.json5:模块级配置文件
    • 包含模块的基础配置,如模块名称、模块类型、标识当前模块可以运行在哪类设备上;
    • 定义了当前模块的应用组件的配置信息,主要包含UIAbility的名称、基本描述、入口代码路径等,这些配置信息只针对当前模块下的UIAbility生效
    • 包括标识模块的路由表信息,主要定义了跳转页面名称、页面所在模块名称、页面路径等路由配置信息
    • 还包括模块权限配置信息,如过程序运行时需要访问网络或者常驻后台等的权限,需要想系统申请权限信息
  • oh-package.json5:依赖管理配置文件,其主要定义了名称、版本号、简介、作者、以及代码汇总依赖的第三方库等信息。

资源文件

分为应用级资源和模块级资源
应用级资源可以被项目中所有的模块引用,放置在AppScope下的resource目录下
模块级资源放置在各模块下的resources目录下
资源目录可以放置的资源:

  • element目录:主要放置颜色、数字、字符串等一些元素资源
  • media目录:主要放置图片、音频、视频文件等媒体资源
  • profile目录:
    • 主要放置自定义配置文件,如页面配置、卡片配置
    • DevEco Studio默认会在profile目录下生成一个main_pages配置文件,定义了模块页面的路由集合
  • 中英文目录:zh_CN、en_US, 包含了模块所用到的一些中英文资源,应用运行时会根据设备的语言环境进行优先匹配资源
  • rawfile目录:可以存放各类资源文件,但不会被直接打包进应用,不会经过编译过程,也不会被赋予资源文件ID
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值