安卓禁用硬件加速_Android硬件加速详解
从Android3.0(API Level 11)开始,支持硬件加速,可充分利用GPU的特性,使得界面渲染更加平滑。
但是硬件加速自身并非完美,在某些Webview版本上,比如Android5初期的一些rom上的Webview版本是chrome37、38版本,由于其本身的硬件加速策略的bug,导致代码稍微给硬件一些压力,就会引发闪屏、花屏等渲染问题。
硬件加速的好处
硬件加速对渲染的流畅度有大幅提升。
在开启硬件加速后,上下拖动列表的感觉是没有跳帧的平滑拖动感,如果没有硬件加速,拖动时能感受到有丢帧。
在窗体切换动画上也类似,硬件加速开关对切换动画的影响很大。
对于video、canvas、webgl,没有硬件加速是没法商用的,Android webview里video标签里的视频如果没有硬件加速会看不到画面。
硬件加速的代价
硬件加速属于双缓冲机制,使用显存进行页面渲染(使用较少的物理内存),导致更频繁的显存操作,可能引起以下现象:
花屏、闪屏、分块渲染;
那么对于开发者,始终要注意降低页面的内存占用,给硬件加速腾出RAM。
具体参考http://ask.dcloud.net.cn/article/12837
硬件加速的开关控制
在5+App可以从两个级别对硬件加速进行控制:
App级别
程序级别开关是设置整个程序是否使用硬件加速,关闭后程序中所有页面将都不可使用硬件加速功能,可通过以下方式操作:
HBuilder中配置的方法
打开应用的manifest.json文件,切换到“代码视图”,在plus->distribute->google节点下添加“hardwareAccelerated”字段:
要开启硬件加速设置值为true,关闭硬件加速则设置值为false。不配置的话默认是auto。
保存提交到App云端打包才能生效。
离线打包配置的方法
打开工程的AndroidManifest.xml文件,切换到代码视图模式,在application节点下修改“android:hardwareAccelerated”属性值:
要开启硬件加速设置值为true,关闭硬件加速则设置值为false。
保存后重新编译即可生效。
Webview窗口级别
除了App级别,还可以对单个Webview控制是否开启硬件加速功能,比如App关闭了硬件加速,但某个webview又打开了硬件加速:
新开Webview窗口是否开启硬件加速
创建Webview窗口时(注意创建完毕再修改无效),可设置WebviewStyle参数的hardwareAccelerated属性值控制是否开启硬件加速:
var styles = {hardwareAccelerated:true}; // true表示开启Webview的硬件加速,false表示关闭Webview的邮件加速
var webview = plus.webview.create( "url", "id", styles );
webview.show();
设置首页webview是否开启硬件加速
上面的新开webview时设置硬件加速对首页是无效的,因为首页不是js创建的。首页webview的硬件加速单独配置需要在manifest里进行。
注意此配置与全局设置不同,虽然都在manifest配置,但此配置仅是对首页生效的,并非全局App的硬件加速配置。
打开应用的manifest.json文件,切换到“代码视图”,在plus节点下添加“hardwareAccelerated”字段:
设置值为true表示开启硬件加速,false表示关闭硬件加速。
关于硬件加速默认的auto值的说明,即不同平台上5+runtime默认开启或关闭硬件加速的策略
参考:http://ask.dcloud.net.cn/article/12830
可以通过5+ API查询Webview默认硬件加速是否开启
但注意此api即defauleHardwareAccelerated,是我们的引擎的默认策略查询,开发者手动打开硬件加速后,并不会更改这个值。
检测硬件加速是否开启,一方面看上下滑动的流畅度,另一种方法是放一个video标签,看看视频是否有画面。
关闭硬件加速时,如果想播放视频,有2种方案:
对播放视频的webview单独开硬件加速,创建这个webview时参考上面的方法开启硬件加速。
安卓禁用硬件加速_Android硬件加速详解相关推荐
- android开发者选项打开方式,打开、关闭安卓手机的开发者选项的方法详解
现在使用安卓手机的用户人群很多,大家都知道安卓手机中的"开发人员选项"吧,最近,有用户在问如何关闭或者打开开发者选项.那么小编今天就给大家带来一个打开.关闭安卓手机的开发者选项的方 ...
- Unity 分享 功能 用Unity Native Share Plugin 实现链接、图片、视频等文件的分享+ 安卓 Ios 都可以,代码图文详解
Unity 分享 功能 用Unity Native Share Plugin 实现链接.图片.视频等文件的分享+ 安卓 Ios 都可以,代码图文详解 前言 环境 效果 一.Unity Native S ...
- 安卓禁用硬件加速_Android硬件加速
最近项目中遇到了因为硬件加速引起的一些问题,故这里深入学习了解一下关于硬件加速的一些东西 背景 什么是硬件加速? 硬件加速是Android系统在绘制图形时采取的一种方式. 图形的绘制,本质上就是界面的 ...
- 【平衡小车制作】(一)硬件原理图讲解(超详解)
大家好,我是小政.之后的一系列文章我将介绍我玩平衡小车的过程以及遇到的一些问题,将这些内容记录下来分享给大家,也让大家少走一些弯路.接下来我将从硬件框架选择.软件编程.PID算法.PID调参.蓝牙 ...
- 嵌入式硬件基础之SPI总线详解
目录 SPI(ISerial Peripheral Interface)简介 基本协议 SPI协议概括 协议举例 用户逻辑 SPI原理 时序图 同步串行口 硬件示意图 性能特点 协议举例 性能补充 协 ...
- html5硬件接口,HTML5通用接口详解
1.先说几个基本类型: DOMString, boolean, long, unsigned long, double,BmBHTML5中文学习网 - HTML5先行者学习网 NaN(Not-a-Nu ...
- 安卓自定义View进阶-事件分发机制详解
原文地址:http://www.gcssloop.com/customview/dispatch-touchevent-source Android 事件分发机制详解,在上一篇文章 事件分发机制原理 ...
- java罗盘说明_Android - Compass(罗盘) 详解
Compass(罗盘) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/21379067 Compass(罗盘)是一个定制的视 ...
- 硬盘内部硬件结构和工作原理详解
硬盘的外部物理结构 一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标.型号.序列号.生产日期.容量.参数和主从设置方法等.这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义. 硬盘 ...
最新文章
- xyplorer保存设置失败_XYplorer设置中文步骤详解教程
- Solr debugQuery使用体会
- C++ 模板:template
- mysql中数据库database、实例instance、会话session的关系
- 一文看懂:互联网产品分析,该如何做?
- 嵌入式基础之----C语言
- 王彪20162321 2016-2017-2 《程序设计与数据结构》第5周学习总结
- 去除dataframe中的空行_Word中这些一键操作实在太强了!折腾半天的工作,一秒就能搞定!...
- 解决 Chrome 下载不了东西 失败 - 已屏蔽 的问题
- [转载] Python中的Phyllotaxis模式| 算法植物学的一个单位
- POJ2104 K-th Number [整体二分]
- 达梦数据库,查看表空间使用情况
- 我国的省级行政区中,哪些邻省最多,哪些最少?
- mysql MERGE 错误(differently defined or of non-MyISAM type)
- 程序员高效办公利器整理
- CAD中运用CHAMFER命令的角度模式建立倒角的方式
- Excel快速合并多行数据
- Postgresql12+Pgpool-ii 4.1高可用集群
- 使用Floyd-Warshall算法求出两点之间的最短路径
- 通用寄存器与标志位寄存器OF/DF/IF/TF/SF/ZF/AF/PF
热门文章
- 和数荣获由国家授权的30项计算机软件著作权及1项发明专利
- dnf跨几服务器比较稳定,DNF1228跨区了能干嘛 1228跨区问题解决一览
- 爬虫数据分析实战——腾讯视频《奔跑吧》第九季弹幕数据分析
- sql 查询 like '%_1%' 的坑
- 软件加密系统Themida常见问题集锦—Themida是否支持命令行保护?
- VHDL行为描述方法实现与门
- doc 转 docx
- 电脑Win7系统不会装机怎么办?小编教你重装win7系统方法
- 个人电子邮箱注册申请哪个更好用?
- Samplitude pro x4完美汉化破解版|Samplitude pro x4 64位完美汉化破解版(附汉化包)下载 v15.0.1.139