Pracowałem nad grą na Androida przez ostatnie 6 miesięcy i pisałem tutaj kilka razy o różnych problemach z lagami, których nie mogę się pozbyć.Czy nie jest możliwe, aby gra na Androida była bezproblemowa? Szaleję tutaj
Skończyło się na tym, że przyjąłem przykład LunarLandera i rozebrałem go na jego podstawowe komponenty, aby sprawdzić, czy mogę zrobić wszystko, co nie zwleka. Wszystko, co naprawdę robi, to zmiana wielkości płótna tłumaczonego na każdą klatkę, a następnie narysowanie tła na płótnie. NAWET WIĘCEJ, o tak prostym, jak to tylko możliwe, aby uzyskać aplikację surfaceView - zacina się ...
Moja gra to przewijana gra, w której ciągle przesuwa się ekran (myślę o grze latającej), ale sposób, w jaki obecnie jestem robienie tła powoduje ciągłe jąkanie co sekundę około 50-100ms. Nie jest to łamanie gry, ale jest bardzo rozpraszające i sprawia, że gra wydaje się być zaprogramowana przez kompletnego kretyna (choć zaczynam podejrzewać, że tak może być).
Nie, to nie jest garbage collector, nie ma żadnych nowych obiektów tworzonych w ogóle podczas pętli uruchamiania gry, a GC prawie nigdy nie działa podczas mojej gry.
Praktycznie wydzieję sobie włosy z frustracji. Spędziłem ponad 40 godzin, próbując pozbyć się lagów na tym prostym przykładzie zastosowania w ciągu ostatniego tygodnia i to doprowadza mnie do szału. W jaki sposób aplikacja tak prosta jak ta, którą złączyłem, może mieć problemy z opóźnieniem? Nie pomyślałbyś, że przewijanie tła może być znacznie prostsze niż to ...
UWAGA: Ta demonstracja nieustannie pobiera około 60 fps w moim telefonie (Milestone Motoroli). Odkomentuj kod FPS w przykładzie, aby zobaczyć FPS.
TL; DR: Niezwykle prosty program, który jest po prostu przewijanym tłem, pokazuje jąkanie. Proszę spojrzeć ...
Link do pobrania prosty przykład jąkania opiera się na przykładzie LunarLander: http://dl.dropbox.com/u/4972001/LunarLander.rar
Czy demo JetBoy mieć jąkanie, gdy pracuje on na Twój telefon? http://developer.android.com/resources/samples/JetBoy/index.html – jhouse
Co powiedział Ci Traceview? Również w przyszłości pomiń nagłówki przynęt. – CommonsWare
Przepraszam za przynętę na ognie, byłem bardzo sfrustrowany, kiedy to napisałem (jak jestem pewien, że możesz powiedzieć). Traveview nie pokazuje niczego niezwykłego. Istnieją równe przerwy między wszystkimi wywołaniami draw/updatePhysics. Wydaje się, że jest to coś, co jest widoczne, ale nie dające się zmierzyć, co jest mylące. Ponadto, tak, JetBoy również ma problemy z jąkaniem. – Smills