Я пробовал некоторые игровые движки для Android и наткнулся на cocos2d-android-1. Я создал небольшой пример, который почти ничего не делает, кроме как показать счетчик FPS, чтобы начать с.Framedrops с Cocos2d-android при возобновлении игровой активности
Проблема в том, что каждый раз, когда активность переходит на задний план (через домашнюю или обратно клавишу) и возвращается, FPS выпадает много. При первом запуске им около 60 для меня (HTC Desire), после возобновления активности они остаются ниже 10.
Активность фиксируется в ландшафте в манифесте и использует @android:style/Theme.Black.NoTitleBar.Fullscreen
для включения полноэкранного режима.
Когда я останавливаю приложение из меню приложений в настройках устройства, он сбрасывает все. Первый запуск снова набирает 60 кадров в секунду, следующий запуск тоже падает.
Как это исправить?
Вот небольшой рабочий пример:
public class MainActivity extends Activity {
private CCGLSurfaceView glSurfaceView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
glSurfaceView = new CCGLSurfaceView(this);
setContentView(glSurfaceView);
}
@Override
public void onStart() {
super.onStart();
CCDirector.sharedDirector().attachInView(glSurfaceView);
CCDirector.sharedDirector().setDisplayFPS(true);
}
@Override
public void onPause() {
super.onPause();
CCDirector.sharedDirector().pause();
}
}