强制开启Android Webview GPU 加速的方法 |
您所在的位置:网站首页 › 启动多线程webview对手机的影响 › 强制开启Android Webview GPU 加速的方法 |
强制开启Android Webview GPU 加速的方法
常用方法
浏览器开启GPU加速可以让渲染的性能更好,可以有效的利用硬件的能力来提高页面的绘制帧率。在安卓平台使用webview的场景下,开发人员通常会通过以下两种方法来让webview使用硬件加速能力来渲染页面。 方法一: 在应用的启动配置中,添加 android:hardwareAccelerated="true"配置,如下图所示: 方法二: 通过在webview初始化的方法中使用如下代码: wv.setLayerType(View.LAYER_TYPE_HARDWARE, null);以上两种方法在绝大部分的设备上都可以生效,当我们用chrome提供的远程调试工具调试webview打开的页面,并将fps看板显示出来时,我们可以看到上面显示了GPU Raster处于启用状态,如下图所示: 但是在一些小众机型或安卓系统中,这两个方法无法生效,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/tmp touch webview-command-line echo '_ --force-gpu-rasterization' > webview-command-line完成写入后重启webview,打开网页查看FPS面板: 可以从图中看到GPU Raster已经被开启,帧率也上到了43FPS。 相关资料: Commandline flags CommandLineUtil run-chromium-with-flags How to get GPU Rasterization - The Chromium Projects |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |