GameActivity Часть комплекта разработки игр для Android .
GameActivity
— это библиотека Jetpack, предназначенная для помощи играм Android в обработке команд цикла приложений, событий ввода и ввода текста в коде C/C++ приложения. GameActivity
является прямым потомком NativeActivity
и имеет аналогичную архитектуру:
Как показано на диаграмме выше, GameActivity
выполняет следующие функции:
- Взаимодействие с платформой Android через компонент Java.
- Передача команд цикла приложения, событий ввода и ввода текста на собственную сторону.
- Моделирование исходного кода C/C++ на три логических компонента:
- Функции JNI GameActivity, которые напрямую поддерживают функциональность Java GameActivity и ставят события в очередь в
native_app_glue
. -
native_app_glue
, который работает в основном в собственном потоке (отличном от основного потока приложения) и выполняет задачи с помощью своего циклизатора. - Код игры приложения, который опрашивает и обрабатывает события, находящиеся в очереди внутри
native_app_glue
, и выполняет код игры в потокеnative_app_glue
.
- Функции JNI GameActivity, которые напрямую поддерживают функциональность Java GameActivity и ставят события в очередь в
С помощью GameActivity
вы можете сосредоточиться на разработке основной игры и не тратить слишком много времени на работу с кодом JNI.
Если вы уже знакомы с NativeActivity
, основные различия между GameActivity
и NativeActivity
заключаются в следующем:
-
GameActivity
преобразуется вSurfaceView
, что значительно упрощает взаимодействие игр с другими компонентами пользовательского интерфейса. - Для событий сенсорного ввода и ввода клавиш
GameActivity
имеет совершенно новую реализацию с интерфейсомandroid_input_buffer
, отдельную отInputQueue
, который используетNativeActivity
. -
GameActivity
— это производный классAppCompatActivity
, который позволяет беспрепятственно использовать другие компоненты Jetpack. ДоступныActionBar
,Fragment
и другие. -
GameActivity
добавляет функциональность ввода текста за счет интеграции библиотеки GameTextInput . - Ожидается, что приложения, производные от
GameActivity
объединят все три части кода C/C++ в одну библиотеку. С другой стороны, функции JNINativeActivity
являются частью платформы (всегда загружаются ОС). Следовательно, ожидается, что только кодnative_app_glue
и C/C++ приложения будут встроены в одну библиотеку. -
NativeActivity
является частью платформы Android и следует циклу выпуска (обычно ежегодно).GameActivity
является частью библиотеки Jetpack, цикл выпуска которой гораздо более частый (обычно раз в две недели); новые функции и исправления ошибок могут появиться гораздо быстрее.
Места выпуска
Библиотека GameActivity
доступна в следующих каналах:
- В составе библиотеки Android Jetpack (рекомендуется)
- В виде zip-пакета, который можно загрузить со страницы загрузки AGDK.
- В качестве исходного кода AOSP
Код C/C++ предоставляется в качестве исходного кода во всех каналах выпуска в формате Prefab . GameActivity версии 1.2.2 добавляет в дистрибутив статическую библиотеку. Начиная с этой версии и более поздних, мы рекомендуем использовать статическую библиотеку вместо исходного кода.
Содержимое библиотеки Jetpack и zip-пакета AGDK.
GameActivity с библиотекой Jetpack и каналами zip-пакетов AGDK выпускается с AAR. Этот AAR содержит следующие основные компоненты:
- JAR-файл для кода Java
- Статическая библиотека C/C++
game-activity_static
включена в GameActivity версии 1.2.2 и более поздних версий. - Исходный код C/C++ (в папке
/prefab
)
Инструкции по интеграции, ссылки на которые приведены на этой странице, предполагают, что вы можете использовать Prefab в своей системе сборки; в противном случае вы можете скопировать исходный код, упакованный в папку prefab/modules/game-activity/include
в вашу систему сборки и выполнить необходимые шаги интеграции. Аналогичная файловая структура существует для выпусков под androidx
для библиотеки Android Jetpack; по умолчанию gradle распаковывает AAR в свой каталог кеша (~/.gradle/caches/...). Вы можете найти исходный код C/C++, выполнив поиск по запросу prefab/modules/game-activity/include
и выбрав местоположение под предполагаемой версией выпуска.
Инструкции по интеграции с использованием библиотеки Jetpack см. в разделе Начало работы с GameActivity .
Для ZIP-пакета библиотеки AGDK выполните следующие действия, чтобы получить код C/C++:
- Разархивируйте скачанный пакет.
- В разархивированном пакете разархивируйте GameActivity-release.aar.
- Найдите и скопируйте весь исходный код C/C++ в
prefab/modules/game-activity/include
, включая следующее:-
game-activity
для кода C/C++, связанного сGameActivity
-
game-text-input
для кода C/C++, связанного сGameTextInput
-
Содержимое исходного кода AOSP
AOSP всегда содержит самый последний исходный код. Следуйте инструкциям по сборке , чтобы создавать собственные выпуски или напрямую интегрировать исходный код в свою среду сборки. Исходный код C/C++ сохраняется в файловой структуре, аналогичной структуре библиотеки Jetpack и zip-пакета AGDK.
Руководства по интеграции
Следуйте этим руководствам, чтобы интегрировать GameActivity
в свои приложения:
Дополнительные ресурсы
Чтобы узнать больше о GameActivity
, см. следующее:
- Примечания к выпуску GameActivity и AGDK .
- Используйте GameTextInput в GameActivity .
- Руководство по миграции NativeActivity .
- Справочная документация GameActivity .
- Реализация GameActivity .
Обратная связь
Чтобы сообщить об ошибках или запросить новые функции в GameActivity, используйте систему отслеживания проблем GameActivity .
,GameActivity Часть комплекта разработки игр для Android .
GameActivity
— это библиотека Jetpack, предназначенная для помощи играм Android в обработке команд цикла приложений, событий ввода и ввода текста в коде C/C++ приложения. GameActivity
является прямым потомком NativeActivity
и имеет аналогичную архитектуру:
Как показано на диаграмме выше, GameActivity
выполняет следующие функции:
- Взаимодействие с платформой Android через компонент Java.
- Передача команд цикла приложения, событий ввода и ввода текста на собственную сторону.
- Моделирование исходного кода C/C++ на три логических компонента:
- Функции JNI GameActivity, которые напрямую поддерживают функциональность Java GameActivity и ставят события в очередь в
native_app_glue
. -
native_app_glue
, который работает в основном в собственном потоке (отличном от основного потока приложения) и выполняет задачи с помощью своего циклизатора. - Код игры приложения, который опрашивает и обрабатывает события, находящиеся в очереди внутри
native_app_glue
, и выполняет код игры в потокеnative_app_glue
.
- Функции JNI GameActivity, которые напрямую поддерживают функциональность Java GameActivity и ставят события в очередь в
С помощью GameActivity
вы можете сосредоточиться на разработке основной игры и не тратить слишком много времени на работу с кодом JNI.
Если вы уже знакомы с NativeActivity
, основные различия между GameActivity
и NativeActivity
заключаются в следующем:
-
GameActivity
преобразуется вSurfaceView
, что значительно упрощает взаимодействие игр с другими компонентами пользовательского интерфейса. - Для событий сенсорного ввода и ввода клавиш
GameActivity
имеет совершенно новую реализацию с интерфейсомandroid_input_buffer
, отдельную отInputQueue
, который используетNativeActivity
. -
GameActivity
— это производный классAppCompatActivity
, который позволяет беспрепятственно использовать другие компоненты Jetpack. ДоступныActionBar
,Fragment
и другие. -
GameActivity
добавляет функциональность ввода текста за счет интеграции библиотеки GameTextInput . - Ожидается, что приложения, производные от
GameActivity
объединят все три части кода C/C++ в одну библиотеку. С другой стороны, функции JNINativeActivity
являются частью платформы (всегда загружаются ОС). Следовательно, ожидается, что толькоnative_app_glue
и код приложения C/C++ будут встроены в одну библиотеку. -
NativeActivity
является частью платформы Android и следует циклу выпуска (обычно ежегодно).GameActivity
является частью библиотеки Jetpack, цикл выпуска которой гораздо более частый (обычно раз в две недели); новые функции и исправления ошибок могут появиться гораздо быстрее.
Места выпуска
Библиотека GameActivity
доступна в следующих каналах:
- В составе библиотеки Android Jetpack (рекомендуется)
- В виде zip-пакета, который можно загрузить со страницы загрузки AGDK.
- В качестве исходного кода AOSP
Код C/C++ предоставляется в качестве исходного кода во всех каналах выпуска в формате Prefab . GameActivity версии 1.2.2 добавляет в дистрибутив статическую библиотеку. Начиная с этой версии и более поздних, мы рекомендуем использовать статическую библиотеку вместо исходного кода.
Содержимое библиотеки Jetpack и zip-пакета AGDK.
GameActivity выпускается с библиотекой Jetpack и каналами zip-пакетов AGDK с AAR. Этот AAR содержит следующие основные компоненты:
- JAR-файл для кода Java
- Статическая библиотека C/C++
game-activity_static
включена в GameActivity версии 1.2.2 и более поздних версий. - Исходный код C/C++ (в папке
/prefab
)
Инструкции по интеграции, ссылки на которые приведены на этой странице, предполагают, что вы можете использовать Prefab в своей системе сборки; в противном случае вы можете скопировать исходный код, упакованный в папку prefab/modules/game-activity/include
в вашу систему сборки и выполнить необходимые шаги интеграции. Аналогичная файловая структура существует для выпусков под androidx
для библиотеки Android Jetpack; по умолчанию gradle распаковывает AAR в свой каталог кеша (~/.gradle/caches/...). Вы можете найти исходный код C/C++, выполнив поиск по запросу prefab/modules/game-activity/include
и выбрав местоположение под предполагаемой версией выпуска.
Инструкции по интеграции с использованием библиотеки Jetpack см. в разделе Начало работы с GameActivity .
Для ZIP-пакета библиотеки AGDK выполните следующие действия, чтобы получить код C/C++:
- Разархивируйте скачанный пакет.
- В разархивированном пакете разархивируйте GameActivity-release.aar.
- Найдите и скопируйте весь исходный код C/C++ в
prefab/modules/game-activity/include
, включая следующее:-
game-activity
для кода C/C++, связанного сGameActivity
-
game-text-input
для кода C/C++, связанного сGameTextInput
-
Содержимое исходного кода AOSP
AOSP всегда содержит самый последний исходный код. Следуйте инструкциям по сборке , чтобы создавать свои собственные выпуски или напрямую интегрировать исходный код в свою среду сборки. Исходный код C/C++ сохраняется в файловой структуре, аналогичной структуре библиотеки Jetpack и zip-пакета AGDK.
Руководства по интеграции
Следуйте этим руководствам, чтобы интегрировать GameActivity
в свои приложения:
Дополнительные ресурсы
Чтобы узнать больше о GameActivity
, см. следующее:
- Примечания к выпуску GameActivity и AGDK .
- Используйте GameTextInput в GameActivity .
- Руководство по миграции NativeActivity .
- Справочная документация GameActivity .
- Реализация GameActivity .
Обратная связь
Чтобы сообщить об ошибках или запросить новые функции в GameActivity, используйте систему отслеживания проблем GameActivity .