在Android 4.0的某些设备上,在View刷新时会出现花屏和屏幕上的某些View错位的现象。 经过调查后发现adb logcat中出现很多OpenGLRenderer: 0x501的错位:

09-18 14:34:39.090: DEBUG/OpenGLRenderer(3104): GL error from OpenGLRenderer: 0x501

从这个日志,初步怀疑是硬件加速导致的问题。 经过分析发现使用了比较复杂的自定义View,可能会导致硬件加速渲染出错。

硬件加速的优点与缺点

硬件加速能使用GPU来加速2D图像的渲染速度,但是硬件加速并不能完全支持所有的渲染操作, 针对自定义的View,硬件加速可能导致渲染出现错误。 如果有自定义的View,需要在硬件加速的设备上进行测试,如果出现渲染的问题,需要关闭硬件加速。

开启和关闭硬件加速

对硬件加速的开关可以在不同的级别进行控制:

  • Application
  • Activity
  • Windows
  • View

Application级别

在Applciation级别控制硬件加速的开关:

<application android:hardwareAccelerated="true" ...>

Activity级别

可以对单个的Activity控制是否启用硬件加速:

<application android:hardwareAccelerated="true">
    <activity ... />
    <activity android:hardwareAccelerated="false" />
</application>
Window级别
getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
View级别

在指定的View上关闭硬件加速:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
或者使用android:layerType="software"来关闭硬件加速:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingLeft="2dp"
    android:layerType="software"
    android:paddingRight="2dp" >

关于android硬件加速器的问题相关推荐

  1. android硬件加速器及其问题小结

    发现自己的手机上某个界面出现了花屏,某些控件背景被拉伸过多遮住了其他控件,很难看.这种现象高概率出现,分析了下发现:一旦发生这种现象,必然会打印下面这种log,google了下,这种log应该是硬件加 ...

  2. 硬件加速器为人工智能应用服务

    硬件加速器为人工智能应用服务 Hardware accelerators serve AI applications 硬件加速器(Hardware accelerators)是用于执行特定任务(如对对 ...

  3. VT-x/AMD-V 硬件加速器已被启动,但当前处于无效状态

    今天在virtualboxvbox中安装64位centos6.5时出现以下错误: VT-x/AMD-V硬件加速器已被启动,但当前处于无效状态.您虚拟电脑内的操作系统将无法检测到64位的CPU,因此也将 ...

  4. Android 系统(175)---Android硬件加速原理与实现简介

    Android硬件加速原理与实现简介 在手机客户端尤其是Android应用的开发过程中,我们经常会接触到"硬件加速"这个词.由于操作系统对底层软硬件封装非常完善,上层软件开发者往往 ...

  5. Android 系统(66)---Android硬件加速相关问题总结

    Android硬件加速相关问题总结 从Android 3.0开始就支持硬件加速,充分利用GPU的特性,使得绘制View的时候更加平滑.例如在ListView(GridView)或者WebView中使用 ...

  6. Android硬件开发------计步传感器

    在上一节<Android硬件开发------传感器介绍>中,简单介绍了Android手机的传感器类型,通过SensorManager引出传感器的使用方法,通过注册监听器,监听传感器返回的参 ...

  7. [学习记录]浅谈Android硬件加速

    最近看了一些Android硬件加速的文章,因此做个记录与总结 众所周知 ,如果使用GPU进行图形绘制,就认为是硬件减速绘制:反之,则是软件绘制. 以平时开发举例,实现一个圆角矩形按钮通常有两种方案:使 ...

  8. android+硬件服务,android之硬件访问服务框架

    一.硬件接口描述文件aidl 新增\frameworks\base\core\java\android\os\ILedService.aidl 二.mk编译脚本 修改vi frameworks/bas ...

  9. 基于近端策略优化的阻变存储硬件加速器自动量化

    摘 要 卷积神经网络在诸多领域已经取得超出人类的成绩.但是,随着模型存储开销和计算复杂性的不断增加,限制处理单元和内存单元之间数据交换的"内存墙"问题阻碍了其在诸如边缘计算和物联网 ...

  10. [Android] 迅游加速器 5.1.26.1免费版 2020.6.16更新

    [Android] 迅游加速器 5.1.26.1免费版 2020.6.16更新 蓝奏云下载链接 求关注持续跟新

最新文章

  1. C#中的ICollection接口
  2. linux的编程命令,linux编程常用命令
  3. Intel Realsense D435 如何获取摄像头的内参?get_profile() video_stream_profile() get_intrinsics()
  4. 【笔记】An explainable deep machine vision framework for plant stress phenotyping
  5. 【华为云分享】机器学习笔记(七) ---- 贝叶斯分类
  6. 《数值分析(原书第2版)》—— 1.5 不需要导数的根求解
  7. c语言写死循环程序,通过简单的例子看c程序死循环
  8. 2021我的前端开发年度总结
  9. zh-cn 和zh的意思
  10. 这一季绿色智能制造“英雄联盟”已集结, 有哪些新鲜点?
  11. #爬取电影天堂的磁力链接#
  12. 嵌入式典型ARM处理器介绍以及分类
  13. 最大子序列和问题(动态规划)
  14. Instruments使用
  15. 美国股票市场上市规则摘要纽约证券交易所
  16. Java常用设计模式之装饰者模式
  17. 冷冻冷藏货架 速度快效率高的冷藏仓库货架
  18. 我了解的计算机病毒,什么是计算机病毒,计算机病毒了解介绍
  19. 牛血清蛋白修饰酚酸类及生物碱类小分子/偶联微球的蛋白/牛红细胞SOD的研究
  20. 【幻灯片制作软件】Focusky教程 | 设置动画进入/强调/退出特效

热门文章

  1. RocketMQ(四)Linux搭建RocketMQ集群
  2. WebSSH2和docker化
  3. 简单记录 03.21
  4. 【干货分享】嫁给爱情字体设计创意
  5. 基于JavaWEB+MySQL的宾馆管理系统设计与实现
  6. 宿舍物联网门锁系统之个人小程序注册
  7. 求教origin拟合蠕变柔量(burgers模型)。
  8. 使用Python绘制词云图(自定义形状)
  9. verlay虚拟化技术_FPGA虚拟化:突破次元壁的技术
  10. 尚硅谷宋红康JVM资料笔记1 --- JVM与Java体系结构