`

Android的硬件加速

 
阅读更多
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硬件加速原理与实现简介

    主要介绍了浅谈Android硬件加速原理与实现简介,本文尝试从底层硬件原理,一直到上层代码实现,对硬件加速技术进行简单介绍,感兴趣的小伙伴们可以参考一下

    理解Android硬件加速原理(小白文)

    主要介绍了理解Android硬件加速原理(小白文),详细的介绍了硬件加速的概念和原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    处理android bitmap oom 2.0版本关闭了硬件加速

    安卓在加载大图的时候经常会出现oom的错误,给大家分享我的一些处理经验。这个版本关闭了硬件加速。

    Android代码-使用硬件加速提高安卓动画性能

    使用硬件加速会让动画绘制的更快,因为硬件会把图层缓存在GPU上。  &gt;用法    用法很简单关键方法是View.setLayerType()    1. 在开始动画时调用View.setLayerType(View.LAYER_TYPE_HARDWARE, null)  2. 运行...

    详解Android开发中硬件加速支持的使用方法

    Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。  开启或关闭硬件加速:  由于硬件加速自身并非完美无缺,所以Android提供选项来...

    Android如何使用GPU硬件加速3D游戏

    Android2.2、2.3、4.0_中如何使用GPU硬件加速原理和游戏3D性能的提升 实现GPU渲染 介绍。

    android系统的本地框架图形硬件加速

    Android系统的图形本地框架硬件加速技术优化

    适用于 Android 的轻量级硬件加速视频/音频转码器_java_代码_下载

    默认情况下,LiTr 使用 Android MediaCodec 堆栈进行硬件加速解码/编码,使用 OpenGL 进行渲染。它还使用 MediaExtractor 和 MediaMuxer 来读取/写入媒体。 更多详情、使用方法,请下载后阅读README.md文件

    最新android 模拟器加速器

    Android x86 的加速器 模拟器必须要安装,英特尔® 硬件加速执行管理器(英特尔® HAXM)是一款硬件辅助虚拟引擎(管理程序),可通过英特尔® 虚拟化技术 (VT) 来帮助提升在主机上进行 Android 应用模拟的速度。...

    硬件加速编码器codec

    AnyChat支持使用外部音视频编解码器,开放了内部API接口,在Android(或Linux)平台,可以通过该接口与硬件芯片的Codec进行集成,实现硬件加速。

    android的MediaPlayer播放器迷你案例

    android的MediaPlayer播放器迷你案例,简单易懂,包含播放,暂停,停止

    硬件加速视频播放器 DicePlayer v20813211

    硬件加速视频播放器 DicePlayer v20813211 软件语言:中文 软件类别:视频播放器 软件大小:12.63 MB 适用固件:2.2及更高固件 内置广告:没有广告 适用平台:Android DICE Player是一款功能强悍的视频/音频播放器...

    Android视频聊天开发包

    目前支持Android 2.1、Android 2.2、Android 2.3.x、OPhone 2.0等版本和平台,并针对不同的CPU进行了汇编优化(ARMv6、ARMv7),同时可针对具体的手机、平板电脑等平台定制硬件编码、解码(参考:AnyChat集成第三方...

    Intel haxm (英特尔硬件加速器)

    英特尔硬件加速器,如果你的Android SDk Manager无法下载Intel(x86) emulator accelerater,就下载这个吧

    VLC for Android 1.0.0

    VLC for Android 1.0.0更新内容: Android版VLC应用正式升级至1.0.0版本; ...默认在Android 4.3及以上版本中开启硬件加速功能,能够获得更加的字幕支持; 软件的解码速度同时也得到了进一步加快。

Global site tag (gtag.js) - Google Analytics