Android不同层次开启硬件加速的方式和关闭硬件加速
> 硬件加速
-- 硬件加速的主要原理,就是通过底层软件代码,将CPU不擅长的图形计算转换成GPU专用指令,由GPU完成。在Android中,大多数应用的界面都是利用常规的View来构建的(除了游戏、视频、图像等应用可能直接使用OpenGL ES)。
-- DisplayList:
DisplayList是一个基本绘制元素,包含元素原始属性(位置、尺寸、角度、透明度等),对应Canvas的drawXxx()方法(如下图)。
信息传递流程:Canvas(Java API) —> OpenGL(C/C++ Lib) —> 驱动程序 —> GPU。
在Android 4.1及以上版本,DisplayList支持属性,如果View的一些属性发生变化(比如Scale、Alpha、Translate),只需把属性更新给GPU,不需要生成新的DisplayList。实现同样效果,应尽量使用更简单的DisplayList,从而达到更好的性能(Shape代替Bitmap等)。
-- RenderNode:一个RenderNode包含若干个DisplayList,通常一个RenderNode对应一个View,包含View自身及其子View的所有DisplayList。
-- 硬件加速:
CPU更擅长复杂逻辑控制,而GPU得益于大量ALU和并行结构设计,更擅长数学运算。
页面由各种基础元素(DisplayList)构成,渲染时需要进行大量浮点运算。
硬件加速条件下,CPU用于控制复杂绘制逻辑、构建或更新DisplayList;GPU用于完成图形计算、渲染DisplayList。
硬件加速条件下,刷新界面尤其是播放动画时,CPU只重建或更新必要的DisplayList,进一步提高渲染效率。
> Android不同层次开启硬件加速的方式
在Android中,可以四给不同层次上开启硬件加速:
1.应用:
<application android:hardwareAccelerated="true">
2.Activity
<activity android:hardwareAccelerated="true">
3.Window
getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
4.View
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
在这四个层次中,应用和Activity是可以选择的,Window只能打开,View只能关闭。
在apk的AndroidManifest中,如果指定了minSDKVersion&targetSDKVersion=7,会使得应用无法使用硬件加速进行绘图。
Android硬件加速总结- http://blog.csdn.net/xu_fu/article/details/48208795
Android 开启或关闭硬件加速- http://blog.csdn.net/qq_26761229/article/details/52597362
> Android如何关闭硬件加速
Android如何关闭硬件加速- https://github.com/GcsSloop/AndroidNote/issues/7
关闭硬件加速,以免引起不必要的问题!在AndroidMenifest文件中application节点下添上 android:hardwareAccelerated=”false”以关闭整个应用的硬件加速。
Android不同层次开启硬件加速的方式和关闭硬件加速相关推荐
- android硬件加速切换,Android不同层次开启硬件加速的方式(转)
在Android中,可以四给不同层次上开启硬件加速: 1.应用: 2.Activity 3.Window getWindow().setFlags(WindowManager.LayoutParams ...
- Android 开启或关闭硬件加速
开启硬件加速: 在Android中,可以四给不同层次上开启硬件加速: 1.应用: <application android:hardwareAccelerated="true" ...
- linux开启硬件加速卡死,firefox标签卡死的解决方法:关闭硬件加速
一.问题描述 1.有的网页打开后,如果快速点击页面内的链接,firefox 标签页就会卡死. 2.卡死的页面关不掉,页面上鼠标手势.键盘快捷键都不起作用. 3.有时候就是一卡一卡(反应半天才反应过来) ...
- 怎么关闭计算机硬件加速,怎么关闭硬件加速?关闭硬件加速的操作技巧分享
懂得电脑的用户就知道,硬件加速就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性.但是有些电脑开启这个功能会导致视频卡顿,那么怎么关闭硬件加速功能呢?下面,小编给大家介绍关闭硬件加速的操作步 ...
- linux如何关闭硬件加速,如何关闭硬件加速,教您怎么关闭硬件加速的操作技巧...
原标题:如何关闭硬件加速,教您怎么关闭硬件加速的操作技巧 懂得电脑的用户就知道,硬件加速就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性.但是有些电脑开启这个功能会导致视频卡顿,那么怎么关 ...
- 安卓禁用硬件加速_[转]Android如何关闭硬件加速
硬件加速 Android 3.0 (API level 11), 开始支持 所有的View 的canvas都会使用GPU,但是硬件的加速会占有一定的RAM. 在API >= 14上,默认是开启的 ...
- Android 关闭硬件加速时,导致一些问题
当我们在中配置AndroidManifest中配置硬件加速 android:hardwareAccelerated="false",此时硬件加速已关闭,在我的开发过程中,我发现关闭 ...
- android关闭硬件动画加速器,Android中的硬件加速
从Android 3.0开始,Android的2D渲染管线可以更好的支持硬件加速.硬件加速使用GPU进行View上的绘制操作. 硬件加速可以在一下四个级别开启或关闭: Application Acti ...
- Android 打开关闭硬件加速
尊重原创,原文出处:http://www.cnblogs.com/frydsh/archive/2012/10/23/2733581.html Android从3.0(API Level 11)开始, ...
最新文章
- linux驱动:TI+DM8127+GPIO(二)之驱动
- 一条简单的更新语句,MySQL是如何加锁的?
- Self-Attention GAN 中的 self-attention 机制
- ubuntu16.04 配置nginx支持redis
- 5 多数据save_5个高质量行业数据报告资源下载地方,自己想一下有多重要吧
- Radware;医疗行业数字转型5大关键注意事项
- 如何用法向量求点到平面距离_无论大考小考,无论校考,还是联考,老师钟爱的题型“空间距离”...
- 裁剪并获取固定大小的图片
- 网络规划---网络计划图的时间参数计算
- Spring Data ElasticSearch - 分布式搜索和数据分析引擎 相关操作实战流程
- 简单梳理RAID算法
- ssget 用法详解
- 【Android -- 写作工具】Markdown 前景色、背景色
- 去掉网页从网页中拷贝到word中段落带有的背景颜色
- RLC谐振电路简单计算公式
- 景点接口 查询携程旅游门票景点详情
- 使用Charles和iPhone进行微信小程序抓包详解
- 新款云开发趣味测试小程序源码+功能超多
- 使用IE浏览器下载文件,文件名乱码问题
- html 设置整体字体,HTML字体的设置