Android硬件加速注意事项

原创 2018年04月16日 19:12:06

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

由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭。可以在4个级别上打开或者关闭硬件加速:
      Application级别:<applicationandroid:hardwareAccelerated="true" ...>(在Android4.0以上(包含)默认就为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层面开启硬件加速支持不佳。

开启硬件加速之后的异常反应:
      1.某些UI元素没有显示:可能是没有调用invalidate
      2.某些UI元素没有更新:可能是没有调用invalidate
      3.绘制不正确:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作
      4.抛出异常:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作

如下为webview使用硬件加速产生的异常:

java.lang.IllegalStateException: 

Unable to create layer for WebView

原因:

webview启动了硬件加速,而webview的内容不确定大小,由于硬件加速是有个最大的缓存区域的,最终内容超过了缓存范围。 

解决方法: 
webView.setLayerType(View.LAYER_TYPE_NONE, null); 
关闭硬件加速即可,webview这类组件不要开启硬件加速。

Android核心技术——Android入门

-
  • 1970年01月01日 08:00

谈谈android的硬件加速

从Android 3.0开始,Android 2D的绘制流程就设计为能够更好地支持硬件加速。使用GPU的View在Canvas上进行画的操作时都会使用硬件加速。在最新的Android版本里,图形硬件加...
  • fishmai
  • fishmai
  • 2016-09-01 12:55:34
  • 2354

Android应用开发:图形绘制之硬件加速

引言 在Android3.0后,Android的2D渲染通道开始支持硬件加速,也就是说所有View的Canvas绘画动作都会使用GPU,同时也代表着应用程序会损耗更多的内存。而在Androi...
  • airk000
  • airk000
  • 2014-08-29 15:07:24
  • 7312

关于Android硬件加速技术分析

从Android3.0(API Level 11)开始,支持硬件加速,可充分利用GPU的特性,使得界面渲染更加平滑,但是会消耗更多内存RAM。 但是硬件加速自身并非完美,在某些Android5的ro...
  • coloriy
  • coloriy
  • 2017-07-05 11:56:49
  • 740

Android 开启或关闭硬件加速

开启硬件加速:在Android中,可以四给不同层次上开启硬件加速: 1、应用: 2、Activity 3、Window getWindow(...
  • qq_26761229
  • qq_26761229
  • 2016-09-20 16:31:14
  • 7130

Android自定义view之硬件加速

什么是硬件加速##我们都知道手机里面的GPU是专门处理设备图形的中央处理器,android中view图形的绘制,需要渲染,图形变换,游戏就是view不断变换图形的过程,在自定义view或者考虑使用硬件...
  • u010129985
  • u010129985
  • 2016-10-17 10:31:27
  • 1553

Android如何关闭硬件加速

 原文地址:http://developer.android.com/guide/topics/graphics/hardware-accel.html 译文地址:http://blog.ch...
  • yq6073025
  • yq6073025
  • 2016-11-24 14:06:23
  • 6005

Android-动画绘制2D绘制和硬件加速的不支持问题

前言好久没写博客了,现在都是一个月才写一些,也是因为自己没什么料,技术仍然有待提高问题描述canvas是我们常用的功能,我们经常在canvas画布上绘制各种自己想要的效果。今天分享一个自己在调用can...
  • z82367825
  • z82367825
  • 2016-11-18 11:25:04
  • 1058

Android 打开关闭硬件加速

尊重原创,原文出处:http://www.cnblogs.com/frydsh/archive/2012/10/23/2733581.html       Android从3.0(API Level...
  • hnulwt
  • hnulwt
  • 2015-01-15 15:59:02
  • 3150

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

在手机客户端尤其是Android应用的开发过程中,我们经常会接触到“硬件加速”这个词。由于操作系统对底层软硬件封装非常完善,上层软件开发者往往对硬件加速的底层原理了解很少,也不清楚了解底层原理的意义,...
  • u011403718
  • u011403718
  • 2017-01-20 13:48:26
  • 3680
收藏助手
不良信息举报
您举报文章:Android硬件加速注意事项
举报原因:
原因补充:

(最多只允许输入30个字)