如何强制打开Android Webview GPU加速常用方法在浏览器中启用GPU加速可以提高渲染性能,并可以有效利用硬件功能来提高页面的绘制帧速率当Android平台使用webview时,开发人员通常通过以下两种方式使webview使用硬件加速功能呈现页面:
方法1 :
将Android : hardware accelerated=' true '配置添加到APP应用程序的启动配置中,如下图所示。
方法2 :
在webview中初始化的方法中使用以下代码。
wv.setlayertype (view.layer _ type _ hardware,null ); 这些方法在大多数设备上有效。 当您使用chrome提供的远程调试工具调试webview中打开的页面并查看fps看板卡时,可以看到已启用GPU光栅,如下图所示。
但是,对于一些小型机型和安卓系统,这两种方法都无效,因为FPS面板会显示GPU Raster关闭,网页上的一些动画是使用CPU绘制的,非常纸箱如下图所示。
这两种常用方法都无效,有没有其他方法呢?
当命令行参数遇到此问题时,我联想到chrome app可以在启动时传递命令行参数
-force-gpu-rasterization
强制打开GPU Raster,可以用同样的方法使用webview组件吗? 在webview官网的文档旅行了一段时间后,发现有。
Android webview在启动时在/data/local/tmp/目录下找到一个名为webview-command-line的文件,并将其内容作为启动参数读取。 此外,文件内容的参数格式与chrome app相同。 因此,通过将命令行参数写入该文件,实现了以下目的:
写入CD/data/local/tmptouchwebview-command-line echo ' _-force-GPU-rasterization ' webview-command-line
从图中可以看到,GPU Raster已经打开,帧速率也上升到了43FPS。
相关资料:
Commandline flags
CommandLineUtil
run-chromium-with-flags
howtogetgpurasterization-thechromiumprojects