一种WebView控件界面绘制的方法和装置制造方法及图纸

技术编号:14811015 阅读:50 留言:0更新日期:2017-03-15 02:48
本发明专利技术适用于信息技术领域,提供了一种WebView控件界面绘制的方法和装置,所述方法包括:使WebView控件界面独立于应用主程序的宿主界面;为WebView控件界面的绘制创建独立工作线程,所述独立工作线程独立于应用主程序的UI主线程;在所述独立工作线程中完成WebView控件界面的绘制。本发明专利技术,实现了将WebView控件界面的绘制置于独立工作线程进行,可以让HTML5视频播放任务工作在独立工作线程中,一方面可以提升HTML5视频在WebView控件中的显示效率,另一方面可以改善应用主程序的宿主界面嵌入WebView控件播放视频时的用户界面响应速度及提升主程序的健壮性。

【技术实现步骤摘要】

本专利技术属于信息
,尤其涉及一种WebView控件界面绘制的方法和装置
技术介绍
随着HTML5标准及相关技术的发展,现代主流浏览器均支持HTML5视频播放。在安卓Android智能平台,chrome浏览器对HTML5视频的支持也做了较大优化。在一些业务场景下,需要在Android应用主程序App的某一页面内调用HTML5视频播放功能。目前Android提供的标准方法是在AndroidApp内嵌入WebView控件,通过该WebView控件加载和播放HTML5视频。这种方式有以下缺陷:第一、WebView控件不支持多进程,视频的渲染及合成显示都由Android应用主程序的UI主线程完成,UI主线程同时要处理用户事件并刷新基础UI界面,从而导致HTML5视频播放时,Android系统响应用户事件有可能出现反应迟钝,即通常所说的界面卡顿;第二、WebView工作在应用主程序的UI主线程,当WebView控件出现异常发生程序崩溃时,也会间接导致UI主线程异常,App主程序发生异常ForceClose现象。
技术实现思路
本专利技术实施例提供了一种WebView控件界面绘制的方法和装置,旨在解决现有技术提供的WebView控件界面绘制的方法,界面会出现卡顿现象,App应用主程序也会发生异常现象的问题。一方面,提供一种WebView控件界面绘制的方法,所述方法包括:使WebView控件界面独立于应用主程序的宿主界面;为WebView控件界面的绘制创建独立工作线程,所述独立工作线程独立于应用主程序的UI主线程;在所述独立工作线程中完成WebView控件界面的绘制。进一步地,所述使WebView控件界面独立于应用主程序的宿主界面包括:将WebView控件界面的绘图层置于应用主程序的宿主界面的绘图层之下;在应用主程序的宿主界面的绘图层上设置一块与WebView控件界面的绘图层大小相同的透明区域。进一步地,所述为WebView控件界面的绘制创建独立工作线程包括:在应用主程序的UI主线程中创建第一独立工作线程;在应用主程序的UI主线程中创建第二独立工作线程;在应用主程序的UI主线程中创建第三独立工作线程。进一步地,所述在所述独立工作线程中完成WebView控件界面的绘制包括:在第一独立工作线程中根据用户输入的网页生成渲染树;在第二独立工作线程中生成合成树;在第三独立工作线程中执行渲染和合成命令,并将合成结果输出到WebView控件的绘图层。另一方面,提供一种WebView控件界面绘制的装置,所述装置包括:界面独立模块,用于使WebView控件界面独立于应用主程序的宿主界面;线程创建模块,用于为WebView控件界面的绘制创建独立工作线程,所述独立工作线程独立于应用主程序的UI主线程;界面绘制模块,用于在所述独立工作线程中完成WebView控件界面的绘制。进一步地,所述界面独立模块包括:绘图层处理单元,用于将WebView控件界面的绘图层置于应用主程序的宿主界面的绘图层之下;宿主界面处理单元,用于在应用主程序的宿主界面的绘图层上设置一块与WebView控件界面的绘图层大小相同的透明区域。进一步地,所述线程创建模块包括:第一线程创建单元,用于在应用主程序的UI主线程中创建第一独立工作线程;第二线程创建单元,用于在应用主程序的UI主线程中创建第二独立工作线程;第三线程创建单元,用于在应用主程序的UI主线程中创建第三独立工作线程。进一步地,所述界面绘制模块包括:渲染树生成单元,用于在第一独立工作线程中根据用户输入的网页生成渲染树;合成树生成单元,用于在第二独立工作线程中生成合成树;结果输出单元,用于在第三独立工作线程中执行渲染和合成命令,并将合成结果输出到WebView控件的绘图层。在本专利技术实施例,使WebView控件界面独立于宿主界面后,为WebView控件界面的绘制创建独立于UI主线程的独立工作线程,通过独立于UI主线程的独立工作线程完成WebView控件界面的绘制,实现了将WebView控件界面的绘制置于独立工作线程进行,与应用主程序的UI主线程剥离,可以让HTML5视频播放任务工作在独立工作线程中,一方面可以提升HTML5视频在WebView控件中的显示效率,另一方面可以改善应用主程序的宿主界面嵌入WebView控件播放视频时的用户界面响应速度及提升主程序的健壮性。附图说明图1是本专利技术实施例一提供的WebView控件界面绘制的方法的实现流程图;图2是本专利技术实施例一提供的WebView控件界面绘制的方法中,WebView控件界面独立于应用主程序的宿主界面的示意图;图3是本专利技术实施例二提供的WebView控件界面绘制的装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在本专利技术实施例中,使WebView控件界面独立于应用主程序的宿主界面;为WebView控件界面的绘制创建独立工作线程,所述独立工作线程独立于应用主程序的UI主线程;在所述独立工作线程中完成WebView控件界面的绘制。以下结合具体实施例对本专利技术的实现进行详细描述:实施例一图1示出了本专利技术实施例一提供的WebView控件界面绘制的方法的实现流程,详述如下:在步骤S101中,使WebView控件界面独立于应用主程序的宿主界面。在Android系统中,WebView控件与TextView、Button、ImageView等控件一样,它们都是将自己的UI绘制在应用主程序的宿主界面的绘图层上,这意味着它们的UI都是在应用主程序的UI主线程中进行绘制的。当绘制一些复杂场景,例如游戏画面、Camera预览画面、视频播放,这些场景的UI相对复杂且要求进行高效的绘制,它们的UI放在应用主程序的UI主线程绘制就不是太合适,必须给这些要求复杂而高效的UI生成一个独立的绘图层以及使用一个独立的线程来绘制这些UI。在Android系统中,AndroidApp的界面是由SurfaceFlinger服务进行绘制,一般来说每一个界面在SurfaceFlinger服务中都对应一个绘图层Layer,用来描述绘图界面。WebView控件用于处理Web(HTML/本文档来自技高网...

【技术保护点】
一种WebView控件界面绘制的方法,其特征在于,所述方法包括:使WebView控件界面独立于应用主程序的宿主界面;为WebView控件界面的绘制创建独立工作线程,所述独立工作线程独立于应用主程序的UI主线程;在所述独立工作线程中完成WebView控件界面的绘制。

【技术特征摘要】
1.一种WebView控件界面绘制的方法,其特征在于,所述方法包括:
使WebView控件界面独立于应用主程序的宿主界面;
为WebView控件界面的绘制创建独立工作线程,所述独立工作线程独立于
应用主程序的UI主线程;
在所述独立工作线程中完成WebView控件界面的绘制。
2.如权利要求1所述的方法,其特征在于,所述使WebView控件界面独
立于应用主程序的宿主界面包括:
将WebView控件界面的绘图层置于应用主程序的宿主界面的绘图层之下;
在应用主程序的宿主界面的绘图层上设置一块与WebView控件界面的绘
图层大小相同的透明区域。
3.如权利要求1所述的方法,其特征在于,所述为WebView控件界面的绘
制创建独立工作线程包括:
在应用主程序的UI主线程中创建第一独立工作线程;
在应用主程序的UI主线程中创建第二独立工作线程;
在应用主程序的UI主线程中创建第三独立工作线程。
4.如权利要求3所述的方法,其特征在于,所述在所述独立工作线程中完
成WebView控件界面的绘制包括:
在第一独立工作线程中根据用户输入的网页生成渲染树;
在第二独立工作线程中生成合成树;
在第三独立工作线程中执行渲染和合成命令,并将合成结果输出到
WebView控件的绘图层。
5.一种WebView控件界面绘制的装置,其特征在于,所述装置包括...

【专利技术属性】
技术研发人员:曹源
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1