Android花屏分析,Android 布局错乱 Android花屏

最近做项目,妈的,有个一个很难受的bug.

这个bug ,自己这里没有手机,没有办法复现,找到了手机之后。解决了。

我先给大家看下什么叫布局错乱,花屏:

来张正常的图片:

3c9aa6d02415e8e3761cd7f9f308f44a.png

正常情况下是这样的。然后,

错误的情况下:

e0f81866da8e715a0990fdff2d3a9d50.png

全乱了。有的图片都没有显示出来。

我说一下复现步骤:

1。打开应用

2。最近任务,一键杀死所有进程。

3。点击应用

4。home 键会桌面。

5。点击应用或者最近任务启动程序。

就出现了。

还好有log输出,不然真的不知道哪里的问题。开始我自己也乱了,妈的,这是哪里的问题?不就是到了后台?

后来我就盯着logcat 看,我发现,只要屏幕乱了,就会出现:

OpenGLRenderer: GL error: GL_INVALID_VALUE

sb 都能看懂,GL 绘图错了。 但是不是每次都输出这个log 奥。有时候,会输出:E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)

然后我就百度。

然后就知道了,硬件加速导致的问题。关于硬件加速导致的问题,网上一堆。

怎么关闭呢?一般都不会让你在应用程序里面直接关闭,粒度太大。

我的是webview那么就在自己的webview里面不开启就可以了。最小粒度的去解决了问题。记住,一定要在构造函数里面关闭,别问怎么知道的。

public CustomWebView(Context context) {

super(context);

webViewId = toString();

setLayerType(View.LAYER_TYPE_SOFTWARE, null);

}

setLayerType(View.LAYER_TYPE_SOFTWARE, null); 就可以了。

参考

参考2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值