harmony 鸿蒙获取Native子进程退出信息

  • 2025-06-12
  • 浏览 (3)

获取Native子进程退出信息

场景介绍

从API version 20开始,支持父进程通过注册回调函数监听子进程,获取子进程异常退出信息,以便父进程做后续优化处理。这里支持监听的子进程必须为OH_Ability_StartNativeChildProcessstartNativeChildProcess接口创建的子进程。

接口说明

名称 描述
Ability_NativeChildProcess_ErrCode OH_Ability_RegisterNativeChildProcessExitCallback (OH_Ability_OnNativeChildProcessExit onProcessExit) 注册子进程退出回调函数。
Ability_NativeChildProcess_ErrCode OH_Ability_UnregisterNativeChildProcessExitCallback (OH_Ability_OnNativeChildProcessExit onProcessExit) 解注册子进程退出回调函数。

开发步骤

动态库文件

libchild_process.so

头文件

#include <AbilityKit/native_child_process.h>
  1. 主进程-注册和解注册Native子进程异常退出回调。

    调用OH_Ability_RegisterNativeChildProcessExitCallback注册Native子进程,如果返回值为NCP_NO_ERROR表示注册成功。 调用OH_Ability_UnregisterNativeChildProcessExitCallback解注册Native子进程,如果返回值为NCP_NO_ERROR表示解注册成功。

    #include <AbilityKit/native_child_process.h>
    void OnNativeChildProcessExit(int32_t pid, int32_t signal) {
        OH_LOG_INFO("pid: %{public}d, signal: %{public}d", pid, signal);
    }
    
    
    void RegisterNativeChildProcessExitCallback()
    {
        Ability_NativeChildProcess_ErrCode ret = OH_Ability_RegisterNativeChildProcessExitCallback(OnNativeChildProcessExit);
        if (ret != NCP_NO_ERROR) {
            OH_LOG_ERROR("register failed.");
        }
    }
    
    
    void UnregisterNativeChildProcessExitCallback()
    {
        Ability_NativeChildProcess_ErrCode ret = OH_Ability_UnregisterNativeChildProcessExitCallback(OnNativeChildProcessExit);
        if (ret != NCP_NO_ERROR) {
            OH_LOG_ERROR("unregister failed.");
        }
    }
    
  2. 主进程-添加编译依赖项。

    修改CMaklist.txt添加必要的依赖库,假设主进程所在的so名称为libmainprocesssample.so(主进程和子进程的实现也可以选择编译到同一个动态库文件)。

    target_link_libraries(mainprocesssample PUBLIC
        # 添加依赖的元能力动态库
        libchild_process.so
        
        # 其它依赖的动态库
        # ...
    )
    

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Ability Kit(程序框架服务)

harmony 鸿蒙获取应用异常退出原因

harmony 鸿蒙UIAbility备份恢复

harmony 鸿蒙使用显式Want启动应用组件

harmony 鸿蒙Ability Kit简介

harmony 鸿蒙AbilityStage组件容器

harmony 鸿蒙访问DataAbility

harmony 鸿蒙FA模型访问Stage模型DataShareExtensionAbility

harmony 鸿蒙常见action与entities(不推荐使用)

harmony 鸿蒙API切换概述

0  赞