一. 问题描述:
【前提条件】:测试机连接可用网络,登录Google账号
【问题点】:Chrome卡顿异常,进入后使用Google搜索网页内容,测试机卡屏
【预期结果】:搜索网页内容,屏幕不会出现卡屏现象
【备注】:测试6台均存在上述问题
二. 对比历史版本和历史其他手机做对比.
1. chrome 的版本号是一样的.
2. 历史版本也有此问题.
3.其他项目也没有遇到此问题.
三. 查看打印堆栈:
主线程等RenderThread
"main" prio=5 tid=1 Native
| group="main" sCount=1 ucsCount=0 flags=1 obj=0x72d88838 self=0xb400007c9fc28010
| sysTid=1549 nice=-10 cgrp=default sched=1073741824/0 handle=0x7df650d4f8
| state=S schedstat=( 129750861033 22923587002 90795 ) utm=10886 stm=2088 core=5 HZ=100
| stack=0x7fec7ea000-0x7fec7ec000 stackSize=8188KB
| held mutexes=
native: #00 pc 000000000004f66c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) (BuildId: 319d2295811714c4c5e0d59af19fb421)
native: #01 pc 0000000000054060 /apex/com.android.runtime/lib64/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+144) (BuildId: 319d2295811714c4c5e0d59af19fb421)
native: #02 pc 00000000000c1d7c /apex/com.android.runtime/lib64/bionic/libc.so (pthread_cond_wait+76) (BuildId: 319d2295811714c4c5e0d59af19fb421)
native: #03 pc 0000000000287cf4 /system/lib64/libhwui.so (android::uirenderer::renderthread::DrawFrameTask::drawFrame()+356) (BuildId: 1b22045f104ae86edd45aa542c135fa2)
at android.graphics.HardwareRenderer.nSyncAndDrawFrame(Native method)
at android.graphics.HardwareRenderer.syncAndDrawFrame(HardwareRenderer.java:457)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:804)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:4723)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4422)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3627)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2367)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9227)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1315)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1323)
at android.view.Choreographer.doCallbacks(Choreographer.java:956)
at android.view.Choreographer.doFrame(Choreographer.java:870)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1298)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:209)
at android.os.Looper.loop(Looper.java:296)
at android.app.ActivityThread.main(ActivityThread.java:7941)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)
四. 意外发现:
debug 很久,依然找不到问题的原因. 意外发生上层获取的帧率显示60hz,而,示波器测量的结果是90hz. 由此猜测是帧率不齐导致的.
五. 修改帧率不齐的问题.
因为驱动只配置了一个90hz的帧率.而上层获取的是60hz. 和驱动同事沟通,由于驱动架构的原因.配置了两个帧率60hz和90hz,上层获取正常的帧率.
六.测试结果:
chrome 恢复正常,没有出现卡死的问题.