开启硬件加速 导致花屏问题 OpenGlRenderer 0x506 解决办法
来源:互联网 发布:数据情报 编辑:程序博客网 时间:2024/05/01 23:27
(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() {@Overridepublic void run() {// TODO Auto-generated method stubmHardwareLayer.destroy();mHardwareLayer = null;if (mDisplayList != null) mDisplayList.reset(); invalidate(true); invalidateParentCaches(); }}); } return true; } return false; }
附上代码优化方案http://zuiniuwang.blog.51cto.com/3709988/721798/
1 0
- 开启硬件加速 导致花屏问题 OpenGlRenderer 0x506 解决办法
- Android bug——Launcher 0x506导致花屏问题
- Android bug——Launcher 0x506导致花屏问题
- Android bug——Launcher 0x506导致花屏问题
- Android的硬件加速及可能导致的问题
- Android的硬件加速及可能导致的问题
- Android 4.2硬件加速可能导致Bitmap不能释放的问题
- Android的硬件加速及可能导致的问题
- 硬件加速导致的问题集合(欢迎补充)
- Android的硬件加速及可能导致的问题
- Android的硬件加速及可能导致的问题
- Android的硬件加速及可能导致的问题
- Android的硬件加速及可能导致的问题
- DirectX 开启硬件加速
- chrome如何开启硬件加速?
- win2003开启硬件加速
- 开启与关闭硬件加速
- android模拟器开启硬件加速
- ACM-选夫婿(结构体排序练习)
- 对qucik cocos2dx lua SocketTCP的再一次封装,导入全局实例,包含自定义事件
- NodeJs初学者经典入门解析
- mysql 线程查看管理
- c语言学习之顺序表操作
- 开启硬件加速 导致花屏问题 OpenGlRenderer 0x506 解决办法
- JTAG调试原理
- [资料整理]记一下英特尔atom处理器
- DropDownList 的使用
- 调试器工作原理(1):基础篇
- Java 自定义类加载器实现插件式开发
- 关于 Cached Physical Memory 和 Uncached Physical Memory
- Android框架Picasso的使用简介
- tomcat jboss区别