码迷,mamicode.com
首页 > 其他好文 > 详细

开启硬件加速 导致花屏问题 OpenGlRenderer 0x506 解决办法

时间:2015-01-23 13:33:53      阅读:706      评论:0      收藏:0      [点我收藏+]

标签:硬件加速   launcher   openglrenderer   0x506   

(150114_17:08:32.461)I/dalvikvm-heap(  850): Grow heap (frag case) to 10.342MB for 2457616-byte allocation 
(150114_17:08:32.542)D/dalvikvm(  850): GC_FOR_ALLOC freed 20K, 25% free 10530K/14040K, paused 34ms, total 34ms 
(150114_17:08:32.551)D/dalvikvm(  850): GC_CONCURRENT freed 7K, 26% free 10524K/14040K, paused 1ms+5ms, total 24ms 
(150114_17:08:32.551)D/OpenGLRenderer(  850): GL error from OpenGLRenderer: 0x506


android4.2版定制的Launcher, 有几率出现应用整个绘制成花屏、黑屏或者字体绘制成方块等问题,出现花屏问题的时候出现以上LOG


解决办法:

当View 调用destroyLayer()的时候判断如果当前的硬件加速不可用的时候,调用mHardwareRenderer的safelyRun来删除mHardwareLayer的资源

修改View.java destroyLayer(boolean valid)方法

boolean destroyLayer(boolean valid) {
        if (mHardwareLayer != null) {
            AttachInfo info = mAttachInfo;
            if (info != null && info.mHardwareRenderer != null &&
                    info.mHardwareRenderer.isEnabled() &&
                    (valid || info.mHardwareRenderer.validate())) {

                info.mHardwareRenderer.cancelLayerUpdate(mHardwareLayer);
                mHardwareLayer.destroy();
                mHardwareLayer = null;

                invalidate(true);
                invalidateParentCaches();
            }
            else if(info != null && info.mHardwareRenderer != null)
            {
            	info.mHardwareRenderer.safelyRun(new Runnable() {

					@Override
					public void run() {
						// TODO Auto-generated method stub
						mHardwareLayer.destroy();
						mHardwareLayer = null;
						if (mDisplayList != null) 
							 mDisplayList.reset(); 

						 invalidate(true);
			             invalidateParentCaches();
						 }
					});
            }
            return true;
        }
        return false;
    }

附上代码优化方案http://zuiniuwang.blog.51cto.com/3709988/721798/


开启硬件加速 导致花屏问题 OpenGlRenderer 0x506 解决办法

标签:硬件加速   launcher   openglrenderer   0x506   

原文地址:http://blog.csdn.net/tangnengwu/article/details/43052711

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!