【发布时间】:2014-09-20 22:41:43
【问题描述】:
我正在用 Java 制作一个简单的 Android 游戏。我注意到每隔 20-40 秒就会出现一些恼人的延迟。首先我认为它们是由垃圾收集器引起的,但是当我检查我的 LogCat 时,我发现游戏延迟时没有垃圾收集。 每次游戏开始滞后时我都标记了日志,发现几乎每次都有这个日志条目:
W/qdhwcomposer(209):读取 vsync 时延迟过长:耗时 47 毫秒
正如它所说,有一个延迟(通常 >45 毫秒),我认为这就是我注意到的延迟。 有谁知道这个问题或如何避免这些延迟?
以下是游戏延迟时 LogCat 的两个 sn-ps:
07-29 15:11:50.196: D/BatteryService(692): update start
07-29 15:11:50.206: D/BatteryService(692): level:80, scale:100, status:2, health:2, present:true, voltage: 4121, temperature: 355, technology: Li-ion, AC powered:false, USB powered:true, Wireless powered:false, icon:17303554, invalid charger:0, online:4, charge type:1, current avg:460
07-29 15:11:50.206: D/BatteryService(692): Sending ACTION_BATTERY_CHANGED.
07-29 15:11:50.216: D/STATUSBAR-BatteryController(1082): onReceive() - ACTION_BATTERY_CHANGED
07-29 15:11:50.216: D/STATUSBAR-BatteryController(1082): onReceive() - BATTERY_STATUS_CHARGING:
07-29 15:11:50.226: D/HeadsetStateMachine(18054): Disconnected process message: 10
07-29 15:11:50.236: W/qdhwcomposer(209): Excessive delay reading vsync: took 47 ms
07-29 15:11:50.236: D/STATUSBAR-IconMerger(1082): checkOverflow(288), More:true, Req:true Child:5
07-29 15:12:00.176: W/qdhwcomposer(209): Excessive delay reading vsync: took 49 ms
07-29 15:12:00.226: D/BatteryService(692): update start
07-29 15:12:00.226: D/BatteryService(692): level:80, scale:100, status:2, health:2, present:true, voltage: 4065, temperature: 355, technology: Li-ion, AC powered:false, USB powered:true, Wireless powered:false, icon:17303554, invalid charger:0, online:4, charge type:1, current avg:460
07-29 15:12:00.226: D/BatteryService(692): Sending ACTION_BATTERY_CHANGED.
07-29 15:12:00.236: D/STATUSBAR-BatteryController(1082): onReceive() - ACTION_BATTERY_CHANGED
07-29 15:12:00.236: D/STATUSBAR-BatteryController(1082): onReceive() - BATTERY_STATUS_CHARGING:
07-29 15:12:00.236: D/HeadsetStateMachine(18054): Disconnected process message: 10
我在我的三星 Galaxy S4 (GT-I9505) 上使用 Android 4.3 测试了它。
谢谢
格鲁
【问题讨论】:
-
BattleCamp 也有这个问题,真的很烦人,因为刷卡是有时间限制的。不过我也有S4,可能就是这个手机?!
-
GERU,你找到解决办法了吗?
-
据我记忆,这确实是一个“三星 Galaxy S4 特定错误”,而我的新手机(三星 Galaxy A5)实际上没有这个问题。但他们没有相同的 Android 版本,所以我不能 100% 确定它是否与硬件相关。不幸的是,我的 S4 去年被毁坏了,我无法再次对其进行测试。