2014-07-29 11 views
5

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

+0

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

+0

GERU, znalazłeś poprawkę? – george

+0

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

Odpowiedz