# 应用终止事件介绍

#### 概述

从API version 20开始，HiAppEvent提供接口用于订阅应用终止事件。

应用终止是指应用程序被系统强制退出的一种现象。与应用崩溃不同，终止并非源于应用自身业务代码的异常，而是主要归因于系统基于资源管控策略而对应用实施的终止行为。

HiAppEvent提供接口用于订阅应用终止事件。

*   订阅应用终止事件（ArkTS）
*   订阅应用终止事件（C/C++）

应用终止事件支持在应用分身场景下使用 HiAppEvent 进行订阅，支持在元服务场景下使用 HiAppEvent 进行订阅，从 API version 22 开始支持在输入法应用场景下使用 HiAppEvent 进行订阅。

应用终止事件信息中params属性的详细描述如下：

#### 事件字段说明

#### params字段说明

终止事件信息中params属性的详细描述如下：

| 名称 | 类型 | 说明 |
| --- | --- | --- |
| time | number | 事件触发时间，单位为ms。 |
| reason | string | 终止原因，原因范围详见reason字段说明。 |
| foreground | boolean | 应用是否处于前台状态。true表示应用处于前台；false表示应用处于后台。 |
| app_running_unique_id | string | 应用运行时唯一关联的id。 说明：从API version 24开始支持该参数。 |
| bundle_version | string | 应用版本信息。 说明：从API version 24开始支持该参数。 |

#### reason字段说明

| 类型 | 说明 |
| --- | --- |
| LowMemoryKill | 整机低内存触发，优先级由低到高终止应用。 |
| SwapFull | Swap交换空间接近占满。 |
| ResourceLeak(IonLeak) | 应用占用的Ion内存超标。 |
| ResourceLeak(GpuRsLeak) | 应用的ArkUI组件在Render Service进程占用的GPU内存超标。 |
| ResourceLeak(GpuLeak) | 应用在本进程占用的GPU内存超标。 |
| ResourceLeak(AshmemLeak) | 应用占用的Ashmem内存超标。 |
| ResourceLeak(CES) | CES注册超限。 |
| ResourceLeak(PSSSoftLeak) | 后台应用内存占用超过检测阈值两倍，其中pss内存占比最高。 |
| ResourceLeak(PSSLeak) | 后台应用内存占用超过特定阈值，其中pss内存占比最高。 |
| ResourceLeak(VMALeak) | VMA泄漏。 |
| ResourceLeak(FDLeak) | FD泄漏。 |
| ResourceLeak(ThreadLeak) | 线程泄漏。 |
| ResourceLeak(KernelZoneLeak) | 页表内存泄漏。 |
| IllegalAudioRendererBySuspend | 应用的音频播放未申请合理的后台任务，其退至后台后仍有大量音频播放。 |
| PowerSaveClean | 整机切换到省电模式或应急模式。 |
| VrsKill | 三方应用检测到恶意进程后，调用PC端病毒检测处置服务接口终止进程。 |
| RssThresholdKiller | 应用的RSS（Resident Size Set）占用超标。 |
| OomKiller | 整机低内存，触发内核管控，按一定策略终止应用。 |
| CpaKiller | DRM（Digital Right Management）业务申请内存但是内存不足时，按一定策略终止进程以回收内存。 |
| KillApplication | 应用主动退出。 |
| OnRemoteDied | 远程服务死亡。 |
| Restart | 应用重启。 |
| UserRequest | 最近任务上划或清理。 |
| Uninstall | 应用卸载退出。 |
| Upgrade | 应用更新退出。 |
| Logout | 用户注销时，卸载应用沙箱。 |
| PermissionUpdate | 应用权限更新。 |
| aaForceStop | 通过aa命令强制停止应用。 |
| ThreadBlock6S | 应用主线程卡死超时。 |
| AppInputBlock | 用户输入响应超时。 |
| LifecycleTimeout | 应用生命周期超时。 |
| JsError | js层程序崩溃。 |
| CppCrash | native层程序崩溃。 |
| RSPixelMapFdOverLimit | 应用使用图片PixelMap资源超限导致渲染服务fd泄漏。 |
| CPUHighloadNotify | 应用后台CPU高负载，出现弹框，用户选择停止该应用。 |
| CPUHighloadUserRequest | 应用后台CPU高负载，设置界面用户选择停止该应用。 |
| IllegalAudioCapturerBySuspend | 应用录音未申请合理的后台任务，其退至后台后仍进行录音。 |
| IOHighload | IO高负载。 |
| AppFreeze | 应用冻屏无响应。 |
| MaliciousContinuousTaskActive | 恶意连续任务活跃。 |
| RsDataOverflow | RS数据溢出。 |
| HighTemperature | 温度超限。 |
| TransientTaskTimeout | 短时任务超时6s并且处于后台。 |
| TooManyReadyThreads | 就绪线程过多。 |
| JsHeapSleepCleanKill | sleep状态（夜间充电）进行js heapsize检测，超限后终止应用。 |
| HardwareDecodingResourcesLimit | 硬件解码资源限制。 |
| AppRecoveryNotifyAppOverLimit | 应用恢复通知应用超限。 |
| GpuError | GPU错误。 |
| NotAttachedToStatusBar | 未附加到状态栏。 |
| CPUHighload | 应用后台CPU高负载，系统自动终止应用。 |
| AshmemKiller | 整机低内存，单进程ASHMEM内存超限。 |
| GpuKiller | 整机低内存，单进程GPU占用达到阈值。 |
| DmaKiller | 整机低内存，单进程Dma占用达到阈值。 |
| ThreadKiller | 单进程线程超限。 |
| UninstallStorage | 卸载存储卡。 |