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.抛出异常:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作
From: http://www.cnblogs.com/frydsh/archive/2012/10/23/2733581.html
分享到:
相关推荐
android硬件加速离线网页一份
主要介绍了浅谈Android硬件加速原理与实现简介,本文尝试从底层硬件原理,一直到上层代码实现,对硬件加速技术进行简单介绍,感兴趣的小伙伴们可以参考一下
主要介绍了理解Android硬件加速原理(小白文),详细的介绍了硬件加速的概念和原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
安卓在加载大图的时候经常会出现oom的错误,给大家分享我的一些处理经验。这个版本关闭了硬件加速。
使用硬件加速会让动画绘制的更快,因为硬件会把图层缓存在GPU上。 >用法 用法很简单关键方法是View.setLayerType() 1. 在开始动画时调用View.setLayerType(View.LAYER_TYPE_HARDWARE, null) 2. 运行...
Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。 开启或关闭硬件加速: 由于硬件加速自身并非完美无缺,所以Android提供选项来...
Android2.2、2.3、4.0_中如何使用GPU硬件加速原理和游戏3D性能的提升 实现GPU渲染 介绍。
Android系统的图形本地框架硬件加速技术优化
默认情况下,LiTr 使用 Android MediaCodec 堆栈进行硬件加速解码/编码,使用 OpenGL 进行渲染。它还使用 MediaExtractor 和 MediaMuxer 来读取/写入媒体。 更多详情、使用方法,请下载后阅读README.md文件
Android x86 的加速器 模拟器必须要安装,英特尔® 硬件加速执行管理器(英特尔® HAXM)是一款硬件辅助虚拟引擎(管理程序),可通过英特尔® 虚拟化技术 (VT) 来帮助提升在主机上进行 Android 应用模拟的速度。...
AnyChat支持使用外部音视频编解码器,开放了内部API接口,在Android(或Linux)平台,可以通过该接口与硬件芯片的Codec进行集成,实现硬件加速。
android的MediaPlayer播放器迷你案例,简单易懂,包含播放,暂停,停止
硬件加速视频播放器 DicePlayer v20813211 软件语言:中文 软件类别:视频播放器 软件大小:12.63 MB 适用固件:2.2及更高固件 内置广告:没有广告 适用平台:Android DICE Player是一款功能强悍的视频/音频播放器...
目前支持Android 2.1、Android 2.2、Android 2.3.x、OPhone 2.0等版本和平台,并针对不同的CPU进行了汇编优化(ARMv6、ARMv7),同时可针对具体的手机、平板电脑等平台定制硬件编码、解码(参考:AnyChat集成第三方...
英特尔硬件加速器,如果你的Android SDk Manager无法下载Intel(x86) emulator accelerater,就下载这个吧
VLC for Android 1.0.0更新内容: Android版VLC应用正式升级至1.0.0版本; ...默认在Android 4.3及以上版本中开启硬件加速功能,能够获得更加的字幕支持; 软件的解码速度同时也得到了进一步加快。