HarmonyOS:ArkWeb进程

embedded/2025/2/5 5:52:18/

ArkWeb是多进程模型,分为应用进程、Web渲染进程、Web GPU进程、Web孵化进程和Foundation进程。

说明
Web内核没有明确的内存大小申请约束,理论上可以无限大,直到被资源管理释放。

ArkWeb进程模型图

在这里插入图片描述

应用进程中Web相关线程(应用唯一)

  • 应用进程为主进程。包含网络线程、Video线程、Audio线程和IO线程等。
  • 负责Web组件的北向接口与回调处理,网络请求、媒体服务等需要与其他系统服务交互的功能。

Foundation进程(系统唯一)

  • 负责接收应用进程进行孵化进程的请求,管理应用进程和Web渲染进程的绑定关系。

Web孵化进程(系统唯一)

  • 负责接收Foundation进程的请求,执行孵化Web渲染进行与Web GPU进程。
  • 执行孵化后处理安全沙箱降权、预加载动态库,以提升性能。

Web渲染进程(应用可指定多Web实例间共享或独立进程)

  • 负责运行Web渲染进程引擎(HTML解析、排版、绘制、渲染)。
  • 负责运行ArkWeb执行引擎(JavaScript、Web Assembly)。
  • 提供接口供应用选择多Web实例间是否共享渲染进程,满足不同场景对安全性、稳定性、内存占用的诉求。
  • 默认策略:移动设备上共享渲染进程以节省内存,2in1设备上独立渲染进程提升安全与稳定性。

Web GPU进程(应用唯一)

  • 负责光栅化、合成送显等与GPU、RenderService交互功能。提升应用进程稳定性、安全性。

1.可通过setRenderProcessMode设置渲染子进程的模式,从而控制渲染过程的单进程或多进程状态。

移动设备默认为单进程渲染,而2in1设备则默认采用多进程渲染。通过调用getRenderProcessMode可查询当前的渲染子进程模式,其中枚举值0表示单进程模式,枚举值1对应多进程模式。若获取的值超出RenderProcessMode枚举范围,系统将自动采用多进程渲染模式作为默认设置。

效果图

在这里插入图片描述

import { webview } from '@kit.ArkWeb';
import { BusinessError } from '@kit.BasicServicesKit';@Entry
@Component
struct TestArkWebProcessMode1 {controller: webview.WebviewController = new webview.WebviewController();build() {Column({space: 20}) {Button('getRenderProcessMode').onClick(() => {let mode = webview.WebviewController.getRenderProcessMode();console.log("获取web渲染进程模式 webgetRenderProcessMode: " + mode);})Button('setRenderProcessMode').onClick(() => {try {webview.WebviewController.setRenderProcessMode(webview.RenderProcessMode.MULTIPLE);console.log("设置web渲染进程成功")} catch (error) {console.error(`web渲染进程模式 发生错误 ErrorCode: ${(error as Busin

http://www.ppmy.cn/embedded/159670.html

相关文章

Linux远程登陆

文章目录 ssh命令远程登陆Xshell远程登陆 ssh命令远程登陆 打开cmd,通过ssh命令进行远程登陆 Xshell远程登陆 1.下载Xshell与XFTP 下载链接 打开Xshell,新建会话 进行一些设置: 同样安装XFTP进行文件的传输:

使用mockttp库模拟HTTP服务器和客户端进行单元测试

简介 mockttp 是一个用于在 Node.js 中模拟 HTTP 服务器和客户端的库。它可以帮助我们进行单元测试和集成测试,而不需要实际发送 HTTP 请求。 安装 npm install mockttp types/mockttp模拟http服务测试 首先导入并创建一个本地服务器实例 import { getLocal } …

【Vite + Vue + Ts 项目三个 tsconfig 文件】

Vite Vue Ts 项目三个 tsconfig 文件 为什么 Vite Vue Ts 项目会有三个 tsconfig 文件?首先我们先了解什么是 tsconfig.json ? 为什么 Vite Vue Ts 项目会有三个 tsconfig 文件? 在使用 Vite 创建 vue-ts 模板的项目时,会发现除了 ts…

【Super Tilemap Editor使用详解】(十五):从 TMX 文件导入地图(Importing from TMX files)

Super Tilemap Editor 支持从 TMX 文件(Tiled Map Editor 的文件格式)导入图块地图。通过导入 TMX 文件,你可以将 Tiled 中设计的地图快速转换为 Unity 中的图块地图,并自动创建图块地图组(Tilemap Group)。以下是详细的导入步骤和准备工作。 一、导入前的准备工作 在导…

医疗方向的可视化大屏,十分契合医疗行业数据量大的特点

在当今数字化医疗快速发展的时代,医疗行业积累的数据量呈爆炸式增长。从患者的个人基本信息、过往病史、各项检查检验报告,到医疗机构日常运营产生的物资管理数据、设备运行数据,再到大规模医疗研究中的海量样本数据,这些数据的规…

神经网络常见激活函数-sigmoid函数

sigmoid 1 函数求导 sigmoid函数 σ ( x ) 1 1 e ( − x ) \sigma(x) \frac{1}{1e^{(-x)}} σ(x)1e(−x)1​ sigmoid函数求导 d d x σ ( x ) d d x ( 1 1 e − x ) e − x ( 1 e − x ) 2 ( 1 e − x ) − 1 ( 1 e − x ) 2 1 1 e − x − 1 ( 1 e − x ) 2 …

wordpress安装

安装WordPress安装包,解压缩,安装到指定位置安装php环境: 下载:sudo yum install php php-fpm php-mysqlnd安装:sudo systemctl start php-fpmsudo systemctl enable php-fpm检测:php -v查询状态&#xff1…

python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像匹配

【1】引言 前序学习了图像的常规读取和基本按位操作技巧,相关文章包括且不限于: python学opencv|读取图像-CSDN博客 python学opencv|读取图像(四十九)原理探究:使用cv2.bitwise()系列函数实现图像按位运算-CSDN博客…