摘要:
随着系统芯片技术和无线通信技术的迅猛发展,整个社会进入了移动互联网时代.伴随着移动互联网浪潮,Android系统凭借开源特性和良好的生态环境成为当今应用最广泛的移动操作系统.而在移动互联网时代,人们对网页浏览体验的要求越来越高,网页内容也在朝着富媒体的方向发展,这给浏览器引擎的网页渲染带来了更大的压力.HTML5标准中新增了用于网页图形绘制的Canvas标签,Canvas标签配合JavaScript可以支持图片,文字,几何图形等内容的渲染.对于Canvas标签中各个绘图接口的性能问题,本文通过在龙芯2H和OK210开发板上的实测发现,GPU绘制图片的效率比CPU高,而CPU绘制几何图形的效率却比GPU高.由于原生Android系统目前只支持单纯采用CPU或单纯采用GPU来绘制Canvas标签中图形,所以并不能充分利用CPU和GPU各自的性能优势.本文在深入分析Android图形系统和WebKit引擎工作原理的基础上,提出并实现了一套CPU和GPU共同参与的组合绘制方案,即图片相关的绘制操作交给GPU处理,其余的图形绘制操作交给CPU处理.本文为HTML5网页新建了一个渲染后端,使CPU和GPU都拥有独立的渲染后端,并通过SurfaceFlinger将两者的渲染结果合成后再进行显示.本文的优化方案在龙芯2H开发板和OK210开发板上分别进行了验证.CanvasPerf的测试结果显示,优化方案相比单纯采用CPU进行图片绘制效率提升超过20%,相比单纯采用GPU进行几何图形绘制效率提升超过10%.采用本文所实现的优化方案后,相比Android原生方案,CanvasMark的帧率平均提升超过10%,而BBench测试的网页加载时间平均缩短了10%以上.
展开