安卓硬件加速

硬件加速的含义:

Canvas使用GPU图形处理器)对View进行绘制操作。硬件加速主要应用于图像的绘制。

 

硬件加速的特点:

硬件加速能够带来性能的提升。硬件加速使得View绘制更加平滑,图形绘制速度加快;但是会多消耗一些内存,耗电量加大。

 

1、由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭。

2、硬件加速分为四个级别:在清单文件中进行配置

1Application级别控制硬件加速:<application android:hardwareAccelerated="true" ...>

Android4.0以上(包含)默认就为true,即开启。如果整个应用都不想用硬件加速,则手动设定为false

2Activity级别控制硬件加速:<activity android:hardwareAccelerated="false" ...>设置为false,表示关闭硬件加速。

3Window级别控制硬件加速:

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

4)可以通过代码在运行时控制单个View是否使用硬件加速:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

LAYER_TYPE_HARDWARE即为使用硬件加速(GPU),LAYER_TYPE_SOFTWARE使用CPU进行绘制。

 

当前,Android对硬件加速的支持并非完美,有些绘制操作在开启硬件加速的情况下不能正常工作,会出现各种问题。不过Android可以保证内置的组件和应用支持硬件加速(原生控件是可以开启硬件加速的)。因此,如果应用中只使用了标准UI组件,可以放心开启硬件加速。

 

开启硬件加速可能出现的异常现象:核心就是图像在Canvas上不能正常绘制。

1UI元素不显示,不更新,绘制错误,抛出异常(可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作)

 

android为什么要弄出这么多级别的控制,而不是默认就是全部硬件加速呢?原因是并非所有的2D绘图操作支持硬件加速,如果在程序中使用了自定义视图或者绘图调用,程序可能会工作不正常。如果程序中只是用了标准的视图和Drawable,这样就没有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值