关闭

Android 硬件加速

200人阅读 评论(0) 收藏 举报

转自:http://www.cnblogs.com/frydsh/archive/2012/10/23/2733581.html

开启或关闭硬件加速:

      由于硬件加速自身并非完美无缺,所以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.抛出异常:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android硬件加速原理与实现简介

在手机客户端尤其是Android应用的开发过程中,我们经常会接触到“硬件加速”这个词。由于操作系统对底层软硬件封装非常完善,上层软件开发者往往对硬件加速的底层原理了解很少,也不清楚了解底层原理的意义,...
  • u011403718
  • u011403718
  • 2017-01-20 13:48
  • 2785

Android的硬件加速及可能导致的问题

这段时间在忙一个项目,需要使用到Webview来开发。Webview的确是一个很强大的东西,使用它开发后,我客户端的代码量少了很多很多。不过WebView的使用也是存在很多问题的。其中问题比较大的就是...
  • wuzhipeng1991
  • wuzhipeng1991
  • 2014-01-13 12:04
  • 2057

关于Android上面配置硬件加速的问题

转载时请注明出处和作者联系方式: http://mogoweb.net mogoweb@gmail.com 本文的主要内容来自SDK文章的"Hardware Acceleration”. ...
  • u011068996
  • u011068996
  • 2015-03-04 14:34
  • 1595

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

  • 2013-05-05 12:05
  • 1.06MB
  • 下载

android硬件加速离线网页一份

  • 2016-09-23 01:29
  • 94KB
  • 下载

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

  • 2014-05-08 14:07
  • 33KB
  • 下载

Android的硬件加速及可能导致的问题

文章转自:http://blog.chenming.info/blog/2012/09/18/android-hardware-accel/ 问题 在Android 4.0的某些设备上,在View...
  • lin_t_s
  • lin_t_s
  • 2016-12-29 10:20
  • 449

Android中GPU硬件加速控制及其在2D图形绘制上的局限

图形的渲染可分为两种:软件渲染和硬件渲染。软件渲染是靠CPU计算各种坐标并绘制,主要是占用内存;硬件渲染是靠GPU,主要占用显存,一般的3D图形程序(OpenGL、DirectX)都是GPU加速的。在...
  • sunqunsunqun
  • sunqunsunqun
  • 2015-11-14 12:58
  • 7635

Android应用程序UI硬件加速渲染环境初始化过程分析

在Android应用程序中,我们是通过Canvas API来绘制UI元素的。在硬件加速渲染环境中,这些Canvas API调用最终会转化为Open GL API调用(转化过程对应用程序来说是透明的)。...
  • qq_27073205
  • qq_27073205
  • 2015-05-18 18:51
  • 645

WebRTC-Chrome Android平台上的硬件加速编解码分析

2014年09月05日 ⁄ 综合 ⁄ 共 1028字 ⁄ 字号 小 中 大 ⁄ 评论关闭 [本文属原创,如有转载,请注明出处http://blog.csdn.net/yl02520/article/...
  • dj0379
  • dj0379
  • 2016-12-07 23:09
  • 1032
    个人资料
    • 访问:11748次
    • 积分:305
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:6篇
    • 译文:0篇
    • 评论:0条
    联系方式
    QQ:137048616
    文章分类