文档章节

总结系列-硬件加速

k
 kim366
发布于 2016/05/13 19:11
字数 630
阅读 3
收藏 0

Android的硬件加速

      Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。

      开启或关闭硬件加速:

      由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭。可以在4个级别上打开或者关闭硬件加速:

      Application级别:<applicationandroid:hardwareAccelerated="true" ...>

      Activity级别:<activity android:hardwareAccelerated="false" ...>

      Window级别:

getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

      注意:目前为止,Android还不支持在Window级别关闭硬件加速。

      View级别:

myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

      注意:目前为止,Android还不支持在View级别开启硬件加速。

      检测当前是否启用了硬件加速

// 方法一
// 此方法返回true,如果myView挂在一个开启了硬件加速的Window之下,
// 也就是说,它在绘制的时候不一定使用了硬件加速,getDrawingCache
myView.isHardwareAccelerated();
                        
// 方法二
// 返回true,如果canvas在绘制的时候启用了硬件加速
// 尽量采用此方法来判断是否开启了硬件加速
canvas.isHardwareAccelerated();

      理解View的绘制模型:

      1.没有硬件加速:invalidate the view hierarchy ------> draw the view hierarchy

      2.有硬件加速:invalidate the view hierarchy ------> record and update the display list ------> draw the display list

      硬件加速的限制:

      目前,Android对硬件加速的支持并非完美,有些绘制操作在开启硬件加速的情况下不能正常工作(具体的列表可以参考Android开发者文档)。

      不过Android可以保证内置的组件和应用支持硬件加速。因此,如果应用中只使用了标准UI组件,可以放心开启硬件加速。

      随着Android的版本升级,相信一段时间之后,硬件加速可以得到完美的支持。

      开启硬件加速之后的异常反应:

      1.某些UI元素没有显示:可能是没有调用invalidate

      2.某些UI元素没有更新:可能是没有调用invalidate

      3.绘制不正确:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作

      4.抛出异常:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作

      本文基本上是按照Android开发者文档来写的,具体细节可以参考这



http://developer.android.com/guide/topics/graphics/hardware-accel.html



本文转载自:http://blog.csdn.net/oyangyujun/article/details/47974313

共有 人打赏支持
k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
AOPR加速器教程

使用Advanced Office Password Recovery破解Office文档密码时有一个不变的原则——“硬件越好,恢复密码速度越快”。AOPR的加速器主要就是CPU和GPU,本文将具体讲解关于Office密码破解软件件...

neluzyy1
2015/11/23
20
0
IBM、Intel、谷歌、微软这些巨头们都在干这事

机器学习和人工智能,正迅速成为重塑企业IT支柱和让企业成为顶尖公司的方式。 在今年9月份的时候,微软、谷歌、Facebook、IBM和微软等巨头宣布一起建立 AI 合作组织。现在,他们正在大量投资...

王练
2016/11/21
3.5K
5
Office密码破解“提速”的8个技巧!

高铁提速、宽带提速、网络提速……现代社会讲究单位时间内效率最高,如果你还守着自己的“慢生活”就会被生活T出局!在日常生活和工作中只要用到Office办公软件就会发生遗忘密码的情况,不要...

学术研究软件
2016/04/22
33
0
# HenCoder Android 自定义 View 1-8 硬件加速

硬件加速这个词每当被提及,很多人都会感兴趣。这个词给大部分人的概念大致有两个:快速、不稳定。对很多人来说,硬件加速似乎是一个只可远观而不可亵玩的高端科技:是,我听说它很牛逼,但我...

扔物线
2017/09/18
0
0
哪个浏览器更适合用来玩 HTML5 游戏

Scirra 拥有很多 HTML5 游戏方面的经验,这篇文章是由该网站总结的,告诉你哪些浏览器用来运行 HTML5 游戏能得到最佳的体验。 注意: 术语 硬件加速 意味着使用某些专用图形处理器来渲染游戏,...

oschina
2012/06/17
6.8K
6

没有更多内容

加载失败,请刷新页面

加载更多

分布式缓存架构设计

零、 题记 在高并发场景下,需要通过缓存来减少数据库的压力,使得大量的访问进来能够命中缓存,只有少量的需要到数据库层。由于缓存基于内存,可支持的并发量远远大于基于硬盘的数据库。所以...

Ala6
18分钟前
1
0
简单工厂模式

public abstract class Operation { private double numberA = 0; private double numberB = 0; public double getNumberA() { return numberA; } ......

NinjaFrog
20分钟前
0
0
git(一) 基本操作(branch、tag、冲突)

layout: blog istop: true title: "git基本操作(branch、tag、冲突)" date: 2018-09-11 category: 版本控制 tags: - 版本控制 撤销操作 修改最后一次提交 解释:修改上次提交。可以修改内容...

开心的哈士奇
23分钟前
0
0
Vue中路由管理器Vue Router使用方式(二)-推荐

一、Vue中使用Vue Router简单方式使用 vue add xxx命令添加插件 使用步骤,本人假设已经安装好了Vue CLI工具,了解更多参考:VSCode 搭建Vue开发环境之Vue CLI 1.创建项目 vue create hello...

tianma3798
35分钟前
0
0
设计模式(十六)[结构模式] 装饰模式(Decorator)

1.什么是装饰模式? 装饰模式又名包装模式。装饰模式以对客户端透明的方式扩展对象功能,是继承关系的一个替代方案。 2.模式的类图 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收...

1527
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部