android频繁点击ui崩溃,SystemUI崩溃的解决过程

问题是这样的:Linux驱动中设置不同分辨率(其中一个分辨率为1280*720),系统正常启动后,SystemUI崩溃了,错误的打印如下:

E/AndroidRuntime( 1404): FATAL EXCEPTION: main

E/AndroidRuntime( 1404): java.lang.RuntimeException: createWindowSurface failed EGL_BAD_ALLOC

E/AndroidRuntime( 1404):        at com.android.systemui.ImageWallpaper$DrawableEngine.initGL(ImageWallpaper.java:687)

E/AndroidRuntime( 1404):        at com.android.systemui.ImageWallpaper$DrawableEngine.drawWallpaperWithOpenGL(ImageWallpaper.java:466)

E/AndroidRuntime( 1404):        at com.android.systemui.ImageWallpaper$DrawableEngine.drawFrameLocked(ImageWallpaper.java:395)

E/AndroidRuntime( 1404):        at com.android.systemui.ImageWallpaper$DrawableEngine.onSurfaceChanged(ImageWallpaper.java:298)

E/AndroidRuntime( 1404):        at android.service.wallpaper.WallpaperService$Engine.updateSurface(WallpaperService.java:698)

E/AndroidRuntime( 1404):        at android.service.wallpaper.WallpaperService$Engine.attach(WallpaperService.java:786)

E/AndroidRuntime( 1404):        at android.service.wallpaper.WallpaperService$IWallpaperEngineWrapper.executeMessage

感性的理解是systemui.ImageWallpaper崩溃了,原因貌似是初始化OpenGL或者调用OpenGL出了问题。既然是设定分辨率造成的,那么大概会跟Framebuffer相关了,具体原因不详,只能说OpenGL调用出了问题。

困难:应用程序崩溃是由底层变化引起的(其他层出错也可能),这就比较郁闷了,又得从架构的角度出发分析问题。一层层追踪Bug真的感觉像当侦探有木有!!

1.我不了解现实架构中的OpenGL相关是实现,以及数据传递流程。

2.得不到上游厂商瑞芯微的支持,这应该是架构上的问题吧(也要先考虑是不是同事们修改造成的)

技术路线: 1.直接问题解决法,针对问题找到直接原因,或者找到直接解决方法,用某些机制屏蔽掉bug。

由于问题出现太久,原因和解决方案都没找到,这条路感觉是死路,还打消工作积极性。

2.重新研究显示架构中的OpenGL流程,从流程中追踪Bug的源头。需要查阅资料、熟悉OpenGL编程,权当是学习吧。

问题和学习相伴而行,才能成长快。 麻烦的是需要消耗时间,毕竟还是菜鸟!

具体方法:先考虑是否修改过框架,造成了Bug。否则

1.架构重新研究

2.OpenGL相关的应用接口研究

3.OpenGL的上下流程

4.直接分析Bug

====================================================================================

问题正在研究中,祝我好运!!

====================================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值