强制开启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/tmptouch webview-command-lineecho '_ --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

强制开启Android Webview GPU 加速的方法相关推荐

  1. 强制开启Android 分区存储 沙盘文件系统

    为了测试Android 11下强制分区存储后的应用兼容问题,这里摸索了下目前的打开方式 1. 在AS里下载API 30的 虚拟机 2. 打开虚拟机,进入首页后,执行 adb shell sm set- ...

  2. android 6.0省电,谷歌发话:强制开启Android 6.0省电模式和全盘加密

    原标题<谷歌发话了:谁都不许动省电模式和全盘加密>,IT之家编辑酌情修改. 日前谷歌已经发布了Android 6.0 Marshmallow的源码,手机厂商们正在加紧为旗下设备的适配工作, ...

  3. Android使用GPU加速JPEG图片解码(Opencl)

    转载请标明出处:https://blog.csdn.net/u013752202/article/details/92794209 1.创建opencl kernel (1)创建kerenl并编译sh ...

  4. ART简单体验和Android图形硬件加速分析

    原文链接:http://www.soomal.com/doc/10100004760.htm 平均/总评分:08.02/505 相关资料 收藏此图 相关图片 Android ART Android A ...

  5. Android WebView简要介绍和学习计划

    我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新.在4.4版本之前,Android WebView基于WebKit实现.不过,在4.4版本之后,Android WebView就 ...

  6. MATLAB GPU加速

    以前使用matlab 的时候,很多人都用过里面的并行工具箱,用的最多的应该就是parfor.实际上,matlab里面已经有不少工具箱里面都有了支持GPU加速的函数.使用matlab+GPU加速的前提是 ...

  7. android gpu 2d加速,强制使用GPU加速 对Android设备加速画面显示有效吗

    强制使用GPU加速之后,原本那些并未设定的应用程序,在2D画面的显示效能上会获得改进,特别是在滑动画面的顺畅感,使用者能够明显感觉到.但这也不是万灵丹,有些装置有用.有些装置没什么差别,请看小编的实测 ...

  8. matlab win10 gpu加速,win10怎么开启gpu加速有用吗 GPU硬件加速设置方法介绍

    win10怎么开启gpu加速有用吗 GPU硬件加速设置方法介绍 作为Windows 10的一项重要功能,微软在分享了GPU硬件加速细节后,现在还为大家送上了开启它的技巧,对于中低端设备来说,提升效果还 ...

  9. win10没有硬件加速GPU计划怎么强制开启--win7w.com

    win10没有硬件加速GPU计划怎么强制开启?在win10系统中,硬件加速GPU计划不是所有用户都可以加入使用,那我们该怎么开启硬件加速GPU调度功能呢,win10没有硬件加速GPU计划怎么强制开启, ...

最新文章

  1. 计算机cg专业,cg行业要学哪个专业好
  2. VMware虚拟机相关文件问题
  3. Excel ,三步 快速实现应用一个公式到一列或一行中
  4. 编译3.0的linux内核,Ubuntu 编译 Linux 3.0-rc4 内核
  5. 谈谈Web Workers
  6. MVC3.0与C#截取字符串
  7. 有向图的深度优先遍历
  8. 牛客网暑假训练第九场——F-Typing practice(多串并行 优化KMP详解)
  9. 计算机wordif函数,wordif函数怎么用
  10. Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  11. 火狐浏览器的翻译问题
  12. 仿京东 分类 购物车 + 定位
  13. Django案例:显示图书的信息books
  14. 存储器的分类及各类型的特点
  15. 我终于把C++多文件编程理解透彻了
  16. enumerate()
  17. 联通 位置服务器,中国联通服务器名称或地址
  18. 安卓带步骤的手写签名(附源码)
  19. API测试基础知识(基本概念、测试方法、测试工具)
  20. BPMN2.0协议简介

热门文章

  1. SQLDirect组件库用户指南
  2. Alientek I.MX6UL Linux- 第六章 Contex-A7 MPCore架构
  3. 一级缓存和二级缓存的理解
  4. 单片微机原理与接口技术——8051汇编指令系统与编程基础(3)算术运算与逻辑运算指令
  5. 【前端】静态数据和后台数据/echarts
  6. STM32F103完成对SD卡的数据读取详细操作
  7. 区块链通证经济:通往未来十年财富分配的新格局
  8. iOS 富文本~设置字体大小和颜色
  9. 网络协议-dubbo协议
  10. TCP协议学习记录 (三) Ping程序 RR选项 记录路由hop