Проект Skorpios позволяет запускать приложения OpenGL как на настольном компьютере, так и на Android с использованием единой кодовой базы.
Есть несколько минимальных примеров. Здесь - это общий код для них.
Чтобы запустить общий код на рабочем столе, передайте экземпляр Game в DesktopGLView . Я использую этот класс для запуска тестов, просто передаю простое имя тестового класса в качестве аргумента командной строки. Например, "FontTest".
Чтобы запустить общий код на Android, передайте экземпляр Game в AndroidGLView , который представляет собой android.view.SurfaceView, который вы можете добавить в свой android.app.Activity. Часто вам понадобится Activity, которая просто отображает вашу игру, и в этом случае вы можете просто передать экземпляр Game в GameActivity вместо AndroidGLView. Если вы просто хотите запустить тестовые приложения на телефоне Android, вы можете просто развернуть на своем телефоне skorpios-android-test project .
Скорпиос довольно гладкий и хорошо работает. Скорость разработки значительно возросла благодаря использованию Java HotSwap на рабочем столе, поскольку время развертывания Android часто составляет более 60 секунд. Разработайте на рабочем столе, и после того, как вы добьетесь определенного прогресса, запустите ваше приложение на Android, и оно просто работает. Кстати, у меня есть несколько связанных проектов, которые также поддерживают рабочий стол и Android для клиент-серверных сетей с TCP / UDP и еще один с HTTP / servlets / Google App Engine .
Однако Скорпиос все еще находится на ранней стадии своей жизни. Я автор и в последнее время отвлекаюсь на другие вещи. Пока у него много базовых функций OpenGL . Поддержка новых функций очень проста (просто добавьте их в GL, DesktopGL и AndroidGL), и я добавлял их по мере необходимости.
Я предполагаю, что проект будет выступать в качестве уровня абстракции для OpenGL, но также и для не-OpenGL десктопных функций / функций Android, обычно используемых в играх. Вот несколько примеров, которые в настоящее время реализованы:
Предпочтения сохраняет HashMap на диске на рабочем столе и использует android.content.SharedPreferences на Android.
База данных обеспечивает простой доступ к SQLite на Android и в настоящее время недоступна для настольных компьютеров.
Устройство обеспечивает доступ к вибрации Android и в настоящее время недоступно на рабочем столе.
ResourceLoader обеспечивает доступ к файлам, настройкам и базам данных на каждой платформе.