HarmonyOS Web页面卡死后,全端使用Web组件的页面都会卡死
app中所有的Web组件会共用同一个 浏览器进程/线程吗 ? 所以,一旦一个卡死了,所有的都卡死?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
webView.WebCookieManager中的setCookie和getCookie有概率会卡死APP。
1075浏览 • 1回复 待解决
router.pushUrl(NavPathStack) 透传给 Navigation 组件,页面存在卡死的问题
2336浏览 • 1回复 待解决
HarmonyOS 使用Web组件加载页面示例
622浏览 • 1回复 待解决
HarmonyOS web组件 加载web页面异常
406浏览 • 1回复 待解决
HarmonyOS Web组件打不开线上web页面
75浏览 • 1回复 待解决
HarmonyOS Web组件打开pdf的页面
149浏览 • 1回复 待解决
HarmonyOS Web组件无法加载页面
219浏览 • 1回复 待解决
HarmonyOS web组件加载页面空白
345浏览 • 1回复 待解决
HarmonyOS 所有的web组件都会执行onRenderExited
640浏览 • 1回复 待解决
HarmonyOS Web怎样开启web组件加载页面的加速
613浏览 • 1回复 待解决
HarmonyOS flutter hls seek进度卡死
69浏览 • 1回复 待解决
有没有高性能的AES加解密组件,使用ohos/crypto-js解密比较大的数据(约300K)时会卡死?
306浏览 • 1回复 待解决
HarmonyOS web页面闪烁
13浏览 • 1回复 待解决
HarmonyOS web页面跳转和拦截Web组件发起的网络请求的区别
142浏览 • 1回复 待解决
Web组件拦截页面请求响应
1084浏览 • 1回复 待解决
HarmonyOS 使用Web组件打开url为电脑端样式
205浏览 • 1回复 待解决
HarmonyOS Web组件有时候会卡几秒或者很久白页,同一个页面有时候很快有时候会卡
263浏览 • 1回复 待解决
可以脱离页面创建web组件,指的是?
873浏览 • 1回复 待解决
HarmonyOS web组件怎么获取html页面标题
20浏览 • 1回复 待解决
HarmonyOS Web组件加载页面出现样式丢失
188浏览 • 1回复 待解决
Web组件对原生H5、常用框架VUE、React的页面支持情况,包括本地和网络端的页面
1974浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用鸿蒙Web组件加载网络页面
284浏览 • 1回复 待解决
HarmonyOS 如何与Web页面进行交互(JS的使用)
229浏览 • 1回复 待解决
Web组件加载PDF页面默认加的下载和打印组件如何使用?
416浏览 • 1回复 待解决
HarmonyOS 摄像头切换时卡死
211浏览 • 1回复 待解决
H5相关的在渲染进程中运行,其他的在主进程运行。
WebView的渲染进程与应用主进程是跨进程通信的。
Web组件中的js代码运行在render进程中。
一些线程的相关介绍:
主线程:render主线程。负责Paint,将各种html元素生成生成cc::Layer树。
渲染线程:Chrome_InProcRendererThread,运行Blink模块,负责页面的DOM解析,样式渲染,排版,执行JS。通过委托渲染机制,收集和整理渲染网页所需信息和资源,生成网页渲染帧,并不直接渲染网页,而是发送给主进程的合成进程中合成。
合成线程:合成线程,运行CC模块,负责Layer的管理,调用光栅化线程池,绘制Layer,调用GPU线程合成。Render进程中,负责生成渲染离屏页面需要的GPU命令,请求GPU线程渲染。
GPU线程:InProcessGpuThread,负责Texture数据的合成。在Render进程中,负责执行离屏渲染页面的GPU命令。
光栅化线程:CompositorTileWorker,负责将layer分块好的Tile进行光栅化。
IO线程:IO线程,负责与其他进程/线程进行IPC通信。
Web组件整体渲染流程具体描述:
创建初始化。当hap应用声明使用了web组件时,ArkUI会进行web组件的创建及初始化,其中渲染相关的主要流程有:
1.1 为web组件创建SurfaceNode作为图形后端。
1.2 创建NWeb对象,并从SurfaceNode中获取Surface对象传递给NWeb对象,保存在NWeb对接层中。该Surface对象为producerSurface,NWeb对象则是该Surface内容的生产者。同时将完成web内核的初始化。
网页加载。当NWeb对象创建完成,web组件会获取开发者提供的src属性值作为URL,并调用NWeb对象进行网页加载和渲染输出。主要流程为:
2.1 Web组件调用NWeb对象的LoadURL接口开始网页加载。
2.2 NWeb对象在内核中实现网页的解析、渲染、合成等一系列操作。
2.3 NWeb对接层调用Surface的RequestBuffer获取到SurfaceBuffer,将渲染结果拷贝到SurfaceBuffer中,再调用Surface的FlushBuffer接口将渲染结果上传到相应SurfaceNode当中。至此图形侧收到了NWeb的网页渲染结果。
送显。图形侧接收到vsync信号时,将根据SurfaceNode之间的相互关系,对相应的Surface中的内容进行合成渲染,此时将消费保存在Surface中的NWeb网页渲染结果,进而完成送显。这样得到的hap应用渲染结果中,就实现了web内容与其它ArkUI组件内容的合成渲染。