Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Поддержка Android в jMonkeyEngine

Поддержка Android в jMonkeyEngine

Опубликованно: 03.10.2017, 13:48
Последняя редакция, Andry: 09.10.2017 22:08

jMonkeyEngine поддерживает развертывание android, и оно полностью интегрирован в SDK. Поддержка android поддерживается постоянно, поэтому, если у вас есть вопросы или предложения, пожалуйста, оставьте комментарий в теме форума Android!

Требования

Требования к разработчику

  • Установите jMonkeyEngine SDK (не забудьте установить JDK)
  • Установите Android SDK Manager 22.6.2 или новее.
    1. (Вам не нужен пакет ADT для Windows. Выберите «USE AN EXISTING IDE»(ИСПОЛЬЗУЙТЕ СУЩЕСТВУЮЩУЮ IDE) и загрузите SDK Tools»)
    2. Рекомендуется выбрать другую папку назначения.
    3. Запустите диспетчер SDK и установите выбранные по умолчанию 13 пакетов (принимая лицензии)
  • android_sdk_manager

  • (Необязательно) Установите NBAndroid в SDK jMonkeyEngine:
    1. Перейдите в Сервис ▸ Подключаемые модули ▸ Доступные подключаемые модули.
    2. Установите Android плагин.

Требования к пользователю

Особенности

jMonkeyEngine3 интеграция с Android

  • JME приложение инкапсулировано в Android активность (AndroidHarness).
  • Отображение JME в GlSurfaceView.
  • События Android touch(касание) инкапсулируются в событие JME touch или транслируются в события мыши.
  • Ошибки обрабатываются повсеместно в Harness.
  • Управление жизненным циклом
    • Выход из активности с помощью клавиши «Back»(Назад) уничтожает приложение (завершение работы).
    • Выход из активности с помощью клавиши «Home»(Домой), приложение замораживается и переходит в фоновый режим. Когда вы вернетесь в приложение, то оно находится в том же состоянии, в каком мы его оставили (пауза).
  • В настоящее время поддерживаются все jmetests, за исключением:
    • Фильтры пост-обработки. Функциональный, но в большинстве случаев очень медленный
    • Тени. Функциональны, но в большинстве случаев очень медленные.
    • Вода. Функциональна, но очень медленная.

jMonkeyEngine SDK интеграция с Android

Мобильное развертывание находится в jMonkeyEngine SDK в «одном клике» от развертывания Настольный компьютер/WebStart/Апплет.

  • Автоматическое создание Android harness и настроек.
    • Сценарий Ant собирает цель создавая APK файл.
    • Сценарий Ant запускает цель выполняя APK на Android Эмуляторе или мобильном устройстве.

Инструкции

  1. Убедитесь, что вы установили поддержку Android проектов в jMonkeyEngine SDK.
  2. Откройте jMonkeyEngine SDK Сервис ▸ Параметры ▸ Mobile и введите путь к каталогу Android SDK и нажмите [ОК]. Например: C:\Program Files\android-sdk

Активировать развертывание Android

  1. Откройте уже существующий JME3 проект или создайте новый JME3 проект.
  2. Щелкните [ПК мыши] проект в окне Проекты и откройте Свойства.
  3. В Приложении ▸ Android поставьте галочку напротив Enable Android Deployment и выберите Android Target. Например Android 4.2.2
    Это создает «папку для мобильных устройств в папке проекта». Эта папка содержит полный проект андроида с правильными настройками для запуска приложения с помощью AndroidHarness.
  4. (Перезапустите jMonkeyEngine)
  5. В окне проекта появится узел «Мобильные файлы».
    Он позволяет редактировать MainActivitity.java, AndroidManifest.xml и build.properties.

nvyyd

Параметр развертывания Android создает отдельный подпроект для android и делает основной проект и связанные библиотеки доступными для подпроекта в виде библиотек. Подпроект можно редактировать с помощью NBAndroid (см. Ниже) или с помощью Eclipse или любой другой среды разработки, поддерживающей стандартные проекты Android. Обычно вам не нужно редактировать файлы проекта Android. Исключения описаны ниже. Библиотеки сначала добавляются в подпроект андроида, когда основной проект сбирается впервые.

Сборка и запуск

Откройте ваш игровой проект в jMonkeyEngine SDK.

Сборка

Щелкните [ПК мыши] проект, чтобы собрать проект.
Файл APK создается в папке dist.

Запуск

  1. Щелкните [ПК мыши] проект и выберите Установить как главный проект(или в меню Выполнить).
  2. Выберите конфигурация сборки Android Device рядом с кнопкой «Запустить панель инструментов».
  3. Убедитесь, что Компиляция при сохранении отключена в настройках вашего проекта.
  4. Запустите приложение на подключенном телефоне, щелкнув его [ПК мыши] и выбрав Выполнение или нажать кнопку Запустить главный проект на панели инструментов.
  5. Приложение будет запускаться и выводить свой лог в окно Вывод в SDK.
  6. По завершении тестирования нажмите «x» рядом с состоянием выполнения в правом нижнем углу, чтобы выйти из выхода журнала.

По умолчанию Android запускает цель используя устройство по умолчанию заданное в утилите конфигурации Android. Если вы установите это на свой телефон, вы сможете запустить приложение прямо на своем телефоне, эмулятор не поддерживает OpenGLES 2.0 и не может запустить движок.

При запуске приложения на некоторых устройствах Android имеющих сеансы отладки, открытие через некоторые IDE значительно снижает производительность (в некоторых отчетах указывается падение от 60 FPS до 4-8 FPS), до тех пор пока сеанс отладки не будет отключен или приложение не будет запущено напрямую из самого устройство.

При желании загрузите Jme3Beta1Demo.apk

Во время сборки библиотеки и основной jar файл из основного проекта копируются в папку проекта android для того что бы к ним был доступ. Во время этой операции библиотеки, специфичные для настольных компьютеров, заменяются специфичными для Android JAR-ми.

Имейте в виду, что ведение журнала было идентифицировано как значительно бьющее по производительности в приложениях для Android. Если вы получаете плохую производительность, попробуйте уменьшить или отключить регистрацию данных для журнала и повторные проверки.

Установка NBAndroid

Активация плагина NBAndroid в jMonkeyEngine SDK является необязательным, но рекомендуется. Вам не нужен плагин NBAndroid для поддержки Android, в это NBAndroid не будет вмешиваться, он просто позволит вам редактировать исходные файлы Android и проекта более удобно. Чтобы иметь возможность редактировать, расширять и писать специфический для Android код в проектах Android, установите NBAndroid из центра обновления:

  1. Откройте Сервис ▸ Подключаемые модули ▸ Параметры настройки
  2. Перейдите в Сервис ▸ Подключаемые модули ▸ Доступные подключаемые модули.
  3. Установите NbAndroid плагин. (Будет отображаться как Android)

Если плагин Android отсутствует в этом списке, следуйте этим инструкциям.

Примечание

  • Параметр названия пакета используется только при создании проекта и устанавливает только название пакета Android MainActivity
  • Необходимый файл android.jar поставляется с плагином и автоматически добавляется в сборку Android.
  • Все библиотеки проекта, отличных от android, автоматически исключаются из сборки Android. Это в настоящее время жестко закодирован в сценарии сборки, проверьте подробности для nbproject/mobile-impl.xml.
  • Основные параметры класса application для AndroidHarness берутся из параметров проекта jme3 при включении развертывания Android. В настоящее время он не обновляется при изменении основного класса пакета или названия.
  • Когда вы отключите опцию мобильного развертывания, вся папка mobile удаляется.
  • «Ошибки», отображаемые в MainActivity, отображаются неправильно только в редакторе и исчезают при установке NBAndroid (см. Ниже).
  • Чтобы подписать приложение, отредактируйте файл mobile/build.properties, чтобы указать на действительные файлы хранилища ключей.

Соображения по Android

Вы можете использовать jMonkeyEngine SDK для сохранения (теоретически) любого приложения jMonkeyEngine в качестве приложения для Android. Но приложение должно быть подготовлено к тому, что устройства Android имеют меньшее разрешение экрана, сенсорный экран вместо кнопок мыши и (как правило) никакой клавиатуры.

  • Ввод: Создайте альтернативную схему управления, которая будет работать для пользователей Android (например, с помощью com.jme3.input.controls.TouchListener). Эта мобильная схема, скорее всего будет отличается от схемы настольных компьютеров.
  • Эффекты: Android устройства не поддерживают функции 3D также как ПК, или они могут даже совсем не работать. Это ограничение включает в себя постпроцессорные фильтры (размытие глубины поля, свечение, рассеивание света, мультяшность и.т.п.), падающие тени, эффекты воды, 3D-аудио. Будьте готовы, чтобы эти эффекты (в лучшем случае) замедляют приложение или (в худшем случае) вообще не работают. Предоставьте возможность переключиться на эквивалент низкого уровня!
  • Nifty GUI: используйте разные базовые файлы интерфейса UI для мобильной версии вашего приложения, чтобы учитывать другие разрешения экрана.

Лучшая практика. В идеале вы пишете код основного приложения таким образом, чтобы он проверял среду, в которой он выполняется, и автоматически адаптирует ограничения устройства, отключая эффекты, изменяя механизмы ввода и т. Д. Узнайте, как читать возможности графической карты здесь.


Использование специальных функций Android

Как описано выше, вы всегда должны пытаться создать приложение как независимое от платформы. Если ваша игра становится неожиданным непригодной для андроид, почему бы не выпустить ее на Facebook в качестве апплета? Когда ваше приложение разработано независимым от платформы способом, вам не нужно делать больше, вы просто можете установить галочку, чтобы развернуть приложение как апплет. Но что, если вы хотите, например, получить доступ к камере устройства Android? Неизбежно вам придется использовать специфический для Android api для доступа к камере.

Поскольку основной проект не настроен для прямого доступа к android api, вам необходимо установить NBAndroid (см. Выше), чтобы иметь возможность редактировать созданный проект Android в SDK. После установки нажмите кнопку open project и перейдите к папке mobile внутри основной папки проекта (она должна появиться со значком андроид) и откройте ее.

android_access

Несмотря на то, что вы будете использовать специфический Android api для использование камеры, это не является специфичным для Android, поэтому вы должны попытаться создать эту часть приложения как можно более независимую от платформы. Например, если вы хотите использовать камеру телефона в качестве потока ввода изображения для текстуры, вы можете создать, например, AppState, который управляет изображением и делает его доступным для приложения внутри основного проекта (не требуется код android). Затем в части с андроид кодом вы делаете связь с камерой и обновление изображение в AppState. Это позволяет вам легко поддерживать камеры и на других платформах подобным образом или реализовывать удобно отключение использования камеры, если платформа не поддерживает камеру.

Обратите внимание, что вам нужно собрать весь проект один раз, чтобы сделать (новые) классы из основного проекта доступными для части Android.

Подпись в APK

Когда у вас есть мобильный проект в разделе «important files», у вас есть файл «Android Properties».
В этом файле 2 записи:
key.store=path/to/your/keystore/on/your/drive/mykeystore.keystore
key.alias=mykeystorealias

Если эти записи заполнены, apk будет подписан во время сборки.
Вам будет предложено при сборке ввести пароль (дважды). С ним будет генерироваться подписанный apk в папке dist вашего проекта.

Больше информации

В настоящее время нет надлежащего руководства для работы на Android. В SDK позже будет предоставлены инструменты для автоматической адаптации материалов и других графических настроек для версий развертывания Android.


Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.