Tôi đã làm việc trên một trò chơi Android trong 6 tháng qua hoặc lâu hơn và đã đăng lên đây nhiều lần về các vấn đề tụt hậu khác nhau mà tôi không thể loại bỏ được.Có thể làm cho trò chơi Android không bị gián đoạn không? Tôi đang phát điên ở đây
Tôi đã kết thúc lấy ví dụ LunarLander và bỏ nó xuống thành phần cốt lõi của nó để xem tôi có thể làm được gì không. Tất cả nó thực sự là thay đổi số lượng canvas được dịch từng khung hình, và sau đó vẽ một nền vào khung vẽ. NGAY CẢ NÀY, đơn giản như bạn có thể nhận được cho một ứng dụng surfaceView - stutters ...
Trò chơi của tôi là một trò chơi di chuyển liên tục lên màn hình (nghĩ về trò chơi bay), nhưng cách hiện tại làm các kết quả nền trong nói lắp liên tục mỗi giây hoặc lâu hơn cho khoảng 50-100ms. Đây không phải là trò chơi phá vỡ, nhưng nó là rất mất tập trung và làm cho trò chơi có vẻ như thể nó được lập trình bởi một moron hoàn chỉnh (mặc dù tôi bắt đầu nghi ngờ điều này có thể là trường hợp).
Không, nó không phải là bộ thu gom rác, không có đối tượng mới nào được tạo ra trong suốt vòng chạy của trò chơi và GC hầu như không bao giờ chạy trong khi trò chơi của tôi đang chạy.
Tôi đang thực sự xé tóc ra với sự thất vọng. Tôi đã dành hơn 40 giờ chỉ cố gắng để thoát khỏi sự chậm trễ trên ví dụ ứng dụng đơn giản này trong tuần qua một mình và nó là lái xe cho tôi điên. Làm thế nào một ứng dụng đơn giản như một ứng dụng tôi đã liên kết có thể có vấn đề về độ trễ? Bạn sẽ không nghĩ rằng nền cuộn có thể đơn giản hơn nhiều ...
LƯU Ý: Trình diễn này liên tục nhận được khoảng 60 khung hình/giây trên điện thoại của tôi (Một mốc Motorola). Bỏ ghi chú mã FPS trong ví dụ để xem FPS.
TL; DR: Chương trình cực kỳ đơn giản chỉ là nền cuộn hiển thị nói lắp. Hãy có một cái nhìn ...
liên kết để tải về đơn giản ví dụ nói lắp dựa trên ví dụ LunarLander: http://dl.dropbox.com/u/4972001/LunarLander.rar
Liệu các bản demo JetBoy có nói lắp khi nó chạy trên điện thoại của bạn? http://developer.android.com/resources/samples/JetBoy/index.html – jhouse
Traceview đã cho bạn biết điều gì? Ngoài ra, trong tương lai, xin vui lòng bỏ qua các tiêu đề ngọn lửa-mồi. – CommonsWare
Xin lỗi về ngọn lửa-mồi, tôi đã rất thất vọng khi tôi đã viết ra (như tôi chắc chắn bạn có thể nói). Traveview cho thấy không có gì khác thường. Có khoảng cách bằng nhau giữa tất cả các cuộc gọi draw/updatePhysics. Nó có vẻ là cái gì đó có thể nhìn thấy nhưng không thể đo lường được, điều này gây nhầm lẫn. Ngoài ra, có, JetBoy cũng có vấn đề nói lắp. – Smills