展开全部

闪屏问62616964757a686964616fe78988e69d8331333365646335题作为Android的一类常见问题,原因复杂多样.我们在这里整理一下如何分析闪屏问题,找到具体导致闪屏问题的原因.

严格从技术来说,闪屏问题不能归为一类问题,他是因为屏幕快速变化导致用户看起来显示不正常的问题(很多测试者甚至会将花屏问题当做闪屏问题,这里不做讨论).它可能是多种完全不同的原因导致的,硬件问题,驱动问题,绘制问题,合成问题,窗口调度问题,activity问题,以及app本身的逻辑问题都有可能导致用户看起来屏幕闪屏的感觉,其中百分之九十以上闪屏的问题是由后三种问题导致的.

特殊指出的是,由于闪屏问题基本都是逻辑错误而不是异常,基本难以单纯从log中看到异常信息,因此要分析闪屏问题,可复现的问题最好,如果不能,起码要保证有清晰完整的屏幕录像(adb shell screenrecord录下来的最好),否则问题无法分析.

下面我们来讲下如何分析一个可复现的闪屏问题:

1 首先来确认下问题是否和屏幕硬件以及驱动有关

1.1 屏幕录像,是不是屏幕问题?

这个问题很好确认,将手机连接电脑,输入adb shell screenrecord /sdcard/tt.mp4,稍等片刻,开始复现问题,在问题复现完毕后,停止命令执行,去手机sdcard目录下查看视频文件.

如果视频文件中问题不存在,说明这个问题和屏幕硬件驱动或者MDP合成有关系,我们需要继续区分这到底是屏幕问题还是合成问题.

1.2 是不是合成问题?

如何区分这到底是屏幕问题还是合成问题呢?打开开发者选项,勾选禁用硬件叠加选项.

重新复现问题,如果问题依然复现,说明问题是LCD驱动或者硬件层面导致,这是需要LCD组进行check;

如果问题不再复现,说明这很大可能是一个MDP合成问题,需要平台厂商进行check.

1.3 underruan问题?

这里指出一种特别的闪屏问题,如果屏幕闪烁规则的半个屏幕的蓝色或者黑色矩形,我们有理由怀疑是发生了underrun,这种闪屏问题是可以通过log来确认的,一般来说如果在log中看到显示有关的硬件打印了underrun的log,说明此时发生了underrun.一般是由于平台某个硬件带宽不足引起的,建议将问题交给平台来处理.

2 接下来我们需要看下是不是绘制或者硬件加速问题

2.1 是不是硬件加速问题?

其实,一般来说,如果闪屏只发生在某个特定的路径下,一般基本没有可能是绘制的问题或者GPU的问题(因为绘制错误只会导致花屏,不可能导致屏幕大小级别的闪屏,如果绘制或者GPU出问题导致闪屏,一般会出现整个系统所有app不分路径的闪屏),尽管可能性很小,我们也可以测试排除一下.

关闭发生闪屏的程序的硬件加速,在app的AndroidManifest.xml文件中,加入application android:hardwareAccelerated="false" ,如果问题发生在两个app切换时,关闭两个app的硬件加速,重新编译app,拷贝替换.

复现问题,如果问题继续复现,说明这个问题和绘制没有关系;如果问题不复现,需要继续排查是GPU硬件问题还是硬件加速问题导致的闪屏.

2.2 是不是GPU问题?

一般来说,如果是GPU出现问题,会不分路径的,在除了全屏视频播放之外的所有路径下都可能出现大范围的闪屏,这种情况下log中一般搜索opengl的log,会发现在闪屏的应用打出了海量的opengl error的log,这种情况下,很有可能是发生了硬件损坏,建议交给硬件部门check.

3 继续分析问题

如果经过前面的check,我们确定不是硬件的问题,不是驱动的问题,不是绘制的问题,也不是合成的问题.那基本上这个问题就是上层的问题,为了确定到底发生了什么问题,我们需要进一步的确认.

3.1 再一次的分析录像

对于闪屏问题,adb shell screenrecord录到的视频是最有分析价值的,所以我们需要进一步分析.

分析之前请下载一款具有高级视频调节功能的播放器,逐帧播放问题发生时的录像.

因为闪屏问题,很多时候是切换的问题,那么我们也可以放慢动画速度来观察现象.打开开发者选项,将其中的窗口动画比例,过渡动画比例,以及动画影像时间伸缩效果都设置为10x,这样我们也可以清晰的看到切换的时候发生了什么问题.

此时剩下的问题一般就是activity或者窗口快速切换让用户产生了屏幕在闪的幻觉,这种问题大多都可以通过查看录像慢放明显的看到不该出现的activity(窗口)出现了,这种问题就是app本身在activity的切换逻辑上有问题,这样我们就可以从app的角度进行分析(如果慢放动画可以使得现象变慢的话,我们也可以在问题发生时,抓取SurfaceFlinger的dumpsys,以及通过ADT的Hierarchy view查看闪出来的是哪个activity).

一种比较少见的问题是,app使用了某种特殊的动画效果,让测试者或者用户感觉是闪屏问题.这个时候,在开发者选项中的绘图选项中,将三个动画相关的设置都修改为动画已关闭.如果问题消失,那么可以确定是app自身使用了某种特殊的看起来像是闪屏的动画效果.

当然还存在另外一种情况,窗口数量是正常的,但是窗口之间在不正常的频繁切换.

对于后一种情况,只靠查看视频还不能完全确认,我们还需要查看log来进一步确认.

3.2 查看log中窗口的变更和绘制

窗口之间在不正常的频繁切换,对待这种问题,一个最简单有效的办法是,在问题复现时,保持手指一指触摸屏幕,然后抓取log,我们会看到触摸的焦点窗口一直在高速变化,如下:

[cpp]11-01 10:45:07.047: D/InputDispatcher(1106): Focus left window: Window{1784331e u0 ..}

11-01 10:45:07.087: D/InputDispatcher(1106): Focus entered window: Window{1784331e u0 ...}

11-01 10:45:07.207: D/InputDispatcher(1106): Focus left window: Window{1784331e u0 ...}

11-01 10:45:07.237: D/InputDispatcher(1106): Focus entered window: Window{1784331e u0..}

11-01 10:45:07.257: D/InputDispatcher(1106): Focus left window: Window{1784331e u0 ...}

11-01 10:45:07.287: D/InputDispatcher(1106): Focus entered window: Window{1784331e u0 ..}

这样我们就可以断定是app在进行不正常的window切换,我们就可以从app的角度检查一下在问题发生时activity的切换逻辑了.

android 快速亮暗屏_Android设备闪屏怎么办?手机屏幕一会亮一会暗怎么办相关推荐

  1. 惠普计算机开机半花屏,惠普笔记本闪屏_惠普笔记本闪屏黑屏花屏现象,如何解决...

    惠普笔记本偶尔闪屏 控制面板中打开"电源选项" 改完之后应用即可. 惠普笔记本老是闪屏怎么办啊 这个闪屏门和灯管有问题都可能.如果是14寸宽屏的就下个鲁大师看看屏幕是不是LG的 是 ...

  2. android 闪屏页处理_Android应用闪屏页延迟跳转的三种写法

    闪屏页也称之为欢迎页.在打开一个App时,我们第一眼看到的往往是一个闪屏页面,之所以叫闪屏页,是因为它出现之后会短暂地停留几秒钟再跳转到其他页面.闪屏页除了使用户体验更好外,还能给app留出初始化数据 ...

  3. android+闪屏启动优化,Android分享笔记(2) APP启动时闪屏

    App在启动时,即在欢迎界面.老是出现白屏或黑屏,闪一下然后才出现欢迎界面. 我欢迎界面原先是这样的:<?xml  version="1.0" encoding=" ...

  4. unity发布安卓黑屏_untiy3dAndroid和ios启动游戏黑屏界面增加闪屏处理

    第一种方式,SDK做,走原生Android流程,百度很多,不介绍了,缺点不方便,优点嘛,没找到.... 第二种方式,unity自带的开机静态图片,具体如下: 1.Android image.png i ...

  5. Vegas怎么做闪屏特效,闪屏特效制作教程

    随着视频软件的流行,鬼畜视频逐渐走入了大众的视野.与传统视频相比,鬼畜视频添加了很多炫酷的特效,让视频更具魔性,显得十分与众不同.而其中很多是作者通过快速的剪辑配上动感的音乐做出来的闪屏,效果的确让人 ...

  6. 为什么mysql打开闪屏_mysql登录闪屏问题解决办法

    Mysql安装后打开MySQL Command Line Client闪退解决方法 //MySQL的启动方法,先在DOS下切换到mysql的安装目录BIN下然后输入启动mysql服务的命令, 再然后在 ...

  7. idea会不定时闪屏_显示器闪屏什么原因

    新组的电脑,aoc24g2显示器支持144hz,显卡影驰1660s金属大师,60hz状态下一切正常,上144hz屏幕上方会不定时随机闪屏,显示器更换过一次,dp线也买了新的,还是同样位置闪屏,(视频1 ...

  8. php闪屏程序,节日闪屏的两种构成方式

    > 摘要: 每逢节日到来,当你打开QQ浏览器,发现有什么不同吗?QQ浏览器已经悄悄的送出了节日的关怀,呈现在你眼前的是朴实而又温情的画面节日闪屏.她是浏览器和用户情感交流的窗口,也 每逢节日到来 ...

  9. hp6531s闪屏门 6531s闪屏

    一直庆幸hp6531s闪屏门么有在我的机子上,发生,昨天晚上终于出现了,前天晚上用的时候一切正常,也正常关机,但是昨天晚上开机后,就开始闪屏啦,唉....悲催啊 当初买的时候认准HP国际大品牌,唉.. ...

最新文章

  1. 【Linux】20.shell脚本 检测是否 ping 通
  2. Redis 10亿数据量只需要100MB内存,为什么这么牛?
  3. 一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE
  4. 怎么用pycharm更新python_利用PyCharm操作Github(仓库新建、更新,代码回滚)
  5. html 类型转换,JavaScript怎么进行类型转换?
  6. JQuery 加载 CSS、JS 文件
  7. java实现itchat_GitHub - Xiazki/itchat4j: wechatbot 的java实现,简单搭建了基本框架和实现了扫码登陆,具体网页微信api请参考...
  8. @Autowired注解实现原理
  9. 【再探backbone 02】集合-Collection
  10. 敏捷项目管理流程-Scrum框架最全总结
  11. 树莓派教程 - 1.2 树莓派GPIO库wiringPi 软件PWM
  12. python依赖包冲突
  13. 蓝墨云班课计算机网络答案,基于蓝墨云班课的 《计算机网络与应用》实验课 教学改革探究...
  14. 该应用程序从products.json加载数据
  15. 2018-2019中国开发者调查报告简报(一文了解全貌)
  16. 谁是“明日之子”?互动视频的模糊元年
  17. CPU使用率过高如何排查问题
  18. 计算机面试(考研复试)问题整理
  19. 【STM32】SPI协议通信详解
  20. 梅林安装opkg后安装iperf3_路由器最高速度/性能测试 - Windows 安装 IPerf3 及 使用方法...

热门文章

  1. 如何制作公众号首图?
  2. php iphone竖拍照,别再吐槽iPhone的拍照功能啦!那是你不会拍~
  3. 查看数据库锁表以及解锁
  4. TS 学习 TS 声明-ts7
  5. String类型转 Map
  6. 贵阳大数据产业规模总量今年将达1560亿元
  7. springboot基于fegin微服务调用
  8. 2小时完成HTML5拼图小游戏
  9. 支付宝To B,不再“锦衣夜行”
  10. css3实现下划线动画效果