Tworzę prostą grę na Androida z Javą. Zauważyłem kilka irytujących opóźnień co 20-40 sekund. Najpierw myślałem, że jesteśmy powodowani przez Garbage Collectora, ale kiedy sprawdziłem LogCat, zobaczyłem, że nie ma Garbage Collection w momencie, gdy gra jest opóźniona. zaznaczyłem dziennika za każdym razem gra życia zaczyna się w tyle i zobaczył, że nie ma prawie każdym tego wpisu:Sporadyczne opóźnienie w grze Android
W/qdhwcomposer (209): Nadmierne opóźnienie odczytu vsync: wziął 47 ms
jak to mówi, że jest opóźnienie (zwykle> 45ms) i myślę, że to właśnie zauważam jako lag. Czy ktoś zna ten problem lub jak uniknąć tych opóźnień?
Oto dwa fragmenty z LogCat w momencie gra pozostaje w tyle:
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
Testowałem go z Androida 4.3 na moim Samsung Galaxy S4 (GT-I9505) btw.
Dzięki
GERU
BattleCamp ma ten problem zbyt, to naprawdę denerwujące, jak nie ma limitu czasu, aby zrobić przeciągnięcia. Ja też mam S4, może to tylko ten telefon ?! – TWiStErRob
GERU, znalazłeś poprawkę? – george
O ile pamiętam, był to naprawdę "specyficzny błąd Samsunga Galaxy S4" i tak naprawdę nie mam tego problemu na moim nowym telefonie (Samsung Galaxy A5). Ale nie mają tej samej wersji Androida, więc nie jestem w 100% pewny, czy jest to związane ze sprzętem. Niestety mój S4 został zniszczony w zeszłym roku i nie mogę go przetestować ponownie. – Geru